%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/ava/course/amd/build/
Upload File :
Create Path :
Current File : /home/vacivi36/ava/course/amd/build/copy_modal.min.js.map

{"version":3,"file":"copy_modal.min.js","sources":["../src/copy_modal.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 provides the course copy modal from the course and\n * category management screen.\n *\n * @module     core_course/copy_modal\n * @copyright  2020 onward The Moodle Users Association <https://moodleassociation.org/>\n * @author     Matt Porritt <mattp@catalyst-au.net>\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since      3.9\n */\n\ndefine(['jquery', 'core/str', 'core/modal_factory', 'core/modal_events',\n        'core/ajax', 'core/fragment', 'core/notification', 'core/config'],\n        function($, Str, ModalFactory, ModalEvents, ajax, Fragment, Notification, Config) {\n\n    /**\n     * Module level variables.\n     */\n    var CopyModal = {};\n    var contextid;\n    var course;\n    var modalObj;\n    var spinner = '<p class=\"text-center\">'\n        + '<i class=\"fa fa-spinner fa-pulse fa-2x fa-fw\"></i>'\n        + '</p>';\n\n    /**\n     * Creates the modal for the course copy form\n     *\n     * @private\n     */\n    function createModal() {\n        // Get the Title String.\n        Str.get_string('loading').then(function(title) {\n            // Create the Modal.\n            ModalFactory.create({\n                type: ModalFactory.types.DEFAULT,\n                title: title,\n                body: spinner,\n                large: true\n            })\n            .done(function(modal) {\n                modalObj = modal;\n                // Explicitly handle form click events.\n                modalObj.getRoot().on('click', '#id_submitreturn', processModalForm);\n                modalObj.getRoot().on('click', '#id_submitdisplay', function(e) {\n                    e.formredirect = true;\n                    processModalForm(e);\n\n                });\n                modalObj.getRoot().on('click', '#id_cancel', function(e) {\n                    e.preventDefault();\n                    modalObj.setBody(spinner);\n                    modalObj.hide();\n                });\n            });\n            return;\n        }).catch(function() {\n            Notification.exception(new Error('Failed to load string: loading'));\n        });\n    }\n\n    /**\n     * Updates the body of the modal window.\n     *\n     * @param {Object} formdata\n     * @private\n     */\n    function updateModalBody(formdata) {\n        if (typeof formdata === \"undefined\") {\n            formdata = {};\n        }\n\n        var params = {\n                'jsonformdata': JSON.stringify(formdata),\n                'courseid': course.id\n        };\n\n        modalObj.setBody(spinner);\n        Str.get_string('copycoursetitle', 'backup', course.shortname).then(function(title) {\n            modalObj.setTitle(title);\n            modalObj.setBody(Fragment.loadFragment('course', 'new_base_form', contextid, params));\n            return;\n        }).catch(function() {\n            Notification.exception(new Error('Failed to load string: copycoursetitle'));\n        });\n    }\n\n    /**\n     * Updates Moodle form with selected information.\n     *\n     * @param {Object} e\n     * @private\n     */\n    function processModalForm(e) {\n        e.preventDefault(); // Stop modal from closing.\n\n        // Form data.\n        var copyform = modalObj.getRoot().find('form').serialize();\n        var formjson = JSON.stringify(copyform);\n\n        // Handle invalid form fields for better UX.\n        var invalid = $.merge(\n                modalObj.getRoot().find('[aria-invalid=\"true\"]'),\n                modalObj.getRoot().find('.error')\n        );\n\n        if (invalid.length) {\n            invalid.first().focus();\n            return;\n        }\n\n        // Submit form via ajax.\n        ajax.call([{\n            methodname: 'core_backup_submit_copy_form',\n            args: {\n                jsonformdata: formjson\n            },\n        }])[0].done(function() {\n            // For submission succeeded.\n            modalObj.setBody(spinner);\n            modalObj.hide();\n\n            if (e.formredirect == true) {\n                // We are redirecting to copy progress display.\n                let redirect = Config.wwwroot + \"/backup/copyprogress.php?id=\" + course.id;\n                window.location.assign(redirect);\n            }\n\n        }).fail(function() {\n            // Form submission failed server side, redisplay with errors.\n            updateModalBody(copyform);\n        });\n    }\n\n    /**\n     * Initialise the class.\n     *\n     * @method\n     * @param {Object} context\n     * @public\n     */\n    CopyModal.init = function(context) {\n        contextid = context;\n        // Setup the initial Modal.\n        createModal();\n\n        // Setup the click handlers on the copy buttons.\n        $('.action-copy').on('click', function(e) {\n            e.preventDefault(); // Stop. Hammer time.\n            let url = new URL(this.getAttribute('href'));\n            let params = new URLSearchParams(url.search);\n            let courseid = params.get('id');\n\n            ajax.call([{ // Get the course information.\n                methodname: 'core_course_get_courses',\n                args: {\n                    'options': {'ids': [courseid]},\n                },\n            }])[0].done(function(response) {\n                // We have the course info get the modal content.\n                course = response[0];\n                updateModalBody();\n\n            }).fail(function() {\n                Notification.exception(new Error('Failed to load course'));\n            });\n\n            modalObj.show();\n        });\n\n    };\n\n    return CopyModal;\n});\n"],"names":["define","$","Str","ModalFactory","ModalEvents","ajax","Fragment","Notification","Config","contextid","course","modalObj","CopyModal","spinner","updateModalBody","formdata","params","JSON","stringify","id","setBody","get_string","shortname","then","title","setTitle","loadFragment","catch","exception","Error","processModalForm","e","preventDefault","copyform","getRoot","find","serialize","formjson","invalid","merge","length","first","focus","call","methodname","args","jsonformdata","done","hide","formredirect","redirect","wwwroot","window","location","assign","fail","init","context","create","type","types","DEFAULT","body","large","modal","on","url","URL","this","getAttribute","courseid","URLSearchParams","search","get","response","show"],"mappings":";;;;;;;;;;AA0BAA,gCAAO,CAAC,SAAU,WAAY,qBAAsB,oBAC5C,YAAa,gBAAiB,oBAAqB,gBACnD,SAASC,EAAGC,IAAKC,aAAcC,YAAaC,KAAMC,SAAUC,aAAcC,YAM1EC,UACAC,OACAC,SAHAC,UAAY,GAIZC,QAAU,yFA8CLC,gBAAgBC,eACG,IAAbA,WACPA,SAAW,QAGXC,OAAS,cACWC,KAAKC,UAAUH,mBACnBL,OAAOS,IAG3BR,SAASS,QAAQP,SACjBX,IAAImB,WAAW,kBAAmB,SAAUX,OAAOY,WAAWC,MAAK,SAASC,OACxEb,SAASc,SAASD,OAClBb,SAASS,QAAQd,SAASoB,aAAa,SAAU,gBAAiBjB,UAAWO,YAE9EW,OAAM,WACLpB,aAAaqB,UAAU,IAAIC,MAAM,uDAUhCC,iBAAiBC,GACtBA,EAAEC,qBAGEC,SAAWtB,SAASuB,UAAUC,KAAK,QAAQC,YAC3CC,SAAWpB,KAAKC,UAAUe,UAG1BK,QAAUrC,EAAEsC,MACR5B,SAASuB,UAAUC,KAAK,yBACxBxB,SAASuB,UAAUC,KAAK,WAG5BG,QAAQE,OACRF,QAAQG,QAAQC,QAKpBrC,KAAKsC,KAAK,CAAC,CACPC,WAAY,+BACZC,KAAM,CACFC,aAAcT,aAElB,GAAGU,MAAK,cAERpC,SAASS,QAAQP,SACjBF,SAASqC,OAEa,GAAlBjB,EAAEkB,aAAsB,KAEpBC,SAAW1C,OAAO2C,QAAU,+BAAiCzC,OAAOS,GACxEiC,OAAOC,SAASC,OAAOJ,cAG5BK,MAAK,WAEJzC,gBAAgBmB,oBAWxBrB,UAAU4C,KAAO,SAASC,SACtBhD,UAAYgD,QA9GZvD,IAAImB,WAAW,WAAWE,MAAK,SAASC,OAEpCrB,aAAauD,OAAO,CAChBC,KAAMxD,aAAayD,MAAMC,QACzBrC,MAAOA,MACPsC,KAAMjD,QACNkD,OAAO,IAEVhB,MAAK,SAASiB,QACXrD,SAAWqD,OAEF9B,UAAU+B,GAAG,QAAS,mBAAoBnC,kBACnDnB,SAASuB,UAAU+B,GAAG,QAAS,qBAAqB,SAASlC,GACzDA,EAAEkB,cAAe,EACjBnB,iBAAiBC,MAGrBpB,SAASuB,UAAU+B,GAAG,QAAS,cAAc,SAASlC,GAClDA,EAAEC,iBACFrB,SAASS,QAAQP,SACjBF,SAASqC,gBAIlBrB,OAAM,WACLpB,aAAaqB,UAAU,IAAIC,MAAM,sCA0FrC5B,EAAE,gBAAgBgE,GAAG,SAAS,SAASlC,GACnCA,EAAEC,qBACEkC,IAAM,IAAIC,IAAIC,KAAKC,aAAa,SAEhCC,SADS,IAAIC,gBAAgBL,IAAIM,QACfC,IAAI,MAE1BpE,KAAKsC,KAAK,CAAC,CACPC,WAAY,0BACZC,KAAM,SACS,KAAQ,CAACyB,eAExB,GAAGvB,MAAK,SAAS2B,UAEjBhE,OAASgE,SAAS,GAClB5D,qBAEDyC,MAAK,WACJhD,aAAaqB,UAAU,IAAIC,MAAM,6BAGrClB,SAASgE,WAKV/D"}

Zerion Mini Shell 1.0