diff --git a/calendar/amd/build/summary_modal.min.js b/calendar/amd/build/summary_modal.min.js new file mode 100644 index 00000000000..bb8b25a861b --- /dev/null +++ b/calendar/amd/build/summary_modal.min.js @@ -0,0 +1 @@ +define(["jquery","core/notification","core/custom_interaction_events","core/modal","core/modal_registry"],function(a,b,c,d,e){var f=!1,g={EDIT_BUTTON:'[data-action="edit"]',DELETE_BUTTON:'[data-action="delete"]',EVENT_LINK:'[data-action="event-link"]'},h=function(a){d.call(this,a),this.getFooter().find(g.EDIT_BUTTON).length||b.exception({message:"No edit button found"}),this.getFooter().find(g.DELETE_BUTTON).length||b.exception({message:"No delete button found"})};return h.TYPE="core_calendar-event_summary",h.prototype=Object.create(d.prototype),h.prototype.constructor=h,f||(e.register(h.TYPE,h,"core_calendar/event_summary_modal"),f=!0),h}); \ No newline at end of file diff --git a/calendar/amd/src/summary_modal.js b/calendar/amd/src/summary_modal.js new file mode 100644 index 00000000000..a1801f5bcde --- /dev/null +++ b/calendar/amd/src/summary_modal.js @@ -0,0 +1,64 @@ +// This file is part of Moodle - http://moodle.org/ +// +// Moodle is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Moodle is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Moodle. If not, see . + +/** + * A javascript module to handle summary modal. + * + * @module core_calendar/summary_modal + * @package core_calendar + * @copyright 2017 Simey Lameze + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +define(['jquery', 'core/notification', 'core/custom_interaction_events', 'core/modal', 'core/modal_registry'], + function($, Notification, CustomEvents, Modal, ModalRegistry) { + + var registered = false; + var SELECTORS = { + EDIT_BUTTON: '[data-action="edit"]', + DELETE_BUTTON: '[data-action="delete"]', + EVENT_LINK: '[data-action="event-link"]' + }; + + /** + * Constructor for the Modal. + * + * @param {object} root The root jQuery element for the modal + */ + var ModalEventSummary = function(root) { + Modal.call(this, root); + + if (!this.getFooter().find(SELECTORS.EDIT_BUTTON).length) { + Notification.exception({message: 'No edit button found'}); + } + + if (!this.getFooter().find(SELECTORS.DELETE_BUTTON).length) { + Notification.exception({message: 'No delete button found'}); + } + }; + + ModalEventSummary.TYPE = 'core_calendar-event_summary'; + ModalEventSummary.prototype = Object.create(Modal.prototype); + ModalEventSummary.prototype.constructor = ModalEventSummary; + + // Automatically register with the modal registry the first time this module is imported so that you can create modals + // of this type using the modal factory. + if (!registered) { + ModalRegistry.register(ModalEventSummary.TYPE, ModalEventSummary, 'core_calendar/event_summary_modal'); + registered = true; + } + + return ModalEventSummary; + +}); \ No newline at end of file