Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/admin/tool/policy/amd/build/
Upload File :
Current File : /var/www/ljmtc/cbt/admin/tool/policy/amd/build/acceptmodal.min.js.map

{"version":3,"sources":["../src/acceptmodal.js"],"names":["define","$","Str","ModalFactory","ModalEvents","Notification","Fragment","Ajax","Y","AcceptOnBehalf","contextid","init","prototype","modal","currentTrigger","triggers","SINGLE","BULK","on","e","preventDefault","currentTarget","href","attr","formData","slice","indexOf","showFormModal","bind","form","closest","find","length","serialize","get_strings","key","component","then","strings","alert","fail","exception","action","params","split","i","pair","title","saveText","create","type","types","SAVE_CANCEL","body","done","setupFormModal","catch","setLarge","setSaveButtonText","getRoot","hidden","destroy","setBody","getBody","save","submitForm","submitFormAjax","show","jsonformdata","JSON","stringify","loadFragment","requests","call","methodname","args","data","validationerrors","close","submit","document","location","reload","use","M","core_formchangechecker","reset_form_dirty_state","focus","getInstance"],"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 * Add policy consent modal to the page\n *\n * @module     tool_policy/acceptmodal\n * @class      AcceptOnBehalf\n * @package    tool_policy\n * @copyright  2018 Marina Glancy\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery', 'core/str', 'core/modal_factory', 'core/modal_events', 'core/notification', 'core/fragment',\n        'core/ajax', 'core/yui'],\n    function($, Str, ModalFactory, ModalEvents, Notification, Fragment, Ajax, Y) {\n\n        \"use strict\";\n\n        /**\n         * Constructor\n         *\n         * @param {int} contextid\n         *\n         * Each call to init gets it's own instance of this class.\n         */\n        var AcceptOnBehalf = function(contextid) {\n            this.contextid = contextid;\n            this.init();\n        };\n\n        /**\n         * @var {Modal} modal\n         * @private\n         */\n        AcceptOnBehalf.prototype.modal = null;\n\n        /**\n         * @var {int} contextid\n         * @private\n         */\n        AcceptOnBehalf.prototype.contextid = -1;\n\n        /**\n         * @var {object} currentTrigger The triggered HTML jQuery object\n         * @private\n         */\n        AcceptOnBehalf.prototype.currentTrigger = null;\n\n        /**\n         * @var {object} triggers The trigger selectors\n         * @private\n         */\n        AcceptOnBehalf.prototype.triggers = {\n            SINGLE: 'a[data-action=acceptmodal]',\n            BULK: 'input[data-action=acceptmodal]'\n        };\n\n        /**\n         * Initialise the class.\n         *\n         * @private\n         */\n        AcceptOnBehalf.prototype.init = function() {\n            // Initialise for links accepting policies for individual users.\n            $(this.triggers.SINGLE).on('click', function(e) {\n                e.preventDefault();\n                this.currentTrigger = $(e.currentTarget);\n                var href = $(e.currentTarget).attr('href'),\n                    formData = href.slice(href.indexOf('?') + 1);\n                this.showFormModal(formData);\n            }.bind(this));\n\n            // Initialise for multiple users acceptance form.\n            $(this.triggers.BULK).on('click', function(e) {\n                e.preventDefault();\n                this.currentTrigger = $(e.currentTarget);\n                var form = $(e.currentTarget).closest('form');\n                if (form.find('input[type=checkbox][name=\"userids[]\"]:checked').length) {\n                    var formData = form.serialize();\n                    this.showFormModal(formData);\n                } else {\n                    Str.get_strings([\n                        {key: 'notice'},\n                        {key: 'selectusersforconsent', component: 'tool_policy'},\n                        {key: 'ok'}\n                    ]).then(function(strings) {\n                        Notification.alert(strings[0], strings[1], strings[2]);\n                        return;\n                    }).fail(Notification.exception);\n                }\n            }.bind(this));\n        };\n\n        /**\n         * Show modal with a form\n         *\n         * @param {String} formData\n         */\n        AcceptOnBehalf.prototype.showFormModal = function(formData) {\n            var action;\n            var params = formData.split('&');\n            for (var i = 0; i < params.length; i++) {\n                var pair = params[i].split('=');\n                if (pair[0] == 'action') {\n                    action = pair[1];\n                }\n            }\n            // Fetch the title string.\n            Str.get_strings([\n                {key: 'statusformtitleaccept', component: 'tool_policy'},\n                {key: 'iagreetothepolicy', component: 'tool_policy'},\n                {key: 'statusformtitlerevoke', component: 'tool_policy'},\n                {key: 'irevokethepolicy', component: 'tool_policy'},\n                {key: 'statusformtitledecline', component: 'tool_policy'},\n                {key: 'declinethepolicy', component: 'tool_policy'}\n            ]).then(function(strings) {\n                var title;\n                var saveText;\n                if (action == 'accept') {\n                    title = strings[0];\n                    saveText = strings[1];\n                } else if (action == 'revoke') {\n                    title = strings[2];\n                    saveText = strings[3];\n                } else if (action == 'decline') {\n                    title = strings[4];\n                    saveText = strings[5];\n                }\n                // Create the modal.\n                return ModalFactory.create({\n                    type: ModalFactory.types.SAVE_CANCEL,\n                    title: title,\n                    body: ''\n                }).done(function(modal) {\n                    this.modal = modal;\n                    this.setupFormModal(formData, saveText);\n                }.bind(this));\n            }.bind(this))\n                .catch(Notification.exception);\n        };\n\n        /**\n         * Setup form inside a modal\n         *\n         * @param {String} formData\n         * @param {String} saveText\n         */\n        AcceptOnBehalf.prototype.setupFormModal = function(formData, saveText) {\n            var modal = this.modal;\n\n            modal.setLarge();\n\n            modal.setSaveButtonText(saveText);\n\n            // We want to reset the form every time it is opened.\n            modal.getRoot().on(ModalEvents.hidden, this.destroy.bind(this));\n\n            modal.setBody(this.getBody(formData));\n\n            // We catch the modal save event, and use it to submit the form inside the modal.\n            // Triggering a form submission will give JS validation scripts a chance to check for errors.\n            modal.getRoot().on(ModalEvents.save, this.submitForm.bind(this));\n            // We also catch the form submit event and use it to submit the form with ajax.\n            modal.getRoot().on('submit', 'form', this.submitFormAjax.bind(this));\n\n            modal.show();\n        };\n\n        /**\n         * Load the body of the modal (contains the form)\n         *\n         * @method getBody\n         * @private\n         * @param {String} formData\n         * @return {Promise}\n         */\n        AcceptOnBehalf.prototype.getBody = function(formData) {\n            if (typeof formData === \"undefined\") {\n                formData = {};\n            }\n            // Get the content of the modal.\n            var params = {jsonformdata: JSON.stringify(formData)};\n            return Fragment.loadFragment('tool_policy', 'accept_on_behalf', this.contextid, params);\n        };\n\n        /**\n         * Submit the form inside the modal via AJAX request\n         *\n         * @method submitFormAjax\n         * @private\n         * @param {Event} e Form submission event.\n         */\n        AcceptOnBehalf.prototype.submitFormAjax = function(e) {\n            // We don't want to do a real form submission.\n            e.preventDefault();\n\n            // Convert all the form elements values to a serialised string.\n            var formData = this.modal.getRoot().find('form').serialize();\n\n            var requests = Ajax.call([{\n                methodname: 'tool_policy_submit_accept_on_behalf',\n                args: {jsonformdata: JSON.stringify(formData)}\n            }]);\n            requests[0].done(function(data) {\n                if (data.validationerrors) {\n                    this.modal.setBody(this.getBody(formData));\n                } else {\n                    this.close();\n                }\n            }.bind(this)).fail(Notification.exception);\n        };\n\n        /**\n         * This triggers a form submission, so that any mform elements can do final tricks before the form submission is processed.\n         *\n         * @method submitForm\n         * @param {Event} e Form submission event.\n         * @private\n         */\n        AcceptOnBehalf.prototype.submitForm = function(e) {\n            e.preventDefault();\n            this.modal.getRoot().find('form').submit();\n        };\n\n        /**\n         * Close the modal\n         */\n        AcceptOnBehalf.prototype.close = function() {\n            this.destroy();\n            document.location.reload();\n        };\n\n        /**\n         * Destroy the modal\n         */\n        AcceptOnBehalf.prototype.destroy = function() {\n            Y.use('moodle-core-formchangechecker', function() {\n                M.core_formchangechecker.reset_form_dirty_state();\n            });\n            this.modal.destroy();\n            this.currentTrigger.focus();\n        };\n\n        return /** @alias module:tool_policy/acceptmodal */ {\n            // Public variables and functions.\n            /**\n             * Attach event listeners to initialise this module.\n             *\n             * @method init\n             * @param {int} contextid The contextid for the course.\n             * @return {AcceptOnBehalf}\n             */\n            getInstance: function(contextid) {\n                return new AcceptOnBehalf(contextid);\n            }\n        };\n    });\n"],"file":"acceptmodal.min.js"}