Skip to content

Commit 052b202

Browse files
fix: Patch FullCalendar to show single day events (#4757)
1 parent 97801b3 commit 052b202

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

app/routes/events/view/scheduler.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,43 @@
11
import Route from '@ember/routing/route';
2+
import $ from 'jquery';
3+
4+
// TODO(Areeb): Remove once upgraded
5+
// Workaround for https://github.com/fossasia/open-event-frontend/issues/4729
6+
function patchFullCalendar() {
7+
if (!window?.FullCalendar) {return}
8+
window.FullCalendar.EventRenderer.prototype.renderFgSegEls = function(segs, disableResizing) {
9+
let _this = this;
10+
if (disableResizing === void 0) { disableResizing = false }
11+
let hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender');
12+
let html = '';
13+
let renderedSegs = [];
14+
let i;
15+
if (segs.length) {
16+
// build a large concatenation of event segment HTML
17+
for (i = 0; i < segs.length; i++) {
18+
this.beforeFgSegHtml(segs[i]);
19+
html += this.fgSegHtml(segs[i], disableResizing);
20+
}
21+
// Grab individual elements from the combined HTML string. Use each as the default rendering.
22+
// Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.
23+
$(html).each(function(i, node) {
24+
let seg = segs[i];
25+
let el = $(node);
26+
// Areeb: seg is undefined for single day events as i > seg.length due to some logical error
27+
if (seg && hasEventRenderHandlers) { // Areeb: Added `seg && `
28+
el = _this.filterEventRenderEl(seg.footprint, el);
29+
}
30+
if (seg && el) { // Areeb: Added `seg && `
31+
el.data('fc-seg', seg); // used by handlers
32+
seg.el = el;
33+
renderedSegs.push(seg);
34+
}
35+
});
36+
}
37+
return renderedSegs;
38+
};
39+
}
40+
241
export default Route.extend({
342
titleToken() {
443
return this.l10n.t('Scheduler');
@@ -9,6 +48,7 @@ export default Route.extend({
948
}
1049
},
1150
async model() {
51+
patchFullCalendar();
1252
let unscheduledFilterOptions = [
1353
{
1454
and: [

0 commit comments

Comments
 (0)