Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 11
Línea 143... Línea 143...
143
 
143
 
144
/**
144
/**
145
 * Register event listeners for the module.
145
 * Register event listeners for the module.
146
 *
146
 *
-
 
147
 * @param {object} root The root element.
147
 * @param {object} root The root element.
148
 * @param {boolean} isCalendarBlock - A flag indicating whether this is a calendar block.
148
 */
149
 */
149
const registerEventListeners = (root) => {
150
const registerEventListeners = (root, isCalendarBlock) => {
Línea 150... Línea 151...
150
    root = $(root);
151
    root = $(root);
151
 
152
 
152
    // Bind click events to event links.
153
    // Bind click events to event links.
Línea 190... Línea 191...
190
        const courseId = wrapper.data('courseid');
191
        const courseId = wrapper.data('courseid');
191
        const categoryId = wrapper.data('categoryid');
192
        const categoryId = wrapper.data('categoryid');
192
        const link = e.currentTarget;
193
        const link = e.currentTarget;
Línea 193... Línea 194...
193
 
194
 
194
        if (view === 'month' || view === 'monthblock') {
195
        if (view === 'month' || view === 'monthblock') {
-
 
196
            changeMonth(root, link.href, link.dataset.year, link.dataset.month,
195
            changeMonth(root, link.href, link.dataset.year, link.dataset.month, courseId, categoryId, link.dataset.day);
197
                courseId, categoryId, link.dataset.day, isCalendarBlock);
196
            e.preventDefault();
198
            e.preventDefault();
197
        } else if (view === 'day') {
199
        } else if (view === 'day') {
-
 
200
            changeDay(root, link.href, link.dataset.year, link.dataset.month, link.dataset.day,
198
            changeDay(root, link.href, link.dataset.year, link.dataset.month, link.dataset.day, courseId, categoryId);
201
                courseId, categoryId, isCalendarBlock);
199
            e.preventDefault();
202
            e.preventDefault();
200
        }
203
        }
Línea 201... Línea 204...
201
    });
204
    });
Línea 290... Línea 293...
290
 * @param {number} year Year
293
 * @param {number} year Year
291
 * @param {number} month Month
294
 * @param {number} month Month
292
 * @param {number} courseId The id of the course whose events are shown
295
 * @param {number} courseId The id of the course whose events are shown
293
 * @param {number} categoryId The id of the category whose events are shown
296
 * @param {number} categoryId The id of the category whose events are shown
294
 * @param {number} day Day (optional)
297
 * @param {number} day Day (optional)
-
 
298
 * @param {boolean} [isCalendarBlock=false] - A flag indicating whether this is a calendar block.
295
 * @return {promise}
299
 * @return {promise}
296
 */
300
 */
297
export const changeMonth = (root, url, year, month, courseId, categoryId, day = 1) => {
301
export const changeMonth = (root, url, year, month, courseId, categoryId, day = 1, isCalendarBlock = false) => {
298
    return refreshMonthContent(root, year, month, courseId, categoryId, null, '', day)
302
    return refreshMonthContent(root, year, month, courseId, categoryId, null, '', day)
299
        .then((...args) => {
303
        .then((...args) => {
300
            if (url.length && url !== '#') {
304
            if (url.length && url !== '#' && !isCalendarBlock) {
301
                updateUrl(url);
305
                updateUrl(url);
302
            }
306
            }
303
            return args;
307
            return args;
304
        })
308
        })
305
        .then((...args) => {
309
        .then((...args) => {
306
            $('body').trigger(CalendarEvents.monthChanged, [year, month, courseId, categoryId]);
310
            $('body').trigger(CalendarEvents.monthChanged, [year, month, courseId, categoryId, day, isCalendarBlock]);
307
            return args;
311
            return args;
308
        });
312
        });
309
};
313
};
Línea 310... Línea 314...
310
 
314
 
Línea 341... Línea 345...
341
 * @param {number} day Day
345
 * @param {number} day Day
342
 * @param {number} courseId The id of the course whose events are shown
346
 * @param {number} courseId The id of the course whose events are shown
343
 * @param {number} categoryId The id of the category whose events are shown
347
 * @param {number} categoryId The id of the category whose events are shown
344
 * @param {object} target The element being replaced. If not specified, the calendarwrapper is used.
348
 * @param {object} target The element being replaced. If not specified, the calendarwrapper is used.
345
 * @param {string} template The template to be rendered.
349
 * @param {string} template The template to be rendered.
-
 
350
 * @param {boolean} isCalendarBlock - A flag indicating whether this is a calendar block.
346
 *
351
 *
347
 * @return {promise}
352
 * @return {promise}
348
 */
353
 */
349
export const refreshDayContent = (root, year, month, day, courseId, categoryId, target = null, template = '') => {
354
export const refreshDayContent = (root, year, month, day, courseId, categoryId,
-
 
355
    target = null, template = '', isCalendarBlock = false) => {
350
    startLoading(root);
356
    startLoading(root);
Línea 351... Línea 357...
351
 
357
 
352
    if (!target || target.length == 0){
358
    if (!target || target.length == 0){
353
        target = root.find(CalendarSelectors.wrapper);
359
        target = root.find(CalendarSelectors.wrapper);
Línea 357... Línea 363...
357
    const includenavigation = root.data('includenavigation');
363
    const includenavigation = root.data('includenavigation');
358
    return CalendarRepository.getCalendarDayData(year, month, day, courseId, categoryId, includenavigation)
364
    return CalendarRepository.getCalendarDayData(year, month, day, courseId, categoryId, includenavigation)
359
        .then((context) => {
365
        .then((context) => {
360
            context.viewingday = true;
366
            context.viewingday = true;
361
            context.showviewselector = true;
367
            context.showviewselector = true;
-
 
368
            context.iscalendarblock = isCalendarBlock;
362
            return Templates.render(template, context);
369
            return Templates.render(template, context);
363
        })
370
        })
364
        .then((html, js) => {
371
        .then((html, js) => {
365
            return Templates.replaceNode(target, html, js);
372
            return Templates.replaceNode(target, html, js);
366
        })
373
        })
Línea 403... Línea 410...
403
 * @param {Number} year Year
410
 * @param {Number} year Year
404
 * @param {Number} month Month
411
 * @param {Number} month Month
405
 * @param {Number} day Day
412
 * @param {Number} day Day
406
 * @param {Number} courseId The id of the course whose events are shown
413
 * @param {Number} courseId The id of the course whose events are shown
407
 * @param {Number} categoryId The id of the category whose events are shown
414
 * @param {Number} categoryId The id of the category whose events are shown
-
 
415
 * @param {boolean} [isCalendarBlock=false] - A flag indicating whether this is a calendar block.
408
 * @return {promise}
416
 * @return {promise}
409
 */
417
 */
410
export const changeDay = (root, url, year, month, day, courseId, categoryId) => {
418
export const changeDay = (root, url, year, month, day, courseId, categoryId, isCalendarBlock = false) => {
411
    return refreshDayContent(root, year, month, day, courseId, categoryId)
419
    return refreshDayContent(root, year, month, day, courseId, categoryId, null, '', isCalendarBlock)
412
        .then((...args) => {
420
        .then((...args) => {
413
            if (url.length && url !== '#') {
421
            if (url.length && url !== '#' && !isCalendarBlock) {
414
                updateUrl(url);
422
                updateUrl(url);
415
            }
423
            }
416
            return args;
424
            return args;
417
        })
425
        })
418
        .then((...args) => {
426
        .then((...args) => {
419
            $('body').trigger(CalendarEvents.dayChanged, [year, month, courseId, categoryId]);
427
            $('body').trigger(CalendarEvents.dayChanged, [year, month, courseId, categoryId, isCalendarBlock]);
420
            return args;
428
            return args;
421
        });
429
        });
422
};
430
};
Línea 423... Línea 431...
423
 
431
 
Línea 560... Línea 568...
560
        return modal;
568
        return modal;
561
    })
569
    })
562
    .catch(Notification.exception);
570
    .catch(Notification.exception);
563
};
571
};
Línea -... Línea 572...
-
 
572
 
-
 
573
/**
-
 
574
 * Initializes the calendar component by prefetching strings, folding day events,
-
 
575
 * and registering event listeners.
-
 
576
 *
-
 
577
 * @param {HTMLElement} root - The root element where the calendar view manager and event listeners will be attached.
-
 
578
 * @param {string} view - A flag indicating whether this is a calendar block.
-
 
579
 * @param {boolean} isCalendarBlock - A flag indicating whether this is a calendar block.
564
 
580
 */
565
export const init = (root, view) => {
581
export const init = (root, view, isCalendarBlock) => {
566
    prefetchStrings('calendar', ['moreevents']);
582
    prefetchStrings('calendar', ['moreevents']);
567
    foldDayEvents();
583
    foldDayEvents();
568
    registerEventListeners(root, view);
584
    registerEventListeners(root, isCalendarBlock);
569
    const calendarTable = root.find(CalendarSelectors.elements.monthDetailed);
585
    const calendarTable = root.find(CalendarSelectors.elements.monthDetailed);
570
    if (calendarTable.length) {
586
    if (calendarTable.length) {
571
        const pendingId = `month-detailed-${calendarTable.id}-filterChanged`;
587
        const pendingId = `month-detailed-${calendarTable.id}-filterChanged`;
572
        registerEventListenersForMonthDetailed(calendarTable, pendingId);
588
        registerEventListenersForMonthDetailed(calendarTable, pendingId);