Your IP : 192.168.165.1


Current Path : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/
Upload File :
Current File : C:/xampp/htdocs/moodle/admin/tool/lp/amd/build/user_evidence_actions.min.js.map

{"version":3,"sources":["../src/user_evidence_actions.js"],"names":["define","$","templates","ajax","notification","str","Menubar","PickerUserPlans","UserEvidenceActions","type","_type","_region","_evidenceNode","_template","_contextMethod","TypeError","prototype","_getContextArgs","evidenceData","self","args","id","userid","_renderView","context","render","then","newhtml","newjs","replaceNode","_callAndRefresh","calls","push","methodname","when","apply","call","arguments","length","fail","exception","_doDelete","deleteEvidence","requests","done","evidence","get_strings","key","component","param","name","strings","confirm","_deleteEvidenceHandler","e","preventDefault","data","_findEvidenceData","target","_doCreateUserEvidenceCompetency","competencyIds","each","index","competencyId","userevidenceid","competencyid","createUserEvidenceCompetency","picker","on","requestReview","display","_createUserEvidenceCompetencyHandler","_doDeleteUserEvidenceCompetency","deleteUserEvidenceCompetency","_deleteUserEvidenceCompetencyHandler","currentTarget","_doReviewUserEvidenceCompetencies","reviewUserEvidenceCompetencies","_reviewUserEvidenceCompetenciesHandler","node","parent","parentsUntil","Error","enhanceMenubar","selector","enhance","bind","registerEvents","wrapper","find","click"],"mappings":"AAuBAA,OAAM,iCAAC,CAAC,QAAD,CACC,gBADD,CAEC,WAFD,CAGC,mBAHD,CAIC,UAJD,CAKC,iBALD,CAMC,qCAND,CAAD,CAOE,SAASC,CAAT,CAAYC,CAAZ,CAAuBC,CAAvB,CAA6BC,CAA7B,CAA2CC,CAA3C,CAAgDC,CAAhD,CAAyDC,CAAzD,CAA0E,CAS9E,GAAIC,CAAAA,CAAmB,CAAG,SAASC,CAAT,CAAe,CACrC,KAAKC,KAAL,CAAaD,CAAb,CAEA,GAAa,UAAT,GAAAA,CAAJ,CAAyB,CAErB,KAAKE,OAAL,CAAe,sCAAf,CACA,KAAKC,aAAL,CAAqB,sCAArB,CACA,KAAKC,SAAL,CAAiB,4BAAjB,CACA,KAAKC,cAAL,CAAsB,qCAEzB,CAPD,IAOO,IAAa,MAAT,GAAAL,CAAJ,CAAqB,CAExB,KAAKE,OAAL,CAAe,sCAAf,CACA,KAAKC,aAAL,CAAqB,sCAArB,CACA,KAAKC,SAAL,CAAiB,iCAAjB,CACA,KAAKC,cAAL,CAAsB,0CAEzB,CAPM,IAOA,CACH,KAAM,IAAIC,CAAAA,SAAJ,CAAc,kBAAd,CACT,CACJ,CApBD,CAuBAP,CAAmB,CAACQ,SAApB,CAA8BF,cAA9B,CAA+C,IAA/C,CAEAN,CAAmB,CAACQ,SAApB,CAA8BJ,aAA9B,CAA8C,IAA9C,CAEAJ,CAAmB,CAACQ,SAApB,CAA8BL,OAA9B,CAAwC,IAAxC,CAEAH,CAAmB,CAACQ,SAApB,CAA8BH,SAA9B,CAA0C,IAA1C,CAEAL,CAAmB,CAACQ,SAApB,CAA8BN,KAA9B,CAAsC,IAAtC,CAQAF,CAAmB,CAACQ,SAApB,CAA8BC,eAA9B,CAAgD,SAASC,CAAT,CAAuB,CACnE,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIC,CAAI,CAAG,EADX,CAGA,GAAmB,UAAf,GAAAD,CAAI,CAACT,KAAT,CAA+B,CAC3BU,CAAI,CAAG,CACHC,EAAE,CAAEH,CAAY,CAACG,EADd,CAIV,CALD,IAKO,IAAmB,MAAf,GAAAF,CAAI,CAACT,KAAT,CAA2B,CAC9BU,CAAI,CAAG,CACHE,MAAM,CAAEJ,CAAY,CAACI,MADlB,CAGV,CAED,MAAOF,CAAAA,CACV,CAhBD,CAwBAZ,CAAmB,CAACQ,SAApB,CAA8BO,WAA9B,CAA4C,SAASC,CAAT,CAAkB,CAC1D,GAAIL,CAAAA,CAAI,CAAG,IAAX,CACA,MAAOjB,CAAAA,CAAS,CAACuB,MAAV,CAAiBN,CAAI,CAACN,SAAtB,CAAiCW,CAAjC,EACFE,IADE,CACG,SAASC,CAAT,CAAkBC,CAAlB,CAAyB,CAC3B1B,CAAS,CAAC2B,WAAV,CAAsB5B,CAAC,CAACkB,CAAI,CAACR,OAAN,CAAvB,CAAuCgB,CAAvC,CAAgDC,CAAhD,CAEH,CAJE,CAKV,CAPD,CAgBApB,CAAmB,CAACQ,SAApB,CAA8Bc,eAA9B,CAAgD,SAASC,CAAT,CAAgBb,CAAhB,CAA8B,CAC1E,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACAY,CAAK,CAACC,IAAN,CAAW,CACPC,UAAU,CAAEd,CAAI,CAACL,cADV,CAEPM,IAAI,CAAED,CAAI,CAACF,eAAL,CAAqBC,CAArB,CAFC,CAAX,EAMA,MAAOjB,CAAAA,CAAC,CAACiC,IAAF,CAAOC,KAAP,CAAalC,CAAC,CAACiC,IAAf,CAAqB/B,CAAI,CAACiC,IAAL,CAAUL,CAAV,CAArB,EACFL,IADE,CACG,UAAW,CACb,MAAOP,CAAAA,CAAI,CAACI,WAAL,CAAiBc,SAAS,CAACA,SAAS,CAACC,MAAV,CAAmB,CAApB,CAA1B,CACV,CAHE,EAIFC,IAJE,CAIGnC,CAAY,CAACoC,SAJhB,CAKV,CAbD,CAoBAhC,CAAmB,CAACQ,SAApB,CAA8ByB,SAA9B,CAA0C,SAASvB,CAAT,CAAuB,CAC7D,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIY,CAAK,CAAG,CAAC,CACLE,UAAU,CAAE,sCADP,CAELb,IAAI,CAAE,CAACC,EAAE,CAAEH,CAAY,CAACG,EAAlB,CAFD,CAAD,CADZ,CAKAF,CAAI,CAACW,eAAL,CAAqBC,CAArB,CAA4Bb,CAA5B,CACH,CAPD,CAcAV,CAAmB,CAACQ,SAApB,CAA8B0B,cAA9B,CAA+C,SAASxB,CAAT,CAAuB,CAClE,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIwB,CADJ,CAGAA,CAAQ,CAAGxC,CAAI,CAACiC,IAAL,CAAU,CAAC,CAClBH,UAAU,CAAE,oCADM,CAElBb,IAAI,CAAE,CAACC,EAAE,CAAEH,CAAY,CAACG,EAAlB,CAFY,CAAD,CAAV,CAAX,CAKAsB,CAAQ,CAAC,CAAD,CAAR,CAAYC,IAAZ,CAAiB,SAASC,CAAT,CAAmB,CAChCxC,CAAG,CAACyC,WAAJ,CAAgB,CACZ,CAACC,GAAG,CAAE,SAAN,CAAiBC,SAAS,CAAE,QAA5B,CADY,CAEZ,CAACD,GAAG,CAAE,oBAAN,CAA4BC,SAAS,CAAE,SAAvC,CAAkDC,KAAK,CAAEJ,CAAQ,CAACK,IAAlE,CAFY,CAGZ,CAACH,GAAG,CAAE,QAAN,CAAgBC,SAAS,CAAE,QAA3B,CAHY,CAIZ,CAACD,GAAG,CAAE,QAAN,CAAgBC,SAAS,CAAE,QAA3B,CAJY,CAAhB,EAKGJ,IALH,CAKQ,SAASO,CAAT,CAAkB,CACtB/C,CAAY,CAACgD,OAAb,CACID,CAAO,CAAC,CAAD,CADX,CAEIA,CAAO,CAAC,CAAD,CAFX,CAGIA,CAAO,CAAC,CAAD,CAHX,CAIIA,CAAO,CAAC,CAAD,CAJX,CAKI,UAAW,CACPhC,CAAI,CAACsB,SAAL,CAAevB,CAAf,CACH,CAPL,CASH,CAfD,EAeGqB,IAfH,CAeQnC,CAAY,CAACoC,SAfrB,CAgBH,CAjBD,EAiBGD,IAjBH,CAiBQnC,CAAY,CAACoC,SAjBrB,CAmBH,CA5BD,CAmCAhC,CAAmB,CAACQ,SAApB,CAA8BqC,sBAA9B,CAAuD,SAASC,CAAT,CAAY,CAC/DA,CAAC,CAACC,cAAF,GACA,GAAIC,CAAAA,CAAI,CAAG,KAAKC,iBAAL,CAAuBxD,CAAC,CAACqD,CAAC,CAACI,MAAH,CAAxB,CAAX,CACA,KAAKhB,cAAL,CAAoBc,CAApB,CACH,CAJD,CAaAhD,CAAmB,CAACQ,SAApB,CAA8B2C,+BAA9B,CAAgE,SAASzC,CAAT,CAAuB0C,CAAvB,CAAsC,CAClG,GAAIzC,CAAAA,CAAI,CAAG,IAAX,CACIY,CAAK,CAAG,EADZ,CAGA9B,CAAC,CAAC4D,IAAF,CAAOD,CAAP,CAAsB,SAASE,CAAT,CAAgBC,CAAhB,CAA8B,CAChDhC,CAAK,CAACC,IAAN,CAAW,CACPC,UAAU,CAAE,iDADL,CAEPb,IAAI,CAAE,CACF4C,cAAc,CAAE9C,CAAY,CAACG,EAD3B,CAEF4C,YAAY,CAAEF,CAFZ,CAFC,CAAX,CAOH,CARD,EAUA5C,CAAI,CAACW,eAAL,CAAqBC,CAArB,CAA4Bb,CAA5B,CACH,CAfD,CAsBAV,CAAmB,CAACQ,SAApB,CAA8BkD,4BAA9B,CAA6D,SAAShD,CAAT,CAAuB,CAChF,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIgD,CAAM,CAAG,GAAI5D,CAAAA,CAAJ,CAAoBW,CAAY,CAACI,MAAjC,CADb,CAGA6C,CAAM,CAACC,EAAP,CAAU,MAAV,CAAkB,SAASd,CAAT,CAAYE,CAAZ,CAAkB,CAChC,GAAII,CAAAA,CAAa,CAAGJ,CAAI,CAACI,aAAzB,CACAzC,CAAI,CAACwC,+BAAL,CAAqCzC,CAArC,CAAmD0C,CAAnD,CAAkEJ,CAAI,CAACa,aAAvE,CACH,CAHD,EAKAF,CAAM,CAACG,OAAP,EACH,CAVD,CAiBA9D,CAAmB,CAACQ,SAApB,CAA8BuD,oCAA9B,CAAqE,SAASjB,CAAT,CAAY,CAC7EA,CAAC,CAACC,cAAF,GACA,GAAIC,CAAAA,CAAI,CAAG,KAAKC,iBAAL,CAAuBxD,CAAC,CAACqD,CAAC,CAACI,MAAH,CAAxB,CAAX,CACA,KAAKQ,4BAAL,CAAkCV,CAAlC,CACH,CAJD,CAYAhD,CAAmB,CAACQ,SAApB,CAA8BwD,+BAA9B,CAAgE,SAAStD,CAAT,CAAuB6C,CAAvB,CAAqC,CACjG,GAAI5C,CAAAA,CAAI,CAAG,IAAX,CACIY,CAAK,CAAG,EADZ,CAGAA,CAAK,CAACC,IAAN,CAAW,CACPC,UAAU,CAAE,iDADL,CAEPb,IAAI,CAAE,CACF4C,cAAc,CAAE9C,CAAY,CAACG,EAD3B,CAEF4C,YAAY,CAAEF,CAFZ,CAFC,CAAX,EAQA5C,CAAI,CAACW,eAAL,CAAqBC,CAArB,CAA4Bb,CAA5B,CACH,CAbD,CAqBAV,CAAmB,CAACQ,SAApB,CAA8ByD,4BAA9B,CAA6D,SAASvD,CAAT,CAAuB6C,CAAvB,CAAqC,CAC9F,KAAKS,+BAAL,CAAqCtD,CAArC,CAAmD6C,CAAnD,CACH,CAFD,CASAvD,CAAmB,CAACQ,SAApB,CAA8B0D,oCAA9B,CAAqE,SAASpB,CAAT,CAAY,CAC7E,GAAIE,CAAAA,CAAI,CAAG,KAAKC,iBAAL,CAAuBxD,CAAC,CAACqD,CAAC,CAACqB,aAAH,CAAxB,CAAX,CACIZ,CAAY,CAAG9D,CAAC,CAACqD,CAAC,CAACqB,aAAH,CAAD,CAAmBnB,IAAnB,CAAwB,IAAxB,CADnB,CAEAF,CAAC,CAACC,cAAF,GACA,KAAKkB,4BAAL,CAAkCjB,CAAlC,CAAwCO,CAAxC,CACH,CALD,CAYAvD,CAAmB,CAACQ,SAApB,CAA8B4D,iCAA9B,CAAkE,SAAS1D,CAAT,CAAuB,CACrF,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIY,CAAK,CAAG,CAAC,CACLE,UAAU,CAAE,qEADP,CAELb,IAAI,CAAE,CAACC,EAAE,CAAEH,CAAY,CAACG,EAAlB,CAFD,CAAD,CADZ,CAKAF,CAAI,CAACW,eAAL,CAAqBC,CAArB,CAA4Bb,CAA5B,CACH,CAPD,CAcAV,CAAmB,CAACQ,SAApB,CAA8B6D,8BAA9B,CAA+D,SAAS3D,CAAT,CAAuB,CAClF,GAAIC,CAAAA,CAAI,CAAG,IAAX,CACIwB,CADJ,CAGAA,CAAQ,CAAGxC,CAAI,CAACiC,IAAL,CAAU,CAAC,CAClBH,UAAU,CAAE,oCADM,CAElBb,IAAI,CAAE,CAACC,EAAE,CAAEH,CAAY,CAACG,EAAlB,CAFY,CAAD,CAAV,CAAX,CAKAsB,CAAQ,CAAC,CAAD,CAAR,CAAYC,IAAZ,CAAiB,SAASC,CAAT,CAAmB,CAChCxC,CAAG,CAACyC,WAAJ,CAAgB,CACZ,CAACC,GAAG,CAAE,SAAN,CAAiBC,SAAS,CAAE,QAA5B,CADY,CAEZ,CAACD,GAAG,CAAE,6BAAN,CAAqCC,SAAS,CAAE,SAAhD,CAA2DC,KAAK,CAAEJ,CAAQ,CAACK,IAA3E,CAFY,CAGZ,CAACH,GAAG,CAAE,SAAN,CAAiBC,SAAS,CAAE,QAA5B,CAHY,CAIZ,CAACD,GAAG,CAAE,QAAN,CAAgBC,SAAS,CAAE,QAA3B,CAJY,CAAhB,EAKGJ,IALH,CAKQ,SAASO,CAAT,CAAkB,CACtB/C,CAAY,CAACgD,OAAb,CACID,CAAO,CAAC,CAAD,CADX,CAEIA,CAAO,CAAC,CAAD,CAFX,CAGIA,CAAO,CAAC,CAAD,CAHX,CAIIA,CAAO,CAAC,CAAD,CAJX,CAKI,UAAW,CACPhC,CAAI,CAACyD,iCAAL,CAAuC1D,CAAvC,CACH,CAPL,CASH,CAfD,EAeGqB,IAfH,CAeQnC,CAAY,CAACoC,SAfrB,CAgBH,CAjBD,EAiBGD,IAjBH,CAiBQnC,CAAY,CAACoC,SAjBrB,CAmBH,CA5BD,CAmCAhC,CAAmB,CAACQ,SAApB,CAA8B8D,sCAA9B,CAAuE,SAASxB,CAAT,CAAY,CAC/EA,CAAC,CAACC,cAAF,GACA,GAAIC,CAAAA,CAAI,CAAG,KAAKC,iBAAL,CAAuBxD,CAAC,CAACqD,CAAC,CAACI,MAAH,CAAxB,CAAX,CACA,KAAKmB,8BAAL,CAAoCrB,CAApC,CACH,CAJD,CAYAhD,CAAmB,CAACQ,SAApB,CAA8ByC,iBAA9B,CAAkD,SAASsB,CAAT,CAAe,CAC7D,GAAIC,CAAAA,CAAM,CAAGD,CAAI,CAACE,YAAL,CAAkBhF,CAAC,CAAC,KAAKU,OAAN,CAAD,CAAgBqE,MAAhB,EAAlB,CAA4C,KAAKpE,aAAjD,CAAb,CACI4C,CADJ,CAGA,GAAqB,CAAjB,EAAAwB,CAAM,CAAC1C,MAAX,CAAwB,CACpB,KAAM,IAAI4C,CAAAA,KAAJ,CAAU,oCAAV,CACT,CAED1B,CAAI,CAAGwB,CAAM,CAACxB,IAAP,EAAP,CACA,GAAoB,WAAhB,QAAOA,CAAAA,CAAP,EAAkD,WAAnB,QAAOA,CAAAA,CAAI,CAACnC,EAA/C,CAAmE,CAC/D,KAAM,IAAI6D,CAAAA,KAAJ,CAAU,mCAAV,CACT,CAED,MAAO1B,CAAAA,CACV,CAdD,CAqBAhD,CAAmB,CAACQ,SAApB,CAA8BmE,cAA9B,CAA+C,SAASC,CAAT,CAAmB,CAC9D,GAAIjE,CAAAA,CAAI,CAAG,IAAX,CACAb,CAAO,CAAC+E,OAAR,CAAgBD,CAAhB,CAA0B,CACtB,uCAAwCjE,CAAI,CAACkC,sBAAL,CAA4BiC,IAA5B,CAAiCnE,CAAjC,CADlB,CAEtB,kCAAmCA,CAAI,CAACoD,oCAAL,CAA0Ce,IAA1C,CAA+CnE,CAA/C,CAFb,CAGtB,2CAA4CA,CAAI,CAAC2D,sCAAL,CAA4CQ,IAA5C,CAAiDnE,CAAjD,CAHtB,CAA1B,CAKH,CAPD,CAeAX,CAAmB,CAACQ,SAApB,CAA8BuE,cAA9B,CAA+C,UAAW,CACtD,GAAIC,CAAAA,CAAO,CAAGvF,CAAC,CAAC,KAAKU,OAAN,CAAf,CACIQ,CAAI,CAAG,IADX,CAGAqE,CAAO,CAACC,IAAR,CAAa,wCAAb,EAAqDC,KAArD,CAA2DvE,CAAI,CAACkC,sBAAL,CAA4BiC,IAA5B,CAAiCnE,CAAjC,CAA3D,EACAqE,CAAO,CAACC,IAAR,CAAa,mCAAb,EAAgDC,KAAhD,CAAsDvE,CAAI,CAACoD,oCAAL,CAA0Ce,IAA1C,CAA+CnE,CAA/C,CAAtD,EACAqE,CAAO,CAACC,IAAR,CAAa,0CAAb,EAAuDC,KAAvD,CAA6DvE,CAAI,CAACuD,oCAAL,CAA0CY,IAA1C,CAA+CnE,CAA/C,CAA7D,EACAqE,CAAO,CAACC,IAAR,CAAa,4CAAb,EAAyDC,KAAzD,CAA+DvE,CAAI,CAAC2D,sCAAL,CAA4CQ,IAA5C,CAAiDnE,CAAjD,CAA/D,CACH,CARD,CAUA,MAA0DX,CAAAA,CAC7D,CA1XK,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 * User evidence actions.\n *\n * @module     tool_lp/user_evidence_actions\n * @package    tool_lp\n * @copyright  2015 Frédéric Massart - FMCorz.net\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery',\n        'core/templates',\n        'core/ajax',\n        'core/notification',\n        'core/str',\n        'tool_lp/menubar',\n        'tool_lp/competencypicker_user_plans'],\n        function($, templates, ajax, notification, str, Menubar, PickerUserPlans) {\n\n    /**\n     * UserEvidenceActions class.\n     *\n     * Note that presently this cannot be instantiated more than once per page.\n     *\n     * @param {String} type The type of page we're in.\n     */\n    var UserEvidenceActions = function(type) {\n        this._type = type;\n\n        if (type === 'evidence') {\n            // This is the page to view one evidence.\n            this._region = '[data-region=\"user-evidence-page\"]';\n            this._evidenceNode = '[data-region=\"user-evidence-page\"]';\n            this._template = 'tool_lp/user_evidence_page';\n            this._contextMethod = 'tool_lp_data_for_user_evidence_page';\n\n        } else if (type === 'list') {\n            // This is the page to view a list of evidence.\n            this._region = '[data-region=\"user-evidence-list\"]';\n            this._evidenceNode = '[data-region=\"user-evidence-node\"]';\n            this._template = 'tool_lp/user_evidence_list_page';\n            this._contextMethod = 'tool_lp_data_for_user_evidence_list_page';\n\n        } else {\n            throw new TypeError('Unexpected type.');\n        }\n    };\n\n    /** @type {String} Ajax method to fetch the page data from. */\n    UserEvidenceActions.prototype._contextMethod = null;\n    /** @type {String} Selector to find the node describing the evidence. */\n    UserEvidenceActions.prototype._evidenceNode = null;\n    /** @type {String} Selector mapping to the region to update. Usually similar to wrapper. */\n    UserEvidenceActions.prototype._region = null;\n    /** @type {String} Name of the template used to render the region. */\n    UserEvidenceActions.prototype._template = null;\n    /** @type {String} Type of page/region we're in. */\n    UserEvidenceActions.prototype._type = null;\n\n    /**\n     * Resolve the arguments to refresh the region.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     * @return {Object} List of arguments.\n     */\n    UserEvidenceActions.prototype._getContextArgs = function(evidenceData) {\n        var self = this,\n            args = {};\n\n        if (self._type === 'evidence') {\n            args = {\n                id: evidenceData.id\n            };\n\n        } else if (self._type === 'list') {\n            args = {\n                userid: evidenceData.userid\n            };\n        }\n\n        return args;\n    };\n\n    /**\n     * Callback to render the region template.\n     *\n     * @param {Object} context The context for the template.\n     * @return {Promise}\n     */\n    UserEvidenceActions.prototype._renderView = function(context) {\n        var self = this;\n        return templates.render(self._template, context)\n            .then(function(newhtml, newjs) {\n                templates.replaceNode($(self._region), newhtml, newjs);\n                return;\n            });\n    };\n\n    /**\n     * Call multiple ajax methods, and refresh.\n     *\n     * @param  {Array}  calls    List of Ajax calls.\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     * @return {Promise}\n     */\n    UserEvidenceActions.prototype._callAndRefresh = function(calls, evidenceData) {\n        var self = this;\n        calls.push({\n            methodname: self._contextMethod,\n            args: self._getContextArgs(evidenceData)\n        });\n\n        // Apply all the promises, and refresh when the last one is resolved.\n        return $.when.apply($.when, ajax.call(calls))\n            .then(function() {\n                return self._renderView(arguments[arguments.length - 1]);\n            })\n            .fail(notification.exception);\n    };\n\n    /**\n     * Delete a plan and reload the region.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     */\n    UserEvidenceActions.prototype._doDelete = function(evidenceData) {\n        var self = this,\n            calls = [{\n                methodname: 'core_competency_delete_user_evidence',\n                args: {id: evidenceData.id}\n            }];\n        self._callAndRefresh(calls, evidenceData);\n    };\n\n    /**\n     * Delete a plan.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     */\n    UserEvidenceActions.prototype.deleteEvidence = function(evidenceData) {\n        var self = this,\n            requests;\n\n        requests = ajax.call([{\n            methodname: 'core_competency_read_user_evidence',\n            args: {id: evidenceData.id}\n        }]);\n\n        requests[0].done(function(evidence) {\n            str.get_strings([\n                {key: 'confirm', component: 'moodle'},\n                {key: 'deleteuserevidence', component: 'tool_lp', param: evidence.name},\n                {key: 'delete', component: 'moodle'},\n                {key: 'cancel', component: 'moodle'}\n            ]).done(function(strings) {\n                notification.confirm(\n                    strings[0], // Confirm.\n                    strings[1], // Delete evidence X?\n                    strings[2], // Delete.\n                    strings[3], // Cancel.\n                    function() {\n                        self._doDelete(evidenceData);\n                    }\n                );\n            }).fail(notification.exception);\n        }).fail(notification.exception);\n\n    };\n\n    /**\n     * Delete evidence handler.\n     *\n     * @param  {Event} e The event.\n     */\n    UserEvidenceActions.prototype._deleteEvidenceHandler = function(e) {\n        e.preventDefault();\n        var data = this._findEvidenceData($(e.target));\n        this.deleteEvidence(data);\n    };\n\n    /**\n     * Link a competency and reload.\n     *\n     * @param {Object} evidenceData Evidence data from evidence node.\n     * @param {Number} competencyIds The competency IDs.\n     * @param {Boolean} requestReview Send competencies to review.\n     */\n    UserEvidenceActions.prototype._doCreateUserEvidenceCompetency = function(evidenceData, competencyIds) {\n        var self = this,\n            calls = [];\n\n        $.each(competencyIds, function(index, competencyId) {\n            calls.push({\n                methodname: 'core_competency_create_user_evidence_competency',\n                args: {\n                    userevidenceid: evidenceData.id,\n                    competencyid: competencyId,\n                }\n            });\n        });\n\n        self._callAndRefresh(calls, evidenceData);\n    };\n\n    /**\n     * Create a user evidence competency.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     */\n    UserEvidenceActions.prototype.createUserEvidenceCompetency = function(evidenceData) {\n        var self = this,\n            picker = new PickerUserPlans(evidenceData.userid);\n\n        picker.on('save', function(e, data) {\n            var competencyIds = data.competencyIds;\n            self._doCreateUserEvidenceCompetency(evidenceData, competencyIds, data.requestReview);\n        });\n\n        picker.display();\n    };\n\n    /**\n     * Create user evidence competency handler.\n     *\n     * @param  {Event} e The event.\n     */\n    UserEvidenceActions.prototype._createUserEvidenceCompetencyHandler = function(e) {\n        e.preventDefault();\n        var data = this._findEvidenceData($(e.target));\n        this.createUserEvidenceCompetency(data);\n    };\n\n    /**\n     * Remove a linked competency and reload.\n     *\n     * @param {Object} evidenceData Evidence data from evidence node.\n     * @param {Number} competencyId The competency ID.\n     */\n    UserEvidenceActions.prototype._doDeleteUserEvidenceCompetency = function(evidenceData, competencyId) {\n        var self = this,\n            calls = [];\n\n        calls.push({\n            methodname: 'core_competency_delete_user_evidence_competency',\n            args: {\n                userevidenceid: evidenceData.id,\n                competencyid: competencyId,\n            }\n        });\n\n        self._callAndRefresh(calls, evidenceData);\n    };\n\n    /**\n     * Delete a user evidence competency.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     * @param  {Number} competencyId The competency ID.\n     */\n    UserEvidenceActions.prototype.deleteUserEvidenceCompetency = function(evidenceData, competencyId) {\n        this._doDeleteUserEvidenceCompetency(evidenceData, competencyId);\n    };\n\n    /**\n     * Delete user evidence competency handler.\n     *\n     * @param  {Event} e The event.\n     */\n    UserEvidenceActions.prototype._deleteUserEvidenceCompetencyHandler = function(e) {\n        var data = this._findEvidenceData($(e.currentTarget)),\n            competencyId = $(e.currentTarget).data('id');\n        e.preventDefault();\n        this.deleteUserEvidenceCompetency(data, competencyId);\n    };\n\n    /**\n     * Send request review for user evidence competencies and reload the region.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     */\n    UserEvidenceActions.prototype._doReviewUserEvidenceCompetencies = function(evidenceData) {\n        var self = this,\n            calls = [{\n                methodname: 'core_competency_request_review_of_user_evidence_linked_competencies',\n                args: {id: evidenceData.id}\n            }];\n        self._callAndRefresh(calls, evidenceData);\n    };\n\n    /**\n     * Send request review for user evidence competencies.\n     *\n     * @param  {Object} evidenceData Evidence data from evidence node.\n     */\n    UserEvidenceActions.prototype.reviewUserEvidenceCompetencies = function(evidenceData) {\n        var self = this,\n            requests;\n\n        requests = ajax.call([{\n            methodname: 'core_competency_read_user_evidence',\n            args: {id: evidenceData.id}\n        }]);\n\n        requests[0].done(function(evidence) {\n            str.get_strings([\n                {key: 'confirm', component: 'moodle'},\n                {key: 'sendallcompetenciestoreview', component: 'tool_lp', param: evidence.name},\n                {key: 'confirm', component: 'moodle'},\n                {key: 'cancel', component: 'moodle'}\n            ]).done(function(strings) {\n                notification.confirm(\n                    strings[0], // Confirm.\n                    strings[1], // Send all competencies in review for X?\n                    strings[2], // Confirm.\n                    strings[3], // Cancel.\n                    function() {\n                        self._doReviewUserEvidenceCompetencies(evidenceData);\n                    }\n                );\n            }).fail(notification.exception);\n        }).fail(notification.exception);\n\n    };\n\n    /**\n     * Send request review for user evidence competencies handler.\n     *\n     * @param  {Event} e The event.\n     */\n    UserEvidenceActions.prototype._reviewUserEvidenceCompetenciesHandler = function(e) {\n        e.preventDefault();\n        var data = this._findEvidenceData($(e.target));\n        this.reviewUserEvidenceCompetencies(data);\n    };\n\n    /**\n     * Find the evidence data from the evidence node.\n     *\n     * @param  {Node} node The node to search from.\n     * @return {Object} Evidence data.\n     */\n    UserEvidenceActions.prototype._findEvidenceData = function(node) {\n        var parent = node.parentsUntil($(this._region).parent(), this._evidenceNode),\n            data;\n\n        if (parent.length != 1) {\n            throw new Error('The evidence node was not located.');\n        }\n\n        data = parent.data();\n        if (typeof data === 'undefined' || typeof data.id === 'undefined') {\n            throw new Error('Evidence data could not be found.');\n        }\n\n        return data;\n    };\n\n    /**\n     * Enhance a menu bar.\n     *\n     * @param  {String} selector Menubar selector.\n     */\n    UserEvidenceActions.prototype.enhanceMenubar = function(selector) {\n        var self = this;\n        Menubar.enhance(selector, {\n            '[data-action=\"user-evidence-delete\"]': self._deleteEvidenceHandler.bind(self),\n            '[data-action=\"link-competency\"]': self._createUserEvidenceCompetencyHandler.bind(self),\n            '[data-action=\"send-competencies-review\"]': self._reviewUserEvidenceCompetenciesHandler.bind(self),\n        });\n    };\n\n    /**\n     * Register the events in the region.\n     *\n     * At this stage this cannot be used with enhanceMenubar or multiple handlers\n     * will be added to the same node.\n     */\n    UserEvidenceActions.prototype.registerEvents = function() {\n        var wrapper = $(this._region),\n            self = this;\n\n        wrapper.find('[data-action=\"user-evidence-delete\"]').click(self._deleteEvidenceHandler.bind(self));\n        wrapper.find('[data-action=\"link-competency\"]').click(self._createUserEvidenceCompetencyHandler.bind(self));\n        wrapper.find('[data-action=\"delete-competency-link\"]').click(self._deleteUserEvidenceCompetencyHandler.bind(self));\n        wrapper.find('[data-action=\"send-competencies-review\"]').click(self._reviewUserEvidenceCompetenciesHandler.bind(self));\n    };\n\n    return /** @alias module:tool_lp/user_evidence_actions */ UserEvidenceActions;\n});\n"],"file":"user_evidence_actions.min.js"}