Proyectos de Subversion Moodle

Rev

Autoría | Ultima modificación | Ver Log |

{"version":3,"file":"calendar_mini.min.js","sources":["../src/calendar_mini.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * This module is the highest level module for the calendar. It is\n * responsible for initialising all of the components required for\n * the calendar to run. It also coordinates the interaction between\n * components by listening for and responding to different events\n * triggered within the calendar UI.\n *\n * @module     core_calendar/calendar_mini\n * @copyright  2017 Andrew Nicols <andrew@nicols.co.uk>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n    'jquery',\n    'core_calendar/selectors',\n    'core_calendar/events',\n    'core_calendar/view_manager',\n],\nfunction(\n    $,\n    CalendarSelectors,\n    CalendarEvents,\n    CalendarViewManager\n) {\n\n    /**\n     * Listen to and handle any calendar events fired by the calendar UI.\n     *\n     * @method registerCalendarEventListeners\n     * @param {object} root The calendar root element\n     */\n    var registerCalendarEventListeners = function(root) {\n        var body = $('body');\n        var namespace = '.' + root.attr('id');\n\n        body.on(CalendarEvents.created + namespace, root, reloadMonth);\n        body.on(CalendarEvents.deleted + namespace, root, reloadMonth);\n        body.on(CalendarEvents.updated + namespace, root, reloadMonth);\n        body.on(CalendarEvents.eventMoved + namespace, root, reloadMonth);\n    };\n\n    /**\n     * Reload the month view in this month.\n     *\n     * @param {EventFacade} e\n     */\n    var reloadMonth = function(e) {\n        var root = e.data;\n        var body = $('body');\n        var namespace = '.' + root.attr('id');\n\n        if (root.is(':visible')) {\n            CalendarViewManager.reloadCurrentMonth(root);\n        } else {\n            // The root has been removed.\n            // Remove all events in the namespace.\n            body.off(CalendarEvents.created + namespace);\n            body.off(CalendarEvents.deleted + namespace);\n            body.off(CalendarEvents.updated + namespace);\n            body.off(CalendarEvents.eventMoved + namespace);\n        }\n    };\n\n    var registerEventListeners = function(root) {\n        $('body').on(CalendarEvents.filterChanged, function(e, data) {\n            var daysWithEvent = root.find(CalendarSelectors.eventType[data.type]);\n\n            daysWithEvent.toggleClass('calendar_event_' + data.type, !data.hidden);\n        });\n\n        var namespace = '.' + root.attr('id');\n        $('body').on('change' + namespace, CalendarSelectors.elements.courseSelector, function() {\n            if (root.is(':visible')) {\n                var selectElement = $(this);\n                var courseId = selectElement.val();\n                var categoryId = null;\n\n                CalendarViewManager.reloadCurrentMonth(root, courseId, categoryId);\n            } else {\n                $('body').off('change' + namespace);\n            }\n        });\n\n    };\n\n    return {\n        init: function(root, loadOnInit) {\n            root = $(root);\n\n            CalendarViewManager.init(root);\n            registerEventListeners(root);\n            registerCalendarEventListeners(root);\n\n            if (loadOnInit) {\n                // The calendar hasn't yet loaded it's events so we\n                // should load them as soon as we've initialised.\n                CalendarViewManager.reloadCurrentMonth(root);\n            }\n\n        }\n    };\n});\n"],"names":["define","$","CalendarSelectors","CalendarEvents","CalendarViewManager","reloadMonth","e","root","data","body","namespace","attr","is","reloadCurrentMonth","off","created","deleted","updated","eventMoved","init","loadOnInit","on","filterChanged","find","eventType","type","toggleClass","hidden","elements","courseSelector","courseId","this","val","registerEventListeners","registerCalendarEventListeners"],"mappings":";;;;;;;;;;;AA0BAA,qCAAO,CACH,SACA,0BACA,uBACA,+BAEJ,SACIC,EACAC,kBACAC,eACAC,yBAwBIC,YAAc,SAASC,OACnBC,KAAOD,EAAEE,KACTC,KAAOR,EAAE,QACTS,UAAY,IAAMH,KAAKI,KAAK,MAE5BJ,KAAKK,GAAG,YACRR,oBAAoBS,mBAAmBN,OAIvCE,KAAKK,IAAIX,eAAeY,QAAUL,WAClCD,KAAKK,IAAIX,eAAea,QAAUN,WAClCD,KAAKK,IAAIX,eAAec,QAAUP,WAClCD,KAAKK,IAAIX,eAAee,WAAaR,mBA0BtC,CACHS,KAAM,SAASZ,KAAMa,YACjBb,KAAON,EAAEM,MAETH,oBAAoBe,KAAKZ,MA1BJ,SAASA,MAClCN,EAAE,QAAQoB,GAAGlB,eAAemB,eAAe,SAAShB,EAAGE,MAC/BD,KAAKgB,KAAKrB,kBAAkBsB,UAAUhB,KAAKiB,OAEjDC,YAAY,kBAAoBlB,KAAKiB,MAAOjB,KAAKmB,eAG/DjB,UAAY,IAAMH,KAAKI,KAAK,MAChCV,EAAE,QAAQoB,GAAG,SAAWX,UAAWR,kBAAkB0B,SAASC,gBAAgB,cACtEtB,KAAKK,GAAG,YAAa,KAEjBkB,SADgB7B,EAAE8B,MACOC,MAG7B5B,oBAAoBS,mBAAmBN,KAAMuB,SAF5B,WAIjB7B,EAAE,QAAQa,IAAI,SAAWJ,cAW7BuB,CAAuB1B,MA3DM,SAASA,UACtCE,KAAOR,EAAE,QACTS,UAAY,IAAMH,KAAKI,KAAK,MAEhCF,KAAKY,GAAGlB,eAAeY,QAAUL,UAAWH,KAAMF,aAClDI,KAAKY,GAAGlB,eAAea,QAAUN,UAAWH,KAAMF,aAClDI,KAAKY,GAAGlB,eAAec,QAAUP,UAAWH,KAAMF,aAClDI,KAAKY,GAAGlB,eAAee,WAAaR,UAAWH,KAAMF,aAqDjD6B,CAA+B3B,MAE3Ba,YAGAhB,oBAAoBS,mBAAmBN"}