Current Path : /var/www/ljmtc/cbt/admin/tool/dataprivacy/amd/build/ |
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":"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","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"}