From d38d3478c621050b4ef024092b5719a1f8a899fa Mon Sep 17 00:00:00 2001 From: jjaffeux Date: Mon, 27 Apr 2020 16:37:00 +0200 Subject: [PATCH] minor refactorings --- .../components/events-calendar.js.es6 | 14 ++++------ .../initializers/discourse-calendar.js.es6 | 26 ++++++++++--------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/assets/javascripts/discourse/components/events-calendar.js.es6 b/assets/javascripts/discourse/components/events-calendar.js.es6 index 43dab756..abd053f0 100644 --- a/assets/javascripts/discourse/components/events-calendar.js.es6 +++ b/assets/javascripts/discourse/components/events-calendar.js.es6 @@ -38,17 +38,13 @@ export default Component.extend({ this._super(...arguments); (this.events || []).forEach(event => { + const { starts_at, ends_at, post } = event; this._calendar.addEvent({ title: formatEventName(event), - start: event.starts_at, - end: event.ends_at || event.starts_at, - allDay: !isNotFullDayEvent( - moment(event.starts_at), - moment(event.ends_at) - ), - url: Discourse.getURL( - `/t/-/${event.post.topic.id}/${event.post.post_number}` - ) + start: starts_at, + end: ends_at || starts_at, + allDay: !isNotFullDayEvent(moment(starts_at), moment(ends_at)), + url: Discourse.getURL(`/t/-/${post.topic.id}/${post.post_number}`) }); }); this._calendar.render(); diff --git a/assets/javascripts/initializers/discourse-calendar.js.es6 b/assets/javascripts/initializers/discourse-calendar.js.es6 index 782ede88..d0009579 100644 --- a/assets/javascripts/initializers/discourse-calendar.js.es6 +++ b/assets/javascripts/initializers/discourse-calendar.js.es6 @@ -1,6 +1,6 @@ +import { Promise } from "rsvp"; import { isPresent } from "@ember/utils"; import DiscourseURL from "discourse/lib/url"; -import { Promise } from "rsvp"; import { cookAsync } from "discourse/lib/text"; import { escapeExpression } from "discourse/lib/utilities"; import loadScript from "discourse/lib/load-script"; @@ -25,6 +25,14 @@ function stringToHexColor(str) { return hex; } +function loadFullCalendar() { + return new Promise(resolve => + loadScript( + "/plugins/discourse-calendar/javascripts/fullcalendar-with-moment-timezone.min.js" + ).then(resolve) + ); +} + function initializeDiscourseCalendar(api) { let _topicController; const outletName = Discourse.SiteSettings.calendar_categories_outlet; @@ -71,9 +79,7 @@ function initializeDiscourseCalendar(api) { '
' ); $calendarContainer.html($spinner); - loadScript( - "/plugins/discourse-calendar/javascripts/fullcalendar-with-moment-timezone.min.js" - ).then(() => { + loadFullCalendar().then(() => { const options = [`postId=${postId}`]; const optionals = ["weekends", "tzPicker", "defaultView"]; @@ -114,11 +120,9 @@ function initializeDiscourseCalendar(api) { const $calendar = $op.find(".calendar").first(); if (post && $calendar.length > 0) { - ajax(`/posts/${post.id}.json`).then(post => { - loadScript( - "/plugins/discourse-calendar/javascripts/fullcalendar-with-moment-timezone.min.js" - ).then(() => render($calendar, post)); - }); + ajax(`/posts/${post.id}.json`).then(post => + loadFullCalendar().then(() => render($calendar, post)) + ); } }); @@ -154,9 +158,7 @@ function initializeDiscourseCalendar(api) { return; } - loadScript( - "/plugins/discourse-calendar/javascripts/fullcalendar-with-moment-timezone.min.js" - ).then(() => render($calendar, helper.getModel())); + loadFullCalendar().then(() => render($calendar, helper.getModel())); } function _buildCalendar($calendar, timeZone) {