Your IP : 192.168.165.1


Current Path : C:/Users/Mahmood/Desktop/moodle8/user/amd/build/
Upload File :
Current File : C:/Users/Mahmood/Desktop/moodle8/user/amd/build/status_field.min.js.map

{"version":3,"sources":["../src/status_field.js"],"names":["define","Template","$","Str","Config","Notification","ModalFactory","ModalEvents","Fragment","Ajax","SELECTORS","EDIT_ENROLMENT","SHOW_DETAILS","UNENROL","StatusFieldActions","options","contextid","courseid","bindEditEnrol","bindUnenrol","bindStatusDetails","prototype","statusFieldInstsance","click","e","preventDefault","clickedEditTrigger","parentContainer","parent","fullname","data","ueid","attr","when","get_string","then","modalTitle","create","large","title","type","types","SAVE_CANCEL","done","modal","getRoot","on","save","submitEditFormAjax","hidden","destroy","setBody","getBody","show","fail","exception","unenrolLink","strings","key","component","param","user","course","enrolinstancename","deleteModalPromise","get_strings","results","confirmMessage","setTitle","setSaveButtonText","unenrolParams","submitUnenrolFormAjax","detailsButton","context","find","editEnrolLink","next","length","editenrollink","append","clone","html","modalStringsPromise","modalPromise","CANCEL","modalBodyPromise","render","hide","trigger","form","val","request","methodname","args","formdata","serialize","call","result","window","M","core_formchangechecker","reset_form_dirty_state","location","reload","formData","JSON","stringify","alert","errors","message","params","loadFragment","init","config"],"mappings":"AAsBAA,OAAM,0BAAC,CAAC,gBAAD,CACC,QADD,CAEC,UAFD,CAGC,aAHD,CAIC,mBAJD,CAKC,oBALD,CAMC,mBAND,CAOC,eAPD,CAQC,WARD,CAAD,CAUF,SAASC,CAAT,CAAmBC,CAAnB,CAAsBC,CAAtB,CAA2BC,CAA3B,CAAmCC,CAAnC,CAAiDC,CAAjD,CAA+DC,CAA/D,CAA4EC,CAA5E,CAAsFC,CAAtF,CAA4F,IAQpFC,CAAAA,CAAS,CAAG,CACZC,cAAc,CAAE,iCADJ,CAEZC,YAAY,CAAE,+BAFF,CAGZC,OAAO,CAAE,2BAHG,CARwE,CAoBpFC,CAAkB,CAAG,SAASC,CAAT,CAAkB,CACvC,KAAKC,SAAL,CAAiBD,CAAO,CAACC,SAAzB,CACA,KAAKC,QAAL,CAAgBF,CAAO,CAACE,QAAxB,CAGA,KAAKC,aAAL,GAGA,KAAKC,WAAL,GAGA,KAAKC,iBAAL,EACH,CAhCuF,CAoCxFN,CAAkB,CAACO,SAAnB,CAA6BJ,QAA7B,CAAwC,CAAxC,CAQAH,CAAkB,CAACO,SAAnB,CAA6BH,aAA7B,CAA6C,UAAW,CACpD,GAAII,CAAAA,CAAoB,CAAG,IAA3B,CAEApB,CAAC,CAACQ,CAAS,CAACC,cAAX,CAAD,CAA4BY,KAA5B,CAAkC,SAASC,CAAT,CAAY,CAC1CA,CAAC,CAACC,cAAF,GAD0C,GAItCC,CAAAA,CAAkB,CAAGxB,CAAC,CAAC,IAAD,CAJgB,CAMtCyB,CAAe,CAAGD,CAAkB,CAACE,MAAnB,EANoB,CAQtCC,CAAQ,CAAGF,CAAe,CAACG,IAAhB,CAAqB,UAArB,CAR2B,CAUtCC,CAAI,CAAGL,CAAkB,CAACM,IAAnB,CAAwB,KAAxB,CAV+B,CAY1C9B,CAAC,CAAC+B,IAAF,CAAO9B,CAAG,CAAC+B,UAAJ,CAAe,mBAAf,CAAoC,OAApC,CAA6CL,CAA7C,CAAP,EAA+DM,IAA/D,CAAoE,SAASC,CAAT,CAAqB,CACrF,MAAO9B,CAAAA,CAAY,CAAC+B,MAAb,CAAoB,CACvBC,KAAK,GADkB,CAEvBC,KAAK,CAAEH,CAFgB,CAGvBI,IAAI,CAAElC,CAAY,CAACmC,KAAb,CAAmBC,WAHF,CAApB,CAKV,CAND,EAMGC,IANH,CAMQ,SAASC,CAAT,CAAgB,CAEpBA,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBvC,CAAW,CAACwC,IAA/B,CAAqC,SAASvB,CAAT,CAAY,CAE7CA,CAAC,CAACC,cAAF,GAEAH,CAAoB,CAAC0B,kBAArB,CAAwCJ,CAAxC,CACH,CALD,EAQAA,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBvC,CAAW,CAAC0C,MAA/B,CAAuC,UAAW,CAE9CL,CAAK,CAACM,OAAN,EACH,CAHD,EAMAN,CAAK,CAACO,OAAN,CAAc7B,CAAoB,CAAC8B,OAArB,CAA6BrB,CAA7B,CAAd,EAGAa,CAAK,CAACS,IAAN,EACH,CA1BD,EA0BGC,IA1BH,CA0BQjD,CAAY,CAACkD,SA1BrB,CA2BH,CAvCD,CAwCH,CA3CD,CAmDAzC,CAAkB,CAACO,SAAnB,CAA6BF,WAA7B,CAA2C,UAAW,CAClD,GAAIG,CAAAA,CAAoB,CAAG,IAA3B,CAEApB,CAAC,CAACQ,CAAS,CAACG,OAAX,CAAD,CAAqBU,KAArB,CAA2B,SAASC,CAAT,CAAY,CACnCA,CAAC,CAACC,cAAF,GADmC,GAE/B+B,CAAAA,CAAW,CAAGtD,CAAC,CAAC,IAAD,CAFgB,CAG/ByB,CAAe,CAAG6B,CAAW,CAAC5B,MAAZ,EAHa,CAI/B6B,CAAO,CAAG,CACV,CACIC,GAAG,CAAE,SADT,CAEIC,SAAS,CAAE,OAFf,CADU,CAKV,CACID,GAAG,CAAE,gBADT,CAEIC,SAAS,CAAE,OAFf,CAGIC,KAAK,CAAE,CACHC,IAAI,CAAElC,CAAe,CAACG,IAAhB,CAAqB,UAArB,CADH,CAEHgC,MAAM,CAAEnC,CAAe,CAACG,IAAhB,CAAqB,YAArB,CAFL,CAGHiC,iBAAiB,CAAEpC,CAAe,CAACG,IAAhB,CAAqB,mBAArB,CAHhB,CAHX,CALU,CAJqB,CAoB/BkC,CAAkB,CAAG1D,CAAY,CAAC+B,MAAb,CAAoB,CACzCG,IAAI,CAAElC,CAAY,CAACmC,KAAb,CAAmBC,WADgB,CAApB,CApBU,CAwBnCxC,CAAC,CAAC+B,IAAF,CAAO9B,CAAG,CAAC8D,WAAJ,CAAgBR,CAAhB,CAAP,CAAiCO,CAAjC,EAAqDrB,IAArD,CAA0D,SAASuB,CAAT,CAAkBtB,CAAlB,CAAyB,IAC3EL,CAAAA,CAAK,CAAG2B,CAAO,CAAC,CAAD,CAD4D,CAE3EC,CAAc,CAAGD,CAAO,CAAC,CAAD,CAFmD,CAG/EtB,CAAK,CAACwB,QAAN,CAAe7B,CAAf,EACAK,CAAK,CAACO,OAAN,CAAcgB,CAAd,EACAvB,CAAK,CAACyB,iBAAN,CAAwB9B,CAAxB,EAGAK,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBvC,CAAW,CAACwC,IAA/B,CAAqC,UAAW,CAE5C,GAAIuB,CAAAA,CAAa,CAAG,CAChB,KAAQpE,CAAC,CAACsD,CAAD,CAAD,CAAexB,IAAf,CAAoB,KAApB,CADQ,CAApB,CAIAR,CAAC,CAACC,cAAF,GAEAH,CAAoB,CAACiD,qBAArB,CAA2C3B,CAA3C,CAAkD0B,CAAlD,CACH,CATD,EAYA1B,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBvC,CAAW,CAAC0C,MAA/B,CAAuC,UAAW,CAE9CL,CAAK,CAACM,OAAN,EACH,CAHD,EAMAN,CAAK,CAACS,IAAN,EACH,CA3BD,EA2BGC,IA3BH,CA2BQjD,CAAY,CAACkD,SA3BrB,CA4BH,CApDD,CAqDH,CAxDD,CAgEAzC,CAAkB,CAACO,SAAnB,CAA6BD,iBAA7B,CAAiD,UAAW,CACxDlB,CAAC,CAACQ,CAAS,CAACE,YAAX,CAAD,CAA0BW,KAA1B,CAAgC,SAASC,CAAT,CAAY,CACxCA,CAAC,CAACC,cAAF,GADwC,GAGpC+C,CAAAA,CAAa,CAAGtE,CAAC,CAAC,IAAD,CAHmB,CAIpCyB,CAAe,CAAG6C,CAAa,CAAC5C,MAAd,EAJkB,CAKpC6C,CAAO,CAAG,CACV,SAAY9C,CAAe,CAACG,IAAhB,CAAqB,UAArB,CADF,CAEV,WAAcH,CAAe,CAACG,IAAhB,CAAqB,YAArB,CAFJ,CAGV,kBAAqBH,CAAe,CAACG,IAAhB,CAAqB,mBAArB,CAHX,CAIV,OAAUH,CAAe,CAACG,IAAhB,CAAqB,QAArB,CAJA,CAKV,YAAeH,CAAe,CAAC+C,IAAhB,CAAqB,MAArB,EAA6B1C,IAA7B,CAAkC,OAAlC,CALL,CAMV,UAAaL,CAAe,CAACG,IAAhB,CAAqB,WAArB,CANH,CAOV,QAAWH,CAAe,CAACG,IAAhB,CAAqB,SAArB,CAPD,CAQV,aAAgBH,CAAe,CAACG,IAAhB,CAAqB,cAArB,CARN,CAL0B,CAyBpC6C,CAAa,CAAGH,CAAa,CAACI,IAAd,CAAmBlE,CAAS,CAACC,cAA7B,CAzBoB,CA0BxC,GAAIgE,CAAa,CAACE,MAAlB,CAA0B,CAEtBJ,CAAO,CAACK,aAAR,CAAwB5E,CAAC,CAAC,OAAD,CAAD,CAAW6E,MAAX,CAAkBJ,CAAa,CAACK,KAAd,EAAlB,EAAyCC,IAAzC,EAC3B,CA7BuC,GA+BpCC,CAAAA,CAAmB,CAAG/E,CAAG,CAAC8D,WAAJ,CAdZ,CACV,CACIP,GAAG,CAAE,cADT,CAEIC,SAAS,CAAE,OAFf,CADU,CAcY,CA/Bc,CAgCpCwB,CAAY,CAAG7E,CAAY,CAAC+B,MAAb,CAAoB,CAACC,KAAK,GAAN,CAAcE,IAAI,CAAElC,CAAY,CAACmC,KAAb,CAAmB2C,MAAvC,CAApB,CAhCqB,CAiCxClF,CAAC,CAAC+B,IAAF,CAAOiD,CAAP,CAA4BC,CAA5B,EAA0CxC,IAA1C,CAA+C,SAASc,CAAT,CAAkBb,CAAlB,CAAyB,CACpE,GAAIyC,CAAAA,CAAgB,CAAGpF,CAAQ,CAACqF,MAAT,CAAgB,0BAAhB,CAA4Cb,CAA5C,CAAvB,CACA7B,CAAK,CAACwB,QAAN,CAAeX,CAAO,CAAC,CAAD,CAAtB,EACAb,CAAK,CAACO,OAAN,CAAckC,CAAd,EAEA,GAAIV,CAAa,CAACE,MAAlB,CAA0B,CACtBjC,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmB,OAAnB,CAA4BpC,CAAS,CAACC,cAAtC,CAAsD,SAASa,CAAT,CAAY,CAC9DA,CAAC,CAACC,cAAF,GACAmB,CAAK,CAAC2C,IAAN,GAEArF,CAAC,CAACyE,CAAD,CAAD,CAAiBa,OAAjB,CAAyB,OAAzB,CACH,CALD,CAMH,CAED5C,CAAK,CAACS,IAAN,GAGAT,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBvC,CAAW,CAAC0C,MAA/B,CAAuC,UAAW,CAE9CL,CAAK,CAACM,OAAN,EACH,CAHD,CAIH,CArBD,EAqBGI,IArBH,CAqBQjD,CAAY,CAACkD,SArBrB,CAsBH,CAvDD,CAwDH,CAzDD,CAkEAzC,CAAkB,CAACO,SAAnB,CAA6B2B,kBAA7B,CAAkD,SAASJ,CAAT,CAAgB,IAC1DtB,CAAAA,CAAoB,CAAG,IADmC,CAE1DmE,CAAI,CAAG7C,CAAK,CAACC,OAAN,GAAgB6B,IAAhB,CAAqB,MAArB,CAFmD,CAK1D3C,CAAI,CAAG7B,CAAC,CAACuF,CAAD,CAAD,CAAQf,IAAR,CAAa,eAAb,EAA4BgB,GAA5B,EALmD,CAO1DC,CAAO,CAAG,CACVC,UAAU,CAAE,uCADF,CAEVC,IAAI,CAAE,CACFC,QAAQ,CAAEL,CAAI,CAACM,SAAL,EADR,CAFI,CAPgD,CAc9DtF,CAAI,CAACuF,IAAL,CAAU,CAACL,CAAD,CAAV,EAAqB,CAArB,EAAwBhD,IAAxB,CAA6B,SAASb,CAAT,CAAe,CACxC,GAAIA,CAAI,CAACmE,MAAT,CAAiB,CAEbrD,CAAK,CAAC2C,IAAN,GAGA,GAA+C,WAA3C,QAAOW,CAAAA,MAAM,CAACC,CAAP,CAASC,sBAApB,CAA4D,CACxDF,MAAM,CAACC,CAAP,CAASC,sBAAT,CAAgCC,sBAAhC,EACH,CACDH,MAAM,CAACI,QAAP,CAAgBC,MAAhB,EACH,CATD,IASO,CAEH,GAAIC,CAAAA,CAAQ,CAAGC,IAAI,CAACC,SAAL,CAAejB,CAAI,CAACM,SAAL,EAAf,CAAf,CACAnD,CAAK,CAACO,OAAN,CAAc7B,CAAoB,CAAC8B,OAArB,CAA6BrB,CAA7B,CAAmCyE,CAAnC,CAAd,CACH,CACJ,CAfD,EAeGlD,IAfH,CAeQjD,CAAY,CAACkD,SAfrB,CAgBH,CA9BD,CAwCAzC,CAAkB,CAACO,SAAnB,CAA6BkD,qBAA7B,CAAqD,SAAS3B,CAAT,CAAgB0B,CAAhB,CAA+B,CAMhF7D,CAAI,CAACuF,IAAL,CAAU,CALI,CACVJ,UAAU,CAAE,mCADF,CAEVC,IAAI,CAAEvB,CAFI,CAKJ,CAAV,EAAqB,CAArB,EAAwB3B,IAAxB,CAA6B,SAASb,CAAT,CAAe,CACxC,GAAIA,CAAI,CAACmE,MAAT,CAAiB,CAEbrD,CAAK,CAAC2C,IAAN,GAGA,GAA+C,WAA3C,QAAOW,CAAAA,MAAM,CAACC,CAAP,CAASC,sBAApB,CAA4D,CACxDF,MAAM,CAACC,CAAP,CAASC,sBAAT,CAAgCC,sBAAhC,EACH,CACDH,MAAM,CAACI,QAAP,CAAgBC,MAAhB,EACH,CATD,IASO,CAEHlG,CAAY,CAACsG,KAAb,CAAmB7E,CAAI,CAAC8E,MAAL,CAAY,CAAZ,EAAelD,GAAlC,CAAuC5B,CAAI,CAAC8E,MAAL,CAAY,CAAZ,EAAeC,OAAtD,CACH,CACJ,CAdD,EAcGvD,IAdH,CAcQjD,CAAY,CAACkD,SAdrB,CAeH,CArBD,CAgCAzC,CAAkB,CAACO,SAAnB,CAA6B+B,OAA7B,CAAuC,SAASrB,CAAT,CAAeyE,CAAf,CAAyB,CAC5D,GAAIM,CAAAA,CAAM,CAAG,CACT,KAAQ/E,CADC,CAAb,CAGA,GAAwB,WAApB,QAAOyE,CAAAA,CAAX,CAAqC,CACjCM,CAAM,CAAChB,QAAP,CAAkBU,CACrB,CACD,MAAOhG,CAAAA,CAAQ,CAACuG,YAAT,CAAsB,OAAtB,CAA+B,qBAA/B,CAAsD,KAAK/F,SAA3D,CAAsE8F,CAAtE,EAA8ExD,IAA9E,CAAmFjD,CAAY,CAACkD,SAAhG,CACV,CARD,CAUA,MAAoD,CAShDyD,IAAI,CAAE,cAASC,CAAT,CAAiB,CAClB,GAAInG,CAAAA,CAAJ,CAAuBmG,CAAvB,CACJ,CAX+C,CAavD,CA1UC,CAAN","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 * AMD module for the user enrolment status field in the course participants page.\n *\n * @module     core_user/status_field\n * @copyright  2017 Jun Pataleta\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['core/templates',\n        'jquery',\n        'core/str',\n        'core/config',\n        'core/notification',\n        'core/modal_factory',\n        'core/modal_events',\n        'core/fragment',\n        'core/ajax'\n    ],\n    function(Template, $, Str, Config, Notification, ModalFactory, ModalEvents, Fragment, Ajax) {\n\n        /**\n         * Action selectors.\n         *\n         * @access private\n         * @type {{EDIT_ENROLMENT: string, SHOW_DETAILS: string, UNENROL: string}}\n         */\n        var SELECTORS = {\n            EDIT_ENROLMENT: '[data-action=\"editenrolment\"]',\n            SHOW_DETAILS: '[data-action=\"showdetails\"]',\n            UNENROL: '[data-action=\"unenrol\"]'\n        };\n\n        /**\n         * Constructor\n         *\n         * @param {Object} options Object containing options. The only valid option at this time is contextid.\n         * Each call to templates.render gets it's own instance of this class.\n         */\n        var StatusFieldActions = function(options) {\n            this.contextid = options.contextid;\n            this.courseid = options.courseid;\n\n            // Bind click event to editenrol buttons.\n            this.bindEditEnrol();\n\n            // Bind click event to unenrol buttons.\n            this.bindUnenrol();\n\n            // Bind click event to status details buttons.\n            this.bindStatusDetails();\n        };\n        // Class variables and functions.\n\n        /** @var {number} courseid The course ID. */\n        StatusFieldActions.prototype.courseid = 0;\n\n        /**\n         * Private method\n         *\n         * @method initModal\n         * @private\n         */\n        StatusFieldActions.prototype.bindEditEnrol = function() {\n            var statusFieldInstsance = this;\n\n            $(SELECTORS.EDIT_ENROLMENT).click(function(e) {\n                e.preventDefault();\n\n                // The particular edit button that was clicked.\n                var clickedEditTrigger = $(this);\n                // Get the parent container (it contains the data attributes associated with the status field).\n                var parentContainer = clickedEditTrigger.parent();\n                // Get the name of the user whose enrolment status is being edited.\n                var fullname = parentContainer.data('fullname');\n                // Get the user enrolment ID.\n                var ueid = clickedEditTrigger.attr('rel');\n\n                $.when(Str.get_string('edituserenrolment', 'enrol', fullname)).then(function(modalTitle) {\n                    return ModalFactory.create({\n                        large: true,\n                        title: modalTitle,\n                        type: ModalFactory.types.SAVE_CANCEL\n                    });\n                }).done(function(modal) {\n                    // Handle save event.\n                    modal.getRoot().on(ModalEvents.save, function(e) {\n                        // Don't close the modal yet.\n                        e.preventDefault();\n                        // Submit form data.\n                        statusFieldInstsance.submitEditFormAjax(modal);\n                    });\n\n                    // Handle hidden event.\n                    modal.getRoot().on(ModalEvents.hidden, function() {\n                        // Destroy when hidden.\n                        modal.destroy();\n                    });\n\n                    // Set the modal body.\n                    modal.setBody(statusFieldInstsance.getBody(ueid));\n\n                    // Show the modal!\n                    modal.show();\n                }).fail(Notification.exception);\n            });\n        };\n\n        /**\n         * Private method\n         *\n         * @method bindUnenrol\n         * @private\n         */\n        StatusFieldActions.prototype.bindUnenrol = function() {\n            var statusFieldInstsance = this;\n\n            $(SELECTORS.UNENROL).click(function(e) {\n                e.preventDefault();\n                var unenrolLink = $(this);\n                var parentContainer = unenrolLink.parent();\n                var strings = [\n                    {\n                        key: 'unenrol',\n                        component: 'enrol'\n                    },\n                    {\n                        key: 'unenrolconfirm',\n                        component: 'enrol',\n                        param: {\n                            user: parentContainer.data('fullname'),\n                            course: parentContainer.data('coursename'),\n                            enrolinstancename: parentContainer.data('enrolinstancename')\n                        }\n                    }\n                ];\n\n                var deleteModalPromise = ModalFactory.create({\n                    type: ModalFactory.types.SAVE_CANCEL\n                });\n\n                $.when(Str.get_strings(strings), deleteModalPromise).done(function(results, modal) {\n                    var title = results[0];\n                    var confirmMessage = results[1];\n                    modal.setTitle(title);\n                    modal.setBody(confirmMessage);\n                    modal.setSaveButtonText(title);\n\n                    // Handle confirm event.\n                    modal.getRoot().on(ModalEvents.save, function() {\n                        // Build params.\n                        var unenrolParams = {\n                            'ueid': $(unenrolLink).attr('rel')\n                        };\n                        // Don't close the modal yet.\n                        e.preventDefault();\n                        // Submit data.\n                        statusFieldInstsance.submitUnenrolFormAjax(modal, unenrolParams);\n                    });\n\n                    // Handle hidden event.\n                    modal.getRoot().on(ModalEvents.hidden, function() {\n                        // Destroy when hidden.\n                        modal.destroy();\n                    });\n\n                    // Display the delete confirmation modal.\n                    modal.show();\n                }).fail(Notification.exception);\n            });\n        };\n\n        /**\n         * Private method\n         *\n         * @method bindStatusDetails\n         * @private\n         */\n        StatusFieldActions.prototype.bindStatusDetails = function() {\n            $(SELECTORS.SHOW_DETAILS).click(function(e) {\n                e.preventDefault();\n\n                var detailsButton = $(this);\n                var parentContainer = detailsButton.parent();\n                var context = {\n                    \"fullname\": parentContainer.data('fullname'),\n                    \"coursename\": parentContainer.data('coursename'),\n                    \"enrolinstancename\": parentContainer.data('enrolinstancename'),\n                    \"status\": parentContainer.data('status'),\n                    \"statusclass\": parentContainer.find('span').attr('class'),\n                    \"timestart\": parentContainer.data('timestart'),\n                    \"timeend\": parentContainer.data('timeend'),\n                    \"timeenrolled\": parentContainer.data('timeenrolled')\n                };\n\n                // Get default string for the modal and modal type.\n                var strings = [\n                    {\n                        key: 'enroldetails',\n                        component: 'enrol'\n                    }\n                ];\n\n                // Find the edit enrolment link.\n                var editEnrolLink = detailsButton.next(SELECTORS.EDIT_ENROLMENT);\n                if (editEnrolLink.length) {\n                    // If there's an edit enrolment link for this user, clone it into the context for the modal.\n                    context.editenrollink = $('<div>').append(editEnrolLink.clone()).html();\n                }\n\n                var modalStringsPromise = Str.get_strings(strings);\n                var modalPromise = ModalFactory.create({large: true, type: ModalFactory.types.CANCEL});\n                $.when(modalStringsPromise, modalPromise).done(function(strings, modal) {\n                    var modalBodyPromise = Template.render('core_user/status_details', context);\n                    modal.setTitle(strings[0]);\n                    modal.setBody(modalBodyPromise);\n\n                    if (editEnrolLink.length) {\n                        modal.getRoot().on('click', SELECTORS.EDIT_ENROLMENT, function(e) {\n                            e.preventDefault();\n                            modal.hide();\n                            // Trigger click event for the edit enrolment link to show the edit enrolment modal.\n                            $(editEnrolLink).trigger('click');\n                        });\n                    }\n\n                    modal.show();\n\n                    // Handle hidden event.\n                    modal.getRoot().on(ModalEvents.hidden, function() {\n                        // Destroy when hidden.\n                        modal.destroy();\n                    });\n                }).fail(Notification.exception);\n            });\n        };\n\n        /**\n         * Private method\n         *\n         * @method submitEditFormAjax\n         * @param {Object} modal The the AMD modal object containing the form.\n         * @private\n         */\n        StatusFieldActions.prototype.submitEditFormAjax = function(modal) {\n            var statusFieldInstsance = this;\n            var form = modal.getRoot().find('form');\n\n            // User enrolment ID.\n            var ueid = $(form).find('[name=\"ue\"]').val();\n\n            var request = {\n                methodname: 'core_enrol_submit_user_enrolment_form',\n                args: {\n                    formdata: form.serialize()\n                }\n            };\n\n            Ajax.call([request])[0].done(function(data) {\n                if (data.result) {\n                    // Dismiss the modal.\n                    modal.hide();\n\n                    // Reload the page, don't show changed data warnings.\n                    if (typeof window.M.core_formchangechecker !== \"undefined\") {\n                        window.M.core_formchangechecker.reset_form_dirty_state();\n                    }\n                    window.location.reload();\n                } else {\n                    // Serialise the form data and reload the form fragment to show validation errors.\n                    var formData = JSON.stringify(form.serialize());\n                    modal.setBody(statusFieldInstsance.getBody(ueid, formData));\n                }\n            }).fail(Notification.exception);\n        };\n\n        /**\n         * Private method\n         *\n         * @method submitUnenrolFormAjax\n         * @param {Object} modal The the AMD modal object containing the form.\n         * @param {Object} unenrolParams The unenrol parameters.\n         * @private\n         */\n        StatusFieldActions.prototype.submitUnenrolFormAjax = function(modal, unenrolParams) {\n            var request = {\n                methodname: 'core_enrol_unenrol_user_enrolment',\n                args: unenrolParams\n            };\n\n            Ajax.call([request])[0].done(function(data) {\n                if (data.result) {\n                    // Dismiss the modal.\n                    modal.hide();\n\n                    // Reload the page, don't show changed data warnings.\n                    if (typeof window.M.core_formchangechecker !== \"undefined\") {\n                        window.M.core_formchangechecker.reset_form_dirty_state();\n                    }\n                    window.location.reload();\n                } else {\n                    // Display an alert containing the error message\n                    Notification.alert(data.errors[0].key, data.errors[0].message);\n                }\n            }).fail(Notification.exception);\n        };\n\n        /**\n         * Private method\n         *\n         * @method getBody\n         * @private\n         * @param {Number} ueid The user enrolment ID associated with the user.\n         * @param {string} formData Serialized string of the edit enrolment form data.\n         * @return {Promise}\n         */\n        StatusFieldActions.prototype.getBody = function(ueid, formData) {\n            var params = {\n                'ueid': ueid\n            };\n            if (typeof formData !== 'undefined') {\n                params.formdata = formData;\n            }\n            return Fragment.loadFragment('enrol', 'user_enrolment_form', this.contextid, params).fail(Notification.exception);\n        };\n\n        return /** @alias module:core_user/editenrolment */ {\n            // Public variables and functions.\n            /**\n             * Every call to init creates a new instance of the class with it's own event listeners etc.\n             *\n             * @method init\n             * @public\n             * @param {object} config - config variables for the module.\n             */\n            init: function(config) {\n                (new StatusFieldActions(config));\n            }\n        };\n    });\n"],"file":"status_field.min.js"}