| Server IP : 172.67.187.206 / Your IP : 162.159.115.41 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : E:/Inetpub/www/myschool/triamudom/tuprblearn/calendar/amd/build/ |
Upload File : |
{"version":3,"sources":["../src/view_manager.js"],"names":["define","$","Templates","Str","Notification","CalendarRepository","CalendarEvents","CalendarSelectors","ModalFactory","ModalEvents","SummaryModal","CustomEvents","Pending","registerEventListeners","root","on","links","eventLink","e","pendingPromise","target","eventId","is","actions","viewEvent","closest","length","data","find","preventDefault","stopPropagation","renderEventSummaryModal","then","resolve","catch","navLink","wrapper","view","courseId","categoryId","link","currentTarget","changeMonth","attr","changeDay","viewSelector","events","activate","option","hasClass","year","month","day","refreshMonthContent","window","history","pushState","fail","exception","refreshDayContent","reloadCurrentUpcoming","courseid","categoryid","template","startLoading","M","util","js_pending","get","join","includenavigation","mini","getCalendarMonthData","context","viewingmonth","render","html","js","replaceNode","trigger","viewUpdated","always","js_complete","stopLoading","url","arguments","monthChanged","getCalendarDayData","viewingday","dayChanged","loadingIconContainer","containers","loadingIcon","removeClass","addClass","getCalendarUpcomingData","viewingupcoming","getEventTypeClassFromType","eventType","typeClass","getEventById","getEventResponse","event","Error","eventData","normalisedeventtype","modalParams","title","name","type","TYPE","body","templateContext","canedit","candelete","headerclasses","isactionevent","create","modal","getRoot","hidden","destroy","show","init","reloadCurrentMonth","reloadCurrentDay"],"mappings":"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","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 * A javascript module to handler calendar view changes.\n *\n * @module core_calendar/view_manager\n * @package core_calendar\n * @copyright 2017 Andrew Nicols <[email protected]>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n 'jquery',\n 'core/templates',\n 'core/str',\n 'core/notification',\n 'core_calendar/repository',\n 'core_calendar/events',\n 'core_calendar/selectors',\n 'core/modal_factory',\n 'core/modal_events',\n 'core_calendar/summary_modal',\n 'core/custom_interaction_events',\n 'core/pending',\n], function(\n $,\n Templates,\n Str,\n Notification,\n CalendarRepository,\n CalendarEvents,\n CalendarSelectors,\n ModalFactory,\n ModalEvents,\n SummaryModal,\n CustomEvents,\n Pending\n) {\n\n /**\n * Register event listeners for the module.\n *\n * @param {object} root The root element.\n */\n var registerEventListeners = function(root) {\n root = $(root);\n\n // Bind click events to event links.\n root.on('click', CalendarSelectors.links.eventLink, function(e) {\n var pendingPromise = new Pending('core_calendar/view_manager:eventLink:click');\n var target = $(e.target);\n var eventId = null;\n\n var eventLink;\n if (target.is(CalendarSelectors.actions.viewEvent)) {\n eventLink = target;\n } else {\n eventLink = target.closest(CalendarSelectors.actions.viewEvent);\n }\n\n if (eventLink.length) {\n eventId = eventLink.data('eventId');\n } else {\n eventId = target.find(CalendarSelectors.actions.viewEvent).data('eventId');\n }\n\n if (eventId) {\n // A link was found. Show the modal.\n\n e.preventDefault();\n // We've handled the event so stop it from bubbling\n // and causing the day click handler to fire.\n e.stopPropagation();\n\n renderEventSummaryModal(eventId)\n .then(pendingPromise.resolve())\n .catch();\n } else {\n pendingPromise.resolve();\n }\n });\n\n\n root.on('click', CalendarSelectors.links.navLink, function(e) {\n var wrapper = root.find(CalendarSelectors.wrapper);\n var view = wrapper.data('view');\n var courseId = wrapper.data('courseid');\n var categoryId = wrapper.data('categoryid');\n var link = $(e.currentTarget);\n\n if (view === 'month') {\n changeMonth(root, link.attr('href'), link.data('year'), link.data('month'), courseId, categoryId,\n link.data('day'));\n e.preventDefault();\n } else if (view === 'day') {\n changeDay(root, link.attr('href'), link.data('year'), link.data('month'), link.data('day'),\n courseId, categoryId);\n e.preventDefault();\n }\n\n });\n\n var viewSelector = root.find(CalendarSelectors.viewSelector);\n CustomEvents.define(viewSelector, [CustomEvents.events.activate]);\n viewSelector.on(\n CustomEvents.events.activate,\n function(e) {\n e.preventDefault();\n\n var option = $(e.target);\n if (option.hasClass('active')) {\n return;\n }\n\n var view = option.data('view'),\n year = option.data('year'),\n month = option.data('month'),\n day = option.data('day'),\n courseId = option.data('courseid'),\n categoryId = option.data('categoryid');\n\n if (view == 'month') {\n refreshMonthContent(root, year, month, courseId, categoryId, root, 'core_calendar/calendar_month', day)\n .then(function() {\n return window.history.pushState({}, '', '?view=month');\n }).fail(Notification.exception);\n } else if (view == 'day') {\n refreshDayContent(root, year, month, day, courseId, categoryId, root, 'core_calendar/calendar_day')\n .then(function() {\n return window.history.pushState({}, '', '?view=day');\n }).fail(Notification.exception);\n } else if (view == 'upcoming') {\n reloadCurrentUpcoming(root, courseId, categoryId, root, 'core_calendar/calendar_upcoming')\n .then(function() {\n return window.history.pushState({}, '', '?view=upcoming');\n }).fail(Notification.exception);\n }\n }\n );\n };\n\n /**\n * Refresh the month content.\n *\n * @param {object} root The root element.\n * @param {Number} year Year\n * @param {Number} month Month\n * @param {Number} courseid The id of the course whose events are shown\n * @param {Number} categoryid The id of the category whose events are shown\n * @param {object} target The element being replaced. If not specified, the calendarwrapper is used.\n * @param {String} template The template to be rendered.\n * @param {Number} day Day (optional)\n * @return {promise}\n */\n var refreshMonthContent = function(root, year, month, courseid, categoryid, target, template, day) {\n startLoading(root);\n\n target = target || root.find(CalendarSelectors.wrapper);\n template = template || root.attr('data-template');\n day = day || 1;\n M.util.js_pending([root.get('id'), year, month, courseid].join('-'));\n var includenavigation = root.data('includenavigation');\n var mini = root.data('mini');\n return CalendarRepository.getCalendarMonthData(year, month, courseid, categoryid, includenavigation, mini, day)\n .then(function(context) {\n context.viewingmonth = true;\n return Templates.render(template, context);\n })\n .then(function(html, js) {\n return Templates.replaceNode(target, html, js);\n })\n .then(function() {\n $('body').trigger(CalendarEvents.viewUpdated);\n return;\n })\n .always(function() {\n M.util.js_complete([root.get('id'), year, month, courseid].join('-'));\n return stopLoading(root);\n })\n .fail(Notification.exception);\n };\n\n /**\n * Handle changes to the current calendar view.\n *\n * @param {object} root The container element\n * @param {String} url The calendar url to be shown\n * @param {Number} year Year\n * @param {Number} month Month\n * @param {Number} courseid The id of the course whose events are shown\n * @param {Number} categoryid The id of the category whose events are shown\n * @param {Number} day Day (optional)\n * @return {promise}\n */\n var changeMonth = function(root, url, year, month, courseid, categoryid, day) {\n day = day || 1;\n return refreshMonthContent(root, year, month, courseid, categoryid, null, null, day)\n .then(function() {\n if (url.length && url !== '#') {\n window.history.pushState({}, '', url);\n }\n return arguments;\n })\n .then(function() {\n $('body').trigger(CalendarEvents.monthChanged, [year, month, courseid, categoryid]);\n return arguments;\n });\n };\n\n /**\n * Reload the current month view data.\n *\n * @param {object} root The container element.\n * @param {Number} courseId The course id.\n * @param {Number} categoryId The id of the category whose events are shown\n * @return {promise}\n */\n var reloadCurrentMonth = function(root, courseId, categoryId) {\n var year = root.find(CalendarSelectors.wrapper).data('year');\n var month = root.find(CalendarSelectors.wrapper).data('month');\n var day = root.find(CalendarSelectors.wrapper).data('day');\n\n if (typeof courseId === 'undefined') {\n courseId = root.find(CalendarSelectors.wrapper).data('courseid');\n }\n\n if (typeof categoryId === 'undefined') {\n categoryId = root.find(CalendarSelectors.wrapper).data('categoryid');\n }\n\n return refreshMonthContent(root, year, month, courseId, categoryId, null, null, day);\n };\n\n\n /**\n * Refresh the day content.\n *\n * @param {object} root The root element.\n * @param {Number} year Year\n * @param {Number} month Month\n * @param {Number} day Day\n * @param {Number} courseid The id of the course whose events are shown\n * @param {Number} categoryId The id of the category whose events are shown\n * @param {object} target The element being replaced. If not specified, the calendarwrapper is used.\n * @param {String} template The template to be rendered.\n *\n * @return {promise}\n */\n var refreshDayContent = function(root, year, month, day, courseid, categoryId, target, template) {\n startLoading(root);\n\n target = target || root.find(CalendarSelectors.wrapper);\n template = template || root.attr('data-template');\n M.util.js_pending([root.get('id'), year, month, day, courseid, categoryId].join('-'));\n var includenavigation = root.data('includenavigation');\n return CalendarRepository.getCalendarDayData(year, month, day, courseid, categoryId, includenavigation)\n .then(function(context) {\n context.viewingday = true;\n return Templates.render(template, context);\n })\n .then(function(html, js) {\n return Templates.replaceNode(target, html, js);\n })\n .then(function() {\n $('body').trigger(CalendarEvents.viewUpdated);\n return;\n })\n .always(function() {\n M.util.js_complete([root.get('id'), year, month, day, courseid, categoryId].join('-'));\n return stopLoading(root);\n })\n .fail(Notification.exception);\n };\n\n /**\n * Reload the current day view data.\n *\n * @param {object} root The container element.\n * @param {Number} courseId The course id.\n * @param {Number} categoryId The id of the category whose events are shown\n * @return {promise}\n */\n var reloadCurrentDay = function(root, courseId, categoryId) {\n var wrapper = root.find(CalendarSelectors.wrapper);\n var year = wrapper.data('year');\n var month = wrapper.data('month');\n var day = wrapper.data('day');\n\n if (!courseId) {\n courseId = root.find(CalendarSelectors.wrapper).data('courseid');\n }\n\n if (typeof categoryId === 'undefined') {\n categoryId = root.find(CalendarSelectors.wrapper).data('categoryid');\n }\n\n return refreshDayContent(root, year, month, day, courseId, categoryId);\n };\n\n /**\n * Handle changes to the current calendar view.\n *\n * @param {object} root The root element.\n * @param {String} url The calendar url to be shown\n * @param {Number} year Year\n * @param {Number} month Month\n * @param {Number} day Day\n * @param {Number} courseId The id of the course whose events are shown\n * @param {Number} categoryId The id of the category whose events are shown\n * @return {promise}\n */\n var changeDay = function(root, url, year, month, day, courseId, categoryId) {\n return refreshDayContent(root, year, month, day, courseId, categoryId)\n .then(function() {\n if (url.length && url !== '#') {\n window.history.pushState({}, '', url);\n }\n return arguments;\n })\n .then(function() {\n $('body').trigger(CalendarEvents.dayChanged, [year, month, courseId, categoryId]);\n return arguments;\n });\n };\n\n /**\n * Set the element state to loading.\n *\n * @param {object} root The container element\n * @method startLoading\n */\n var startLoading = function(root) {\n var loadingIconContainer = root.find(CalendarSelectors.containers.loadingIcon);\n\n loadingIconContainer.removeClass('hidden');\n };\n\n /**\n * Remove the loading state from the element.\n *\n * @param {object} root The container element\n * @method stopLoading\n */\n var stopLoading = function(root) {\n var loadingIconContainer = root.find(CalendarSelectors.containers.loadingIcon);\n\n loadingIconContainer.addClass('hidden');\n };\n\n /**\n * Reload the current month view data.\n *\n * @param {object} root The container element.\n * @param {Number} courseId The course id.\n * @param {Number} categoryId The id of the category whose events are shown\n * @param {object} target The element being replaced. If not specified, the calendarwrapper is used.\n * @param {String} template The template to be rendered.\n * @return {promise}\n */\n var reloadCurrentUpcoming = function(root, courseId, categoryId, target, template) {\n startLoading(root);\n\n target = target || root.find(CalendarSelectors.wrapper);\n template = template || root.attr('data-template');\n\n if (typeof courseId === 'undefined') {\n courseId = root.find(CalendarSelectors.wrapper).data('courseid');\n }\n\n if (typeof categoryId === 'undefined') {\n categoryId = root.find(CalendarSelectors.wrapper).data('categoryid');\n }\n\n return CalendarRepository.getCalendarUpcomingData(courseId, categoryId)\n .then(function(context) {\n context.viewingupcoming = true;\n return Templates.render(template, context);\n })\n .then(function(html, js) {\n return Templates.replaceNode(target, html, js);\n })\n .then(function() {\n $('body').trigger(CalendarEvents.viewUpdated);\n return;\n })\n .always(function() {\n return stopLoading(root);\n })\n .fail(Notification.exception);\n };\n\n /**\n * Get the CSS class to apply for the given event type.\n *\n * @param {String} eventType The calendar event type\n * @return {String}\n */\n var getEventTypeClassFromType = function(eventType) {\n return 'calendar_event_' + eventType;\n };\n\n /**\n * Render the event summary modal.\n *\n * @param {Number} eventId The calendar event id.\n * @returns {Promise}\n */\n var renderEventSummaryModal = function(eventId) {\n var pendingPromise = new Pending('core_calendar/view_manager:renderEventSummaryModal');\n var typeClass = '';\n\n // Calendar repository promise.\n return CalendarRepository.getEventById(eventId)\n .then(function(getEventResponse) {\n if (!getEventResponse.event) {\n throw new Error('Error encountered while trying to fetch calendar event with ID: ' + eventId);\n }\n var eventData = getEventResponse.event;\n typeClass = getEventTypeClassFromType(eventData.normalisedeventtype);\n\n return eventData;\n }).then(function(eventData) {\n // Build the modal parameters from the event data.\n var modalParams = {\n title: eventData.name,\n type: SummaryModal.TYPE,\n body: Templates.render('core_calendar/event_summary_body', eventData),\n templateContext: {\n canedit: eventData.canedit,\n candelete: eventData.candelete,\n headerclasses: typeClass,\n isactionevent: eventData.isactionevent,\n url: eventData.url\n }\n };\n\n // Create the modal.\n return ModalFactory.create(modalParams);\n\n })\n .then(function(modal) {\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n // Finally, render the modal!\n modal.show();\n\n return modal;\n })\n .then(function(modal) {\n pendingPromise.resolve();\n\n return modal;\n })\n .catch(Notification.exception);\n };\n\n return {\n init: function(root, view) {\n registerEventListeners(root, view);\n },\n reloadCurrentMonth: reloadCurrentMonth,\n changeMonth: changeMonth,\n refreshMonthContent: refreshMonthContent,\n reloadCurrentDay: reloadCurrentDay,\n changeDay: changeDay,\n refreshDayContent: refreshDayContent,\n reloadCurrentUpcoming: reloadCurrentUpcoming\n };\n });\n"],"file":"view_manager.min.js"}