Your IP : 216.73.216.95


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

{"version":3,"sources":["../src/requestactions.js"],"names":["define","$","Ajax","Notification","Str","ModalFactory","ModalEvents","Templates","ModalDataRequest","DataPrivacyEvents","ACTIONS","APPROVE_REQUEST","DENY_REQUEST","VIEW_REQUEST","MARK_COMPLETE","CHANGE_BULK_ACTION","CONFIRM_BULK_ACTION","SELECT_ALL","BULK_ACTIONS","APPROVE","DENY","SELECTORS","SELECT_REQUEST","RequestActions","registerEvents","prototype","click","e","preventDefault","requestId","data","promises","call","methodname","args","when","then","result","addNotification","message","warnings","type","body","render","templateContext","approvedeny","canmarkcomplete","create","title","typename","TYPE","large","modal","getRoot","on","approve","showConfirmation","approveEventWsData","deny","denyEventWsData","complete","handleSave","hidden","destroy","show","catch","exception","completeEventWsData","requestIds","actionEvent","wsdata","bulkActionKeys","key","component","bulkaction","parseInt","val","get_strings","done","langStrings","alert","fail","each","push","length","bulkApprove","bulkApproveEventWsData","bulkDeny","bulkDenyEventWsData","change","selectAll","is","prop","action","keys","modalTitle","confirmMessage","types","SAVE_CANCEL","setSaveButtonText","save","wsfunction","wsparams","params","window","location","reload"],"mappings":"AAuBAA,OAAM,mCAAC,CACH,QADG,CAEH,WAFG,CAGH,mBAHG,CAIH,UAJG,CAKH,oBALG,CAMH,mBANG,CAOH,gBAPG,CAQH,qCARG,CASH,yBATG,CAAD,CAUN,SAASC,CAAT,CAAYC,CAAZ,CAAkBC,CAAlB,CAAgCC,CAAhC,CAAqCC,CAArC,CAAmDC,CAAnD,CAAgEC,CAAhE,CAA2EC,CAA3E,CAA6FC,CAA7F,CAAgH,IAaxGC,CAAAA,CAAO,CAAG,CACVC,eAAe,CAAE,2BADP,CAEVC,YAAY,CAAE,wBAFJ,CAGVC,YAAY,CAAE,wBAHJ,CAIVC,aAAa,CAAE,4BAJL,CAKVC,kBAAkB,CAAE,sBALV,CAMVC,mBAAmB,CAAE,8BANX,CAOVC,UAAU,CAAE,6BAPF,CAb8F,CA6BxGC,CAAY,CAAG,CACfC,OAAO,CAAE,CADM,CAEfC,IAAI,CAAE,CAFS,CA7ByF,CAuCxGC,CAAS,CAAG,CACZC,cAAc,CAAE,iBADJ,CAvC4F,CA8CxGC,CAAc,CAAG,UAAW,CAC5B,KAAKC,cAAL,EACH,CAhD2G,CAqD5GD,CAAc,CAACE,SAAf,CAAyBD,cAAzB,CAA0C,UAAW,CACjDvB,CAAC,CAACS,CAAO,CAACG,YAAT,CAAD,CAAwBa,KAAxB,CAA8B,SAASC,CAAT,CAAY,CACtCA,CAAC,CAACC,cAAF,GADsC,GAGlCC,CAAAA,CAAS,CAAG5B,CAAC,CAAC,IAAD,CAAD,CAAQ6B,IAAR,CAAa,WAAb,CAHsB,CAelCC,CAAQ,CAAG7B,CAAI,CAAC8B,IAAL,CAAU,CALX,CACVC,UAAU,CAAE,mCADF,CAEVC,IAAI,CANK,CACT,UAAaL,CADJ,CAIC,CAKW,CAAV,CAfuB,CAgBtC5B,CAAC,CAACkC,IAAF,CAAOJ,CAAQ,CAAC,CAAD,CAAf,EAAoBK,IAApB,CAAyB,SAASN,CAAT,CAAe,CACpC,GAAIA,CAAI,CAACO,MAAT,CAAiB,CACb,MAAOP,CAAAA,CAAI,CAACO,MACf,CAEDlC,CAAY,CAACmC,eAAb,CAA6B,CACzBC,OAAO,CAAET,CAAI,CAACU,QAAL,CAAc,CAAd,EAAiBD,OADD,CAEzBE,IAAI,CAAE,OAFmB,CAA7B,EAIA,QAEH,CAXD,EAWGL,IAXH,CAWQ,SAASN,CAAT,CAAe,IACfY,CAAAA,CAAI,CAAGnC,CAAS,CAACoC,MAAV,CAAiB,kCAAjB,CAAqDb,CAArD,CADQ,CAEfc,CAAe,CAAG,CAClBC,WAAW,CAAEf,CAAI,CAACe,WADA,CAElBC,eAAe,CAAEhB,CAAI,CAACgB,eAFJ,CAFH,CAMnB,MAAOzC,CAAAA,CAAY,CAAC0C,MAAb,CAAoB,CACvBC,KAAK,CAAElB,CAAI,CAACmB,QADW,CAEvBP,IAAI,CAAEA,CAFiB,CAGvBD,IAAI,CAAEjC,CAAgB,CAAC0C,IAHA,CAIvBC,KAAK,GAJkB,CAKvBP,eAAe,CAAEA,CALM,CAApB,CAQV,CAzBD,EAyBGR,IAzBH,CAyBQ,SAASgB,CAAT,CAAgB,CAEpBA,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmB7C,CAAiB,CAAC8C,OAArC,CAA8C,UAAW,CACrDC,CAAgB,CAAC/C,CAAiB,CAAC8C,OAAnB,CAA4BE,CAAkB,CAAC5B,CAAD,CAA9C,CACnB,CAFD,EAKAuB,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmB7C,CAAiB,CAACiD,IAArC,CAA2C,UAAW,CAClDF,CAAgB,CAAC/C,CAAiB,CAACiD,IAAnB,CAAyBC,CAAe,CAAC9B,CAAD,CAAxC,CACnB,CAFD,EAKAuB,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmB7C,CAAiB,CAACmD,QAArC,CAA+C,UAAW,CAItDC,CAAU,CAAC,gCAAD,CAHG,CACT,UAAahC,CADJ,CAGH,CACb,CALD,EAQAuB,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBhD,CAAW,CAACwD,MAA/B,CAAuC,UAAW,CAE9CV,CAAK,CAACW,OAAN,EACH,CAHD,EAMAX,CAAK,CAACY,IAAN,EAIH,CAvDD,EAuDGC,KAvDH,CAuDS9D,CAAY,CAAC+D,SAvDtB,CAwDH,CAxED,EA0EAjE,CAAC,CAACS,CAAO,CAACC,eAAT,CAAD,CAA2Be,KAA3B,CAAiC,SAASC,CAAT,CAAY,CACzCA,CAAC,CAACC,cAAF,GAEA,GAAIC,CAAAA,CAAS,CAAG5B,CAAC,CAAC,IAAD,CAAD,CAAQ6B,IAAR,CAAa,WAAb,CAAhB,CACA0B,CAAgB,CAAC/C,CAAiB,CAAC8C,OAAnB,CAA4BE,CAAkB,CAAC5B,CAAD,CAA9C,CACnB,CALD,EAOA5B,CAAC,CAACS,CAAO,CAACE,YAAT,CAAD,CAAwBc,KAAxB,CAA8B,SAASC,CAAT,CAAY,CACtCA,CAAC,CAACC,cAAF,GAEA,GAAIC,CAAAA,CAAS,CAAG5B,CAAC,CAAC,IAAD,CAAD,CAAQ6B,IAAR,CAAa,WAAb,CAAhB,CACA0B,CAAgB,CAAC/C,CAAiB,CAACiD,IAAnB,CAAyBC,CAAe,CAAC9B,CAAD,CAAxC,CACnB,CALD,EAOA5B,CAAC,CAACS,CAAO,CAACI,aAAT,CAAD,CAAyBY,KAAzB,CAA+B,SAASC,CAAT,CAAY,CACvCA,CAAC,CAACC,cAAF,GAEA,GAAIC,CAAAA,CAAS,CAAG5B,CAAC,CAAC,IAAD,CAAD,CAAQ6B,IAAR,CAAa,WAAb,CAAhB,CACA0B,CAAgB,CAAC/C,CAAiB,CAACmD,QAAnB,CAA6BO,CAAmB,CAACtC,CAAD,CAAhD,CACnB,CALD,EAOA5B,CAAC,CAACS,CAAO,CAACM,mBAAT,CAAD,CAA+BU,KAA/B,CAAqC,UAAW,IACxC0C,CAAAA,CAAU,CAAG,EAD2B,CAExCC,CAAW,CAAG,EAF0B,CAGxCC,CAAM,CAAG,EAH+B,CAIxCC,CAAc,CAAG,CACjB,CACIC,GAAG,CAAE,kBADT,CAEIC,SAAS,CAAE,kBAFf,CADiB,CAKjB,CACID,GAAG,CAAE,oBADT,CAEIC,SAAS,CAAE,kBAFf,CALiB,CASjB,CACID,GAAG,CAAE,IADT,CATiB,CAJuB,CAkBxCE,CAAU,CAAGC,QAAQ,CAAC1E,CAAC,CAAC,cAAD,CAAD,CAAkB2E,GAAlB,EAAD,CAlBmB,CAoB5C,GAAIF,CAAU,EAAIxD,CAAY,CAACC,OAA3B,EAAsCuD,CAAU,EAAIxD,CAAY,CAACE,IAArE,CAA2E,CACvEhB,CAAG,CAACyE,WAAJ,CAAgBN,CAAhB,EAAgCO,IAAhC,CAAqC,SAASC,CAAT,CAAsB,CACvD5E,CAAY,CAAC6E,KAAb,CAAmB,EAAnB,CAAuBD,CAAW,CAAC,CAAD,CAAlC,CAAuCA,CAAW,CAAC,CAAD,CAAlD,CACH,CAFD,EAEGE,IAFH,CAEQ9E,CAAY,CAAC+D,SAFrB,EAIA,MACH,CAEDjE,CAAC,CAAC,yBAAD,CAAD,CAA6BiF,IAA7B,CAAkC,UAAW,CACzCd,CAAU,CAACe,IAAX,CAAgBlF,CAAC,CAAC,IAAD,CAAD,CAAQ2E,GAAR,EAAhB,CACH,CAFD,EAIA,GAAwB,CAApB,CAAAR,CAAU,CAACgB,MAAf,CAA2B,CACvBhF,CAAG,CAACyE,WAAJ,CAAgBN,CAAhB,EAAgCO,IAAhC,CAAqC,SAASC,CAAT,CAAsB,CACvD5E,CAAY,CAAC6E,KAAb,CAAmB,EAAnB,CAAuBD,CAAW,CAAC,CAAD,CAAlC,CAAuCA,CAAW,CAAC,CAAD,CAAlD,CACH,CAFD,EAEGE,IAFH,CAEQ9E,CAAY,CAAC+D,SAFrB,EAIA,MACH,CAED,OAAQQ,CAAR,EACI,IAAKxD,CAAAA,CAAY,CAACC,OAAlB,CACIkD,CAAW,CAAG5D,CAAiB,CAAC4E,WAAhC,CACAf,CAAM,CAAGgB,CAAsB,CAAClB,CAAD,CAA/B,CACA,MACJ,IAAKlD,CAAAA,CAAY,CAACE,IAAlB,CACIiD,CAAW,CAAG5D,CAAiB,CAAC8E,QAAhC,CACAjB,CAAM,CAAGkB,CAAmB,CAACpB,CAAD,CAA5B,CAPR,CAUAZ,CAAgB,CAACa,CAAD,CAAcC,CAAd,CACnB,CAnDD,EAqDArE,CAAC,CAACS,CAAO,CAACO,UAAT,CAAD,CAAsBwE,MAAtB,CAA6B,SAAS9D,CAAT,CAAY,CACrCA,CAAC,CAACC,cAAF,GAEA,GAAI8D,CAAAA,CAAS,CAAGzF,CAAC,CAAC,IAAD,CAAD,CAAQ0F,EAAR,CAAW,UAAX,CAAhB,CACA1F,CAAC,CAACoB,CAAS,CAACC,cAAX,CAAD,CAA4BsE,IAA5B,CAAiC,SAAjC,CAA4CF,CAA5C,CACH,CALD,CAMH,CA3JD,CAmKA,QAASjC,CAAAA,CAAT,CAA4B5B,CAA5B,CAAuC,CACnC,MAAO,CACH,WAAc,uCADX,CAEH,SAAY,CAAC,UAAaA,CAAd,CAFT,CAIV,CAQD,QAASyD,CAAAA,CAAT,CAAgClB,CAAhC,CAA4C,CACxC,MAAO,CACH,WAAc,6CADX,CAEH,SAAY,CAAC,WAAcA,CAAf,CAFT,CAIV,CAQD,QAAST,CAAAA,CAAT,CAAyB9B,CAAzB,CAAoC,CAChC,MAAO,CACH,WAAc,oCADX,CAEH,SAAY,CAAC,UAAaA,CAAd,CAFT,CAIV,CAQD,QAAS2D,CAAAA,CAAT,CAA6BpB,CAA7B,CAAyC,CACrC,MAAO,CACH,WAAc,0CADX,CAEH,SAAY,CAAC,WAAcA,CAAf,CAFT,CAIV,CAQD,QAASD,CAAAA,CAAT,CAA6BtC,CAA7B,CAAwC,CACpC,MAAO,CACH,WAAc,gCADX,CAEH,SAAY,CAAC,UAAaA,CAAd,CAFT,CAIV,CAQD,QAAS2B,CAAAA,CAAT,CAA0BqC,CAA1B,CAAkCvB,CAAlC,CAA0C,CACtC,GAAIwB,CAAAA,CAAI,CAAG,EAAX,CAEA,OAAQD,CAAR,EACI,IAAKpF,CAAAA,CAAiB,CAAC8C,OAAvB,CACIuC,CAAI,CAAG,CACH,CACItB,GAAG,CAAE,gBADT,CAEIC,SAAS,CAAE,kBAFf,CADG,CAKH,CACID,GAAG,CAAE,iBADT,CAEIC,SAAS,CAAE,kBAFf,CALG,CAAP,CAUA,MACJ,IAAKhE,CAAAA,CAAiB,CAAC4E,WAAvB,CACIS,CAAI,CAAG,CACH,CACItB,GAAG,CAAE,qBADT,CAEIC,SAAS,CAAE,kBAFf,CADG,CAKH,CACID,GAAG,CAAE,qBADT,CAEIC,SAAS,CAAE,kBAFf,CALG,CAAP,CAUA,MACJ,IAAKhE,CAAAA,CAAiB,CAACiD,IAAvB,CACIoC,CAAI,CAAG,CACH,CACItB,GAAG,CAAE,aADT,CAEIC,SAAS,CAAE,kBAFf,CADG,CAKH,CACID,GAAG,CAAE,eADT,CAEIC,SAAS,CAAE,kBAFf,CALG,CAAP,CAUA,MACJ,IAAKhE,CAAAA,CAAiB,CAAC8E,QAAvB,CACIO,CAAI,CAAG,CACH,CACItB,GAAG,CAAE,kBADT,CAEIC,SAAS,CAAE,kBAFf,CADG,CAKH,CACID,GAAG,CAAE,mBADT,CAEIC,SAAS,CAAE,kBAFf,CALG,CAAP,CAUA,MACJ,IAAKhE,CAAAA,CAAiB,CAACmD,QAAvB,CACIkC,CAAI,CAAG,CACH,CACItB,GAAG,CAAE,cADT,CAEIC,SAAS,CAAE,kBAFf,CADG,CAKH,CACID,GAAG,CAAE,mBADT,CAEIC,SAAS,CAAE,kBAFf,CALG,CAAP,CAUA,MA5DR,CA+DA,GAAIsB,CAAAA,CAAU,CAAG,EAAjB,CACA3F,CAAG,CAACyE,WAAJ,CAAgBiB,CAAhB,EAAsB1D,IAAtB,CAA2B,SAAS2C,CAAT,CAAsB,CAC7CgB,CAAU,CAAGhB,CAAW,CAAC,CAAD,CAAxB,CACA,GAAIiB,CAAAA,CAAc,CAAGjB,CAAW,CAAC,CAAD,CAAhC,CACA,MAAO1E,CAAAA,CAAY,CAAC0C,MAAb,CAAoB,CACvBC,KAAK,CAAE+C,CADgB,CAEvBrD,IAAI,CAAEsD,CAFiB,CAGvBvD,IAAI,CAAEpC,CAAY,CAAC4F,KAAb,CAAmBC,WAHF,CAApB,CAKV,CARD,EAQG9D,IARH,CAQQ,SAASgB,CAAT,CAAgB,CACpBA,CAAK,CAAC+C,iBAAN,CAAwBJ,CAAxB,EAGA3C,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBhD,CAAW,CAAC8F,IAA/B,CAAqC,UAAW,CAC5CvC,CAAU,CAACS,CAAM,CAAC+B,UAAR,CAAoB/B,CAAM,CAACgC,QAA3B,CACb,CAFD,EAKAlD,CAAK,CAACC,OAAN,GAAgBC,EAAhB,CAAmBhD,CAAW,CAACwD,MAA/B,CAAuC,UAAW,CAE9CV,CAAK,CAACW,OAAN,EACH,CAHD,EAKAX,CAAK,CAACY,IAAN,EAIH,CA1BD,EA0BGC,KA1BH,CA0BS9D,CAAY,CAAC+D,SA1BtB,CA2BH,CASD,QAASL,CAAAA,CAAT,CAAoBwC,CAApB,CAAgCE,CAAhC,CAAwC,CAOpCrG,CAAI,CAAC8B,IAAL,CAAU,CALI,CACVC,UAAU,CAAEoE,CADF,CAEVnE,IAAI,CAAEqE,CAFI,CAKJ,CAAV,EAAqB,CAArB,EAAwBzB,IAAxB,CAA6B,SAAShD,CAAT,CAAe,CACxC,GAAIA,CAAI,CAACO,MAAT,CAAiB,CAGbmE,MAAM,CAACC,QAAP,CAAgBC,MAAhB,EACH,CAJD,IAIO,CAEHvG,CAAY,CAACmC,eAAb,CAA6B,CACzBC,OAAO,CAAET,CAAI,CAACU,QAAL,CAAc,CAAd,EAAiBD,OADD,CAEzBE,IAAI,CAAE,OAFmB,CAA7B,CAIH,CACJ,CAZD,EAYGwC,IAZH,CAYQ9E,CAAY,CAAC+D,SAZrB,CAaH,CAED,MAAO3C,CAAAA,CACV,CAjaK,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 * Request actions.\n *\n * @module     tool_dataprivacy/requestactions\n * @package    tool_dataprivacy\n * @copyright  2018 Jun Pataleta\n * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine([\n    'jquery',\n    'core/ajax',\n    'core/notification',\n    'core/str',\n    'core/modal_factory',\n    'core/modal_events',\n    'core/templates',\n    'tool_dataprivacy/data_request_modal',\n    'tool_dataprivacy/events'],\nfunction($, Ajax, Notification, Str, ModalFactory, ModalEvents, Templates, ModalDataRequest, DataPrivacyEvents) {\n\n    /**\n     * List of action selectors.\n     *\n     * @type {{APPROVE_REQUEST: string}}\n     * @type {{DENY_REQUEST: string}}\n     * @type {{VIEW_REQUEST: string}}\n     * @type {{MARK_COMPLETE: string}}\n     * @type {{CHANGE_BULK_ACTION: string}}\n     * @type {{CONFIRM_BULK_ACTION: string}}\n     * @type {{SELECT_ALL: string}}\n     */\n    var ACTIONS = {\n        APPROVE_REQUEST: '[data-action=\"approve\"]',\n        DENY_REQUEST: '[data-action=\"deny\"]',\n        VIEW_REQUEST: '[data-action=\"view\"]',\n        MARK_COMPLETE: '[data-action=\"complete\"]',\n        CHANGE_BULK_ACTION: '[id=\"bulk-action\"]',\n        CONFIRM_BULK_ACTION: '[id=\"confirm-bulk-action\"]',\n        SELECT_ALL: '[data-action=\"selectall\"]'\n    };\n\n    /**\n     * List of available bulk actions.\n     *\n     * @type {{APPROVE: number}}\n     * @type {{DENY: number}}\n     */\n    var BULK_ACTIONS = {\n        APPROVE: 1,\n        DENY: 2\n    };\n\n    /**\n     * List of selectors.\n     *\n     * @type {{SELECT_REQUEST: string}}\n     */\n    var SELECTORS = {\n        SELECT_REQUEST: '.selectrequests'\n    };\n\n    /**\n     * RequestActions class.\n     */\n    var RequestActions = function() {\n        this.registerEvents();\n    };\n\n    /**\n     * Register event listeners.\n     */\n    RequestActions.prototype.registerEvents = function() {\n        $(ACTIONS.VIEW_REQUEST).click(function(e) {\n            e.preventDefault();\n\n            var requestId = $(this).data('requestid');\n\n            // Cancel the request.\n            var params = {\n                'requestid': requestId\n            };\n\n            var request = {\n                methodname: 'tool_dataprivacy_get_data_request',\n                args: params\n            };\n\n            var promises = Ajax.call([request]);\n            $.when(promises[0]).then(function(data) {\n                if (data.result) {\n                    return data.result;\n                }\n                // Fail.\n                Notification.addNotification({\n                    message: data.warnings[0].message,\n                    type: 'error'\n                });\n                return false;\n\n            }).then(function(data) {\n                var body = Templates.render('tool_dataprivacy/request_details', data);\n                var templateContext = {\n                    approvedeny: data.approvedeny,\n                    canmarkcomplete: data.canmarkcomplete\n                };\n                return ModalFactory.create({\n                    title: data.typename,\n                    body: body,\n                    type: ModalDataRequest.TYPE,\n                    large: true,\n                    templateContext: templateContext\n                });\n\n            }).then(function(modal) {\n                // Handle approve event.\n                modal.getRoot().on(DataPrivacyEvents.approve, function() {\n                    showConfirmation(DataPrivacyEvents.approve, approveEventWsData(requestId));\n                });\n\n                // Handle deny event.\n                modal.getRoot().on(DataPrivacyEvents.deny, function() {\n                    showConfirmation(DataPrivacyEvents.deny, denyEventWsData(requestId));\n                });\n\n                // Handle send event.\n                modal.getRoot().on(DataPrivacyEvents.complete, function() {\n                    var params = {\n                        'requestid': requestId\n                    };\n                    handleSave('tool_dataprivacy_mark_complete', params);\n                });\n\n                // Handle hidden event.\n                modal.getRoot().on(ModalEvents.hidden, function() {\n                    // Destroy when hidden.\n                    modal.destroy();\n                });\n\n                // Show the modal!\n                modal.show();\n\n                return;\n\n            }).catch(Notification.exception);\n        });\n\n        $(ACTIONS.APPROVE_REQUEST).click(function(e) {\n            e.preventDefault();\n\n            var requestId = $(this).data('requestid');\n            showConfirmation(DataPrivacyEvents.approve, approveEventWsData(requestId));\n        });\n\n        $(ACTIONS.DENY_REQUEST).click(function(e) {\n            e.preventDefault();\n\n            var requestId = $(this).data('requestid');\n            showConfirmation(DataPrivacyEvents.deny, denyEventWsData(requestId));\n        });\n\n        $(ACTIONS.MARK_COMPLETE).click(function(e) {\n            e.preventDefault();\n\n            var requestId = $(this).data('requestid');\n            showConfirmation(DataPrivacyEvents.complete, completeEventWsData(requestId));\n        });\n\n        $(ACTIONS.CONFIRM_BULK_ACTION).click(function() {\n            var requestIds = [];\n            var actionEvent = '';\n            var wsdata = {};\n            var bulkActionKeys = [\n                {\n                    key: 'selectbulkaction',\n                    component: 'tool_dataprivacy'\n                },\n                {\n                    key: 'selectdatarequests',\n                    component: 'tool_dataprivacy'\n                },\n                {\n                    key: 'ok'\n                }\n            ];\n\n            var bulkaction = parseInt($('#bulk-action').val());\n\n            if (bulkaction != BULK_ACTIONS.APPROVE && bulkaction != BULK_ACTIONS.DENY) {\n                Str.get_strings(bulkActionKeys).done(function(langStrings) {\n                    Notification.alert('', langStrings[0], langStrings[2]);\n                }).fail(Notification.exception);\n\n                return;\n            }\n\n            $(\".selectrequests:checked\").each(function() {\n                requestIds.push($(this).val());\n            });\n\n            if (requestIds.length < 1) {\n                Str.get_strings(bulkActionKeys).done(function(langStrings) {\n                    Notification.alert('', langStrings[1], langStrings[2]);\n                }).fail(Notification.exception);\n\n                return;\n            }\n\n            switch (bulkaction) {\n                case BULK_ACTIONS.APPROVE:\n                    actionEvent = DataPrivacyEvents.bulkApprove;\n                    wsdata = bulkApproveEventWsData(requestIds);\n                    break;\n                case BULK_ACTIONS.DENY:\n                    actionEvent = DataPrivacyEvents.bulkDeny;\n                    wsdata = bulkDenyEventWsData(requestIds);\n            }\n\n            showConfirmation(actionEvent, wsdata);\n        });\n\n        $(ACTIONS.SELECT_ALL).change(function(e) {\n            e.preventDefault();\n\n            var selectAll = $(this).is(':checked');\n            $(SELECTORS.SELECT_REQUEST).prop('checked', selectAll);\n        });\n    };\n\n    /**\n     * Return the webservice data for the approve request action.\n     *\n     * @param {Number} requestId The ID of the request.\n     * @return {Object}\n     */\n    function approveEventWsData(requestId) {\n        return {\n            'wsfunction': 'tool_dataprivacy_approve_data_request',\n            'wsparams': {'requestid': requestId}\n        };\n    }\n\n    /**\n     * Return the webservice data for the bulk approve request action.\n     *\n     * @param {Array} requestIds The array of request ID's.\n     * @return {Object}\n     */\n    function bulkApproveEventWsData(requestIds) {\n        return {\n            'wsfunction': 'tool_dataprivacy_bulk_approve_data_requests',\n            'wsparams': {'requestids': requestIds}\n        };\n    }\n\n    /**\n     * Return the webservice data for the deny request action.\n     *\n     * @param {Number} requestId The ID of the request.\n     * @return {Object}\n     */\n    function denyEventWsData(requestId) {\n        return {\n            'wsfunction': 'tool_dataprivacy_deny_data_request',\n            'wsparams': {'requestid': requestId}\n        };\n    }\n\n    /**\n     * Return the webservice data for the bulk deny request action.\n     *\n     * @param {Array} requestIds The array of request ID's.\n     * @return {Object}\n     */\n    function bulkDenyEventWsData(requestIds) {\n        return {\n            'wsfunction': 'tool_dataprivacy_bulk_deny_data_requests',\n            'wsparams': {'requestids': requestIds}\n        };\n    }\n\n    /**\n     * Return the webservice data for the complete request action.\n     *\n     * @param {Number} requestId The ID of the request.\n     * @return {Object}\n     */\n    function completeEventWsData(requestId) {\n        return {\n            'wsfunction': 'tool_dataprivacy_mark_complete',\n            'wsparams': {'requestid': requestId}\n        };\n    }\n\n    /**\n     * Show the confirmation dialogue.\n     *\n     * @param {String} action The action name.\n     * @param {Object} wsdata Object containing ws data.\n     */\n    function showConfirmation(action, wsdata) {\n        var keys = [];\n\n        switch (action) {\n            case DataPrivacyEvents.approve:\n                keys = [\n                    {\n                        key: 'approverequest',\n                        component: 'tool_dataprivacy'\n                    },\n                    {\n                        key: 'confirmapproval',\n                        component: 'tool_dataprivacy'\n                    }\n                ];\n                break;\n            case DataPrivacyEvents.bulkApprove:\n                keys = [\n                    {\n                        key: 'bulkapproverequests',\n                        component: 'tool_dataprivacy'\n                    },\n                    {\n                        key: 'confirmbulkapproval',\n                        component: 'tool_dataprivacy'\n                    }\n                ];\n                break;\n            case DataPrivacyEvents.deny:\n                keys = [\n                    {\n                        key: 'denyrequest',\n                        component: 'tool_dataprivacy'\n                    },\n                    {\n                        key: 'confirmdenial',\n                        component: 'tool_dataprivacy'\n                    }\n                ];\n                break;\n            case DataPrivacyEvents.bulkDeny:\n                keys = [\n                    {\n                        key: 'bulkdenyrequests',\n                        component: 'tool_dataprivacy'\n                    },\n                    {\n                        key: 'confirmbulkdenial',\n                        component: 'tool_dataprivacy'\n                    }\n                ];\n                break;\n            case DataPrivacyEvents.complete:\n                keys = [\n                    {\n                        key: 'markcomplete',\n                        component: 'tool_dataprivacy'\n                    },\n                    {\n                        key: 'confirmcompletion',\n                        component: 'tool_dataprivacy'\n                    }\n                ];\n                break;\n        }\n\n        var modalTitle = '';\n        Str.get_strings(keys).then(function(langStrings) {\n            modalTitle = langStrings[0];\n            var confirmMessage = langStrings[1];\n            return ModalFactory.create({\n                title: modalTitle,\n                body: confirmMessage,\n                type: ModalFactory.types.SAVE_CANCEL\n            });\n        }).then(function(modal) {\n            modal.setSaveButtonText(modalTitle);\n\n            // Handle save event.\n            modal.getRoot().on(ModalEvents.save, function() {\n                handleSave(wsdata.wsfunction, wsdata.wsparams);\n            });\n\n            // Handle hidden event.\n            modal.getRoot().on(ModalEvents.hidden, function() {\n                // Destroy when hidden.\n                modal.destroy();\n            });\n\n            modal.show();\n\n            return;\n\n        }).catch(Notification.exception);\n    }\n\n    /**\n     * Calls a web service function and reloads the page on success and shows a notification.\n     * Displays an error notification, otherwise.\n     *\n     * @param {String} wsfunction The web service function to call.\n     * @param {Object} params The parameters for the web service functoon.\n     */\n    function handleSave(wsfunction, params) {\n        // Confirm the request.\n        var request = {\n            methodname: wsfunction,\n            args: params\n        };\n\n        Ajax.call([request])[0].done(function(data) {\n            if (data.result) {\n                // On success, reload the page so that the data request table will be updated.\n                // TODO: Probably in the future, better to reload the table or the target data request via AJAX.\n                window.location.reload();\n            } else {\n                // Add the notification.\n                Notification.addNotification({\n                    message: data.warnings[0].message,\n                    type: 'error'\n                });\n            }\n        }).fail(Notification.exception);\n    }\n\n    return RequestActions;\n});\n"],"file":"requestactions.min.js"}