minor refactorings

This commit is contained in:
jjaffeux 2020-04-27 16:37:00 +02:00
parent 90edefff0a
commit d38d3478c6
2 changed files with 19 additions and 21 deletions

View File

@ -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();

View File

@ -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) {
'<div class="calendar"><div class="spinner medium"></div></div>'
);
$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) {