Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
{"version":3,"file":"add_category.min.js","sources":["../src/add_category.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 * Module to add categories.\n *\n * @module     tool_dataprivacy/add_category\n * @copyright  2018 David Monllao\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n    'jquery',\n    'core/str',\n    'core/ajax',\n    'core/notification',\n    'core/modal_save_cancel',\n    'core/modal_events',\n    'core/fragment',\n    'core_form/changechecker',\n], function(\n    $,\n    Str,\n    Ajax,\n    Notification,\n    ModalSaveCancel,\n    ModalEvents,\n    Fragment,\n    FormChangeChecker\n) {\n\n        var SELECTORS = {\n            CATEGORY_LINK: '[data-add-element=\"category\"]',\n        };\n\n        var AddCategory = function(contextId) {\n            this.contextId = contextId;\n\n            var stringKeys = [\n                {\n                    key: 'addcategory',\n                    component: 'tool_dataprivacy'\n                },\n                {\n                    key: 'save',\n                    component: 'admin'\n                }\n            ];\n            this.strings = Str.get_strings(stringKeys);\n\n            this.registerEventListeners();\n        };\n\n        /**\n         * @var {int} contextId\n         * @private\n         */\n        AddCategory.prototype.contextId = 0;\n\n        /**\n         * @var {Promise}\n         * @private\n         */\n        AddCategory.prototype.strings = 0;\n\n        AddCategory.prototype.registerEventListeners = function() {\n\n            var trigger = $(SELECTORS.CATEGORY_LINK);\n            trigger.on('click', function() {\n                this.strings.then(function(strings) {\n                    return Promise.all([\n                        ModalSaveCancel.create({\n                            title: strings[0],\n                            body: '',\n                        }),\n                        strings[1],\n                    ]).then(function([modal, string]) {\n                        this.setupFormModal(modal, string);\n                        return modal;\n                    }.bind(this));\n                }.bind(this))\n                .catch(Notification.exception);\n            }.bind(this));\n\n        };\n\n        /**\n         * @method getBody\n         * @param {Object} formdata\n         * @private\n         * @return {Promise}\n         */\n        AddCategory.prototype.getBody = function(formdata) {\n\n            var params = null;\n            if (typeof formdata !== \"undefined\") {\n                params = {jsonformdata: JSON.stringify(formdata)};\n            }\n            // Get the content of the modal.\n            return Fragment.loadFragment('tool_dataprivacy', 'addcategory_form', this.contextId, params);\n        };\n\n        AddCategory.prototype.setupFormModal = function(modal, saveText) {\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());\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            this.modal = modal;\n\n            modal.show();\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        AddCategory.prototype.submitForm = function(e) {\n            e.preventDefault();\n            this.modal.getRoot().find('form').submit();\n        };\n\n        AddCategory.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            Ajax.call([{\n                methodname: 'tool_dataprivacy_create_category_form',\n                args: {jsonformdata: JSON.stringify(formData)},\n                done: function(data) {\n                    if (data.validationerrors) {\n                        this.modal.setBody(this.getBody(formData));\n                    } else {\n                        this.close();\n                    }\n                }.bind(this),\n                fail: Notification.exception\n            }]);\n        };\n\n        AddCategory.prototype.close = function() {\n            this.destroy();\n            document.location.reload();\n        };\n\n        AddCategory.prototype.destroy = function() {\n            FormChangeChecker.resetAllFormDirtyStates();\n            this.modal.destroy();\n        };\n\n        AddCategory.prototype.removeListeners = function() {\n            $(SELECTORS.CATEGORY_LINK).off('click');\n        };\n\n        return /** @alias module:tool_dataprivacy/add_category */ {\n            getInstance: function(contextId) {\n                return new AddCategory(contextId);\n            }\n        };\n    }\n);\n"],"names":["define","$","Str","Ajax","Notification","ModalSaveCancel","ModalEvents","Fragment","FormChangeChecker","SELECTORS","AddCategory","contextId","strings","get_strings","key","component","registerEventListeners","prototype","on","then","Promise","all","create","title","body","modal","string","setupFormModal","bind","this","catch","exception","getBody","formdata","params","jsonformdata","JSON","stringify","loadFragment","saveText","setLarge","setSaveButtonText","getRoot","hidden","destroy","setBody","save","submitForm","submitFormAjax","show","e","preventDefault","find","submit","formData","serialize","call","methodname","args","done","data","validationerrors","close","fail","document","location","reload","resetAllFormDirtyStates","removeListeners","off","getInstance"],"mappings":";;;;;;;AAsBAA,uCAAO,CACH,SACA,WACA,YACA,oBACA,yBACA,oBACA,gBACA,4BACD,SACCC,EACAC,IACAC,KACAC,aACAC,gBACAC,YACAC,SACAC,uBAGQC,wBACe,gCAGfC,YAAc,SAASC,gBAClBA,UAAYA,eAYZC,QAAUV,IAAIW,YAVF,CACb,CACIC,IAAK,cACLC,UAAW,oBAEf,CACID,IAAK,OACLC,UAAW,gBAKdC,iCAOTN,YAAYO,UAAUN,UAAY,EAMlCD,YAAYO,UAAUL,QAAU,EAEhCF,YAAYO,UAAUD,uBAAyB,WAE7Bf,EAAEQ,yBACRS,GAAG,QAAS,gBACXN,QAAQO,KAAK,SAASP,gBAChBQ,QAAQC,IAAI,CACfhB,gBAAgBiB,OAAO,CACnBC,MAAOX,QAAQ,GACfY,KAAM,KAEVZ,QAAQ,KACTO,KAAK,mBAAUM,MAAOC,yBAChBC,eAAeF,MAAOC,QACpBD,OACTG,KAAKC,QACTD,KAAKC,OACNC,MAAM1B,aAAa2B,YACtBH,KAAKC,QAUXnB,YAAYO,UAAUe,QAAU,SAASC,cAEjCC,OAAS,iBACW,IAAbD,WACPC,OAAS,CAACC,aAAcC,KAAKC,UAAUJ,YAGpC1B,SAAS+B,aAAa,mBAAoB,mBAAoBT,KAAKlB,UAAWuB,SAGzFxB,YAAYO,UAAUU,eAAiB,SAASF,MAAOc,UACnDd,MAAMe,WAENf,MAAMgB,kBAAkBF,UAGxBd,MAAMiB,UAAUxB,GAAGZ,YAAYqC,OAAQd,KAAKe,QAAQhB,KAAKC,OAEzDJ,MAAMoB,QAAQhB,KAAKG,WAInBP,MAAMiB,UAAUxB,GAAGZ,YAAYwC,KAAMjB,KAAKkB,WAAWnB,KAAKC,OAE1DJ,MAAMiB,UAAUxB,GAAG,SAAU,OAAQW,KAAKmB,eAAepB,KAAKC,YAEzDJ,MAAQA,MAEbA,MAAMwB,QAUVvC,YAAYO,UAAU8B,WAAa,SAASG,GACxCA,EAAEC,sBACG1B,MAAMiB,UAAUU,KAAK,QAAQC,UAGtC3C,YAAYO,UAAU+B,eAAiB,SAASE,GAE5CA,EAAEC,qBAGEG,SAAWzB,KAAKJ,MAAMiB,UAAUU,KAAK,QAAQG,YAEjDpD,KAAKqD,KAAK,CAAC,CACPC,WAAY,wCACZC,KAAM,CAACvB,aAAcC,KAAKC,UAAUiB,WACpCK,KAAM,SAASC,MACPA,KAAKC,sBACApC,MAAMoB,QAAQhB,KAAKG,QAAQsB,gBAE3BQ,SAEXlC,KAAKC,MACPkC,KAAM3D,aAAa2B,cAI3BrB,YAAYO,UAAU6C,MAAQ,gBACrBlB,UACLoB,SAASC,SAASC,UAGtBxD,YAAYO,UAAU2B,QAAU,WAC5BpC,kBAAkB2D,+BACb1C,MAAMmB,WAGflC,YAAYO,UAAUmD,gBAAkB,WACpCnE,EAAEQ,yBAAyB4D,IAAI,UAGuB,CACtDC,YAAa,SAAS3D,kBACX,IAAID,YAAYC"}