diff --git a/reportbuilder/amd/build/reports_list.min.js b/reportbuilder/amd/build/reports_list.min.js index 3647dd6e91a..3326d5a073b 100644 --- a/reportbuilder/amd/build/reports_list.min.js +++ b/reportbuilder/amd/build/reports_list.min.js @@ -1,2 +1,2 @@ -function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}define ("core_reportbuilder/reports_list",["exports","core/event_dispatcher","core/notification","core/pending","core/prefetch","core/str","core/toast","core_reportbuilder/local/events","core_reportbuilder/local/selectors","core_reportbuilder/local/repository/reports","core_reportbuilder/local/repository/modals"],function(a,b,c,d,e,f,g,h,i,j,k){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.init=void 0;c=n(c);d=n(d);h=m(h);i=m(i);function l(){if("function"!=typeof WeakMap)return null;var a=new WeakMap;l=function(){return a};return a}function m(a){if(a&&a.__esModule){return a}if(null===a||"object"!==_typeof(a)&&"function"!=typeof a){return{default:a}}var b=l();if(b&&b.has(a)){return b.get(a)}var c={},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a){if(Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;if(f&&(f.get||f.set)){Object.defineProperty(c,e,f)}else{c[e]=a[e]}}}c.default=a;if(b){b.set(a,c)}return c}function n(a){return a&&a.__esModule?a:{default:a}}a.init=function init(){(0,e.prefetchStrings)("core_reportbuilder",["deletereport","deletereportconfirm","editreportdetails","newreport","reportdeleted","reportupdated"]);(0,e.prefetchStrings)("core",["delete"]);document.addEventListener("click",function(a){var e=a.target.closest(i.actions.reportCreate);if(e){a.preventDefault();var n=(0,k.createReportModal)(a.target,(0,f.get_string)("newreport","core_reportbuilder"));n.addEventListener(n.events.FORM_SUBMITTED,function(a){window.location.href=a.detail});n.show()}var l=a.target.closest(i.actions.reportEdit);if(l){a.preventDefault();var o=(0,k.createReportModal)(l,(0,f.get_string)("editreportdetails","core_reportbuilder"),l.dataset.reportId);o.addEventListener(o.events.FORM_SUBMITTED,function(){var d=a.target.closest(i.regions.report);(0,f.get_string)("reportupdated","core_reportbuilder").then(g.add).then(function(){(0,b.dispatchEvent)(h.tableReload,{preservePagination:!0},d)}).catch(c.default.exception)});o.show()}var m=a.target.closest(i.actions.reportDelete);if(m){a.preventDefault();c.default.saveCancelPromise((0,f.get_string)("deletereport","core_reportbuilder"),(0,f.get_string)("deletereportconfirm","core_reportbuilder",m.dataset.reportName),(0,f.get_string)("delete","core"),{triggerElement:m}).then(function(){var e=new d.default("core_reportbuilder/reports:delete"),k=a.target.closest(i.regions.report);return(0,j.deleteReport)(m.dataset.reportId).then(function(){return(0,g.add)((0,f.get_string)("reportdeleted","core_reportbuilder"))}).then(function(){(0,b.dispatchEvent)(h.tableReload,{preservePagination:!0},k);return e.resolve()}).catch(c.default.exception)}).catch(function(){})}})}}); +function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}define ("core_reportbuilder/reports_list",["exports","core/event_dispatcher","core/notification","core/pending","core/prefetch","core/str","core/toast","core_reportbuilder/local/events","core_reportbuilder/local/selectors","core_reportbuilder/local/repository/reports","core_reportbuilder/local/repository/modals"],function(a,b,c,d,e,f,g,h,i,j,k){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.init=void 0;c=n(c);d=n(d);h=m(h);i=m(i);function l(){if("function"!=typeof WeakMap)return null;var a=new WeakMap;l=function(){return a};return a}function m(a){if(a&&a.__esModule){return a}if(null===a||"object"!==_typeof(a)&&"function"!=typeof a){return{default:a}}var b=l();if(b&&b.has(a)){return b.get(a)}var c={},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a){if(Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;if(f&&(f.get||f.set)){Object.defineProperty(c,e,f)}else{c[e]=a[e]}}}c.default=a;if(b){b.set(a,c)}return c}function n(a){return a&&a.__esModule?a:{default:a}}a.init=function init(){(0,e.prefetchStrings)("core_reportbuilder",["deletereport","deletereportconfirm","editreportdetails","newreport","reportdeleted","reportupdated"]);(0,e.prefetchStrings)("core",["delete"]);document.addEventListener("click",function(a){var e=a.target.closest(i.actions.reportCreate);if(e){a.preventDefault();var p=(0,k.createReportModal)(a.target,(0,f.get_string)("newreport","core_reportbuilder"));p.addEventListener(p.events.FORM_SUBMITTED,function(a){window.location.href=a.detail});p.show()}var l=a.target.closest(i.actions.reportEdit);if(l){a.preventDefault();var m=l.closest(".dropdown").querySelector(".dropdown-toggle"),n=(0,k.createReportModal)(m,(0,f.get_string)("editreportdetails","core_reportbuilder"),l.dataset.reportId);n.addEventListener(n.events.FORM_SUBMITTED,function(){var d=a.target.closest(i.regions.report);(0,f.get_string)("reportupdated","core_reportbuilder").then(g.add).then(function(){(0,b.dispatchEvent)(h.tableReload,{preservePagination:!0},d)}).catch(c.default.exception)});n.show()}var o=a.target.closest(i.actions.reportDelete);if(o){a.preventDefault();var q=o.closest(".dropdown").querySelector(".dropdown-toggle");c.default.saveCancelPromise((0,f.get_string)("deletereport","core_reportbuilder"),(0,f.get_string)("deletereportconfirm","core_reportbuilder",o.dataset.reportName),(0,f.get_string)("delete","core"),{triggerElement:q}).then(function(){var e=new d.default("core_reportbuilder/reports:delete"),k=a.target.closest(i.regions.report);return(0,j.deleteReport)(o.dataset.reportId).then(function(){return(0,g.add)((0,f.get_string)("reportdeleted","core_reportbuilder"))}).then(function(){(0,b.dispatchEvent)(h.tableReload,{preservePagination:!0},k);return e.resolve()}).catch(c.default.exception)}).catch(function(){})}})}}); //# sourceMappingURL=reports_list.min.js.map diff --git a/reportbuilder/amd/build/reports_list.min.js.map b/reportbuilder/amd/build/reports_list.min.js.map index ce8a85c7114..088612f7b40 100644 --- a/reportbuilder/amd/build/reports_list.min.js.map +++ b/reportbuilder/amd/build/reports_list.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/reports_list.js"],"names":["init","document","addEventListener","event","reportCreate","target","closest","reportSelectors","actions","preventDefault","reportModal","events","FORM_SUBMITTED","window","location","href","detail","show","reportEdit","dataset","reportId","reportElement","regions","report","then","addToast","reportEvents","tableReload","preservePagination","catch","Notification","exception","reportDelete","saveCancelPromise","reportName","triggerElement","pendingPromise","Pending","resolve"],"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 .\n\n/**\n * Report builder reports list management\n *\n * @module core_reportbuilder/reports_list\n * @copyright 2021 David Matamoros \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\"use strict\";\n\nimport {dispatchEvent} from 'core/event_dispatcher';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\nimport {prefetchStrings} from 'core/prefetch';\nimport {get_string as getString} from 'core/str';\nimport {add as addToast} from 'core/toast';\nimport * as reportEvents from 'core_reportbuilder/local/events';\nimport * as reportSelectors from 'core_reportbuilder/local/selectors';\nimport {deleteReport} from 'core_reportbuilder/local/repository/reports';\nimport {createReportModal} from 'core_reportbuilder/local/repository/modals';\n\n/**\n * Initialise module\n */\nexport const init = () => {\n prefetchStrings('core_reportbuilder', [\n 'deletereport',\n 'deletereportconfirm',\n 'editreportdetails',\n 'newreport',\n 'reportdeleted',\n 'reportupdated',\n ]);\n\n prefetchStrings('core', [\n 'delete',\n ]);\n\n document.addEventListener('click', event => {\n const reportCreate = event.target.closest(reportSelectors.actions.reportCreate);\n if (reportCreate) {\n event.preventDefault();\n\n // Redirect user to editing interface for the report after submission.\n const reportModal = createReportModal(event.target, getString('newreport', 'core_reportbuilder'));\n reportModal.addEventListener(reportModal.events.FORM_SUBMITTED, event => {\n window.location.href = event.detail;\n });\n\n reportModal.show();\n }\n\n const reportEdit = event.target.closest(reportSelectors.actions.reportEdit);\n if (reportEdit) {\n event.preventDefault();\n\n // Reload current report page after submission.\n const reportModal = createReportModal(reportEdit, getString('editreportdetails', 'core_reportbuilder'),\n reportEdit.dataset.reportId);\n reportModal.addEventListener(reportModal.events.FORM_SUBMITTED, () => {\n const reportElement = event.target.closest(reportSelectors.regions.report);\n\n getString('reportupdated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n reportModal.show();\n }\n\n const reportDelete = event.target.closest(reportSelectors.actions.reportDelete);\n if (reportDelete) {\n event.preventDefault();\n\n Notification.saveCancelPromise(\n getString('deletereport', 'core_reportbuilder'),\n getString('deletereportconfirm', 'core_reportbuilder', reportDelete.dataset.reportName),\n getString('delete', 'core'),\n {triggerElement: reportDelete}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/reports:delete');\n const reportElement = event.target.closest(reportSelectors.regions.report);\n\n return deleteReport(reportDelete.dataset.reportId)\n .then(() => addToast(getString('reportdeleted', 'core_reportbuilder')))\n .then(() => {\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n });\n};\n"],"file":"reports_list.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/reports_list.js"],"names":["init","document","addEventListener","event","reportCreate","target","closest","reportSelectors","actions","preventDefault","reportModal","events","FORM_SUBMITTED","window","location","href","detail","show","reportEdit","triggerElement","querySelector","dataset","reportId","reportElement","regions","report","then","addToast","reportEvents","tableReload","preservePagination","catch","Notification","exception","reportDelete","saveCancelPromise","reportName","pendingPromise","Pending","resolve"],"mappings":"8nBAuBA,a,+DAGA,OACA,OAIA,OACA,O,gmBAOoB,QAAPA,CAAAA,IAAO,EAAM,CACtB,sBAAgB,oBAAhB,CAAsC,CAClC,cADkC,CAElC,qBAFkC,CAGlC,mBAHkC,CAIlC,WAJkC,CAKlC,eALkC,CAMlC,eANkC,CAAtC,EASA,sBAAgB,MAAhB,CAAwB,CACpB,QADoB,CAAxB,EAIAC,QAAQ,CAACC,gBAAT,CAA0B,OAA1B,CAAmC,SAAAC,CAAK,CAAI,CACxC,GAAMC,CAAAA,CAAY,CAAGD,CAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,CAAe,CAACC,OAAhB,CAAwBJ,YAA7C,CAArB,CACA,GAAIA,CAAJ,CAAkB,CACdD,CAAK,CAACM,cAAN,GAGA,GAAMC,CAAAA,CAAW,CAAG,wBAAkBP,CAAK,CAACE,MAAxB,CAAgC,iBAAU,WAAV,CAAuB,oBAAvB,CAAhC,CAApB,CACAK,CAAW,CAACR,gBAAZ,CAA6BQ,CAAW,CAACC,MAAZ,CAAmBC,cAAhD,CAAgE,SAAAT,CAAK,CAAI,CACrEU,MAAM,CAACC,QAAP,CAAgBC,IAAhB,CAAuBZ,CAAK,CAACa,MAChC,CAFD,EAIAN,CAAW,CAACO,IAAZ,EACH,CAED,GAAMC,CAAAA,CAAU,CAAGf,CAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,CAAe,CAACC,OAAhB,CAAwBU,UAA7C,CAAnB,CACA,GAAIA,CAAJ,CAAgB,CACZf,CAAK,CAACM,cAAN,GADY,GAKNU,CAAAA,CAAc,CAAGD,CAAU,CAACZ,OAAX,CAAmB,WAAnB,EAAgCc,aAAhC,CAA8C,kBAA9C,CALX,CAMNV,CAAW,CAAG,wBAAkBS,CAAlB,CAAkC,iBAAU,mBAAV,CAA+B,oBAA/B,CAAlC,CAChBD,CAAU,CAACG,OAAX,CAAmBC,QADH,CANR,CAQZZ,CAAW,CAACR,gBAAZ,CAA6BQ,CAAW,CAACC,MAAZ,CAAmBC,cAAhD,CAAgE,UAAM,CAClE,GAAMW,CAAAA,CAAa,CAAGpB,CAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,CAAe,CAACiB,OAAhB,CAAwBC,MAA7C,CAAtB,CAEA,iBAAU,eAAV,CAA2B,oBAA3B,EACKC,IADL,CACUC,KADV,EAEKD,IAFL,CAEU,UAAM,CACR,oBAAcE,CAAY,CAACC,WAA3B,CAAwC,CAACC,kBAAkB,GAAnB,CAAxC,CAAoEP,CAApE,CAEH,CALL,EAMKQ,KANL,CAMWC,UAAaC,SANxB,CAOH,CAVD,EAYAvB,CAAW,CAACO,IAAZ,EACH,CAED,GAAMiB,CAAAA,CAAY,CAAG/B,CAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,CAAe,CAACC,OAAhB,CAAwB0B,YAA7C,CAArB,CACA,GAAIA,CAAJ,CAAkB,CACd/B,CAAK,CAACM,cAAN,GAGA,GAAMU,CAAAA,CAAc,CAAGe,CAAY,CAAC5B,OAAb,CAAqB,WAArB,EAAkCc,aAAlC,CAAgD,kBAAhD,CAAvB,CACAY,UAAaG,iBAAb,CACI,iBAAU,cAAV,CAA0B,oBAA1B,CADJ,CAEI,iBAAU,qBAAV,CAAiC,oBAAjC,CAAuDD,CAAY,CAACb,OAAb,CAAqBe,UAA5E,CAFJ,CAGI,iBAAU,QAAV,CAAoB,MAApB,CAHJ,CAII,CAACjB,cAAc,CAAdA,CAAD,CAJJ,EAKEO,IALF,CAKO,UAAM,IACHW,CAAAA,CAAc,CAAG,GAAIC,UAAJ,CAAY,mCAAZ,CADd,CAEHf,CAAa,CAAGpB,CAAK,CAACE,MAAN,CAAaC,OAAb,CAAqBC,CAAe,CAACiB,OAAhB,CAAwBC,MAA7C,CAFb,CAIT,MAAO,mBAAaS,CAAY,CAACb,OAAb,CAAqBC,QAAlC,EACFI,IADE,CACG,iBAAM,UAAS,iBAAU,eAAV,CAA2B,oBAA3B,CAAT,CAAN,CADH,EAEFA,IAFE,CAEG,UAAM,CACR,oBAAcE,CAAY,CAACC,WAA3B,CAAwC,CAACC,kBAAkB,GAAnB,CAAxC,CAAoEP,CAApE,EACA,MAAOc,CAAAA,CAAc,CAACE,OAAf,EACV,CALE,EAMFR,KANE,CAMIC,UAAaC,SANjB,CAOV,CAhBD,EAgBGF,KAhBH,CAgBS,UAAM,CAEd,CAlBD,CAmBH,CACJ,CAhED,CAiEH,C","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 .\n\n/**\n * Report builder reports list management\n *\n * @module core_reportbuilder/reports_list\n * @copyright 2021 David Matamoros \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\"use strict\";\n\nimport {dispatchEvent} from 'core/event_dispatcher';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\nimport {prefetchStrings} from 'core/prefetch';\nimport {get_string as getString} from 'core/str';\nimport {add as addToast} from 'core/toast';\nimport * as reportEvents from 'core_reportbuilder/local/events';\nimport * as reportSelectors from 'core_reportbuilder/local/selectors';\nimport {deleteReport} from 'core_reportbuilder/local/repository/reports';\nimport {createReportModal} from 'core_reportbuilder/local/repository/modals';\n\n/**\n * Initialise module\n */\nexport const init = () => {\n prefetchStrings('core_reportbuilder', [\n 'deletereport',\n 'deletereportconfirm',\n 'editreportdetails',\n 'newreport',\n 'reportdeleted',\n 'reportupdated',\n ]);\n\n prefetchStrings('core', [\n 'delete',\n ]);\n\n document.addEventListener('click', event => {\n const reportCreate = event.target.closest(reportSelectors.actions.reportCreate);\n if (reportCreate) {\n event.preventDefault();\n\n // Redirect user to editing interface for the report after submission.\n const reportModal = createReportModal(event.target, getString('newreport', 'core_reportbuilder'));\n reportModal.addEventListener(reportModal.events.FORM_SUBMITTED, event => {\n window.location.href = event.detail;\n });\n\n reportModal.show();\n }\n\n const reportEdit = event.target.closest(reportSelectors.actions.reportEdit);\n if (reportEdit) {\n event.preventDefault();\n\n // Reload current report page after submission.\n // Use triggerElement to return focus to the action menu toggle.\n const triggerElement = reportEdit.closest('.dropdown').querySelector('.dropdown-toggle');\n const reportModal = createReportModal(triggerElement, getString('editreportdetails', 'core_reportbuilder'),\n reportEdit.dataset.reportId);\n reportModal.addEventListener(reportModal.events.FORM_SUBMITTED, () => {\n const reportElement = event.target.closest(reportSelectors.regions.report);\n\n getString('reportupdated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n reportModal.show();\n }\n\n const reportDelete = event.target.closest(reportSelectors.actions.reportDelete);\n if (reportDelete) {\n event.preventDefault();\n\n // Use triggerElement to return focus to the action menu toggle.\n const triggerElement = reportDelete.closest('.dropdown').querySelector('.dropdown-toggle');\n Notification.saveCancelPromise(\n getString('deletereport', 'core_reportbuilder'),\n getString('deletereportconfirm', 'core_reportbuilder', reportDelete.dataset.reportName),\n getString('delete', 'core'),\n {triggerElement}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/reports:delete');\n const reportElement = event.target.closest(reportSelectors.regions.report);\n\n return deleteReport(reportDelete.dataset.reportId)\n .then(() => addToast(getString('reportdeleted', 'core_reportbuilder')))\n .then(() => {\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n });\n};\n"],"file":"reports_list.min.js"} \ No newline at end of file diff --git a/reportbuilder/amd/build/schedules.min.js b/reportbuilder/amd/build/schedules.min.js index 6538b58c802..2d70b36c9f9 100644 --- a/reportbuilder/amd/build/schedules.min.js +++ b/reportbuilder/amd/build/schedules.min.js @@ -1,2 +1,2 @@ -function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}define ("core_reportbuilder/schedules",["exports","core/event_dispatcher","core/inplace_editable","core/notification","core/pending","core/prefetch","core/str","core/toast","core_reportbuilder/local/events","core_reportbuilder/local/selectors","core_reportbuilder/local/repository/modals","core_reportbuilder/local/repository/schedules"],function(a,b,c,d,e,f,g,h,i,j,k,l){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.init=void 0;d=o(d);e=o(e);i=n(i);j=n(j);function m(){if("function"!=typeof WeakMap)return null;var a=new WeakMap;m=function(){return a};return a}function n(a){if(a&&a.__esModule){return a}if(null===a||"object"!==_typeof(a)&&"function"!=typeof a){return{default:a}}var b=m();if(b&&b.has(a)){return b.get(a)}var c={},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a){if(Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;if(f&&(f.get||f.set)){Object.defineProperty(c,e,f)}else{c[e]=a[e]}}}c.default=a;if(b){b.set(a,c)}return c}function o(a){return a&&a.__esModule?a:{default:a}}var p=!1,q=function(a){(0,f.prefetchStrings)("core_reportbuilder",["deleteschedule","deletescheduleconfirm","disableschedule","editscheduledetails","enableschedule","newschedule","schedulecreated","scheduledeleted","schedulesent","scheduleupdated","sendschedule","sendscheduleconfirm"]);(0,f.prefetchStrings)("core",["confirm","delete"]);if(p){return}document.addEventListener("click",function(c){var f=c.target.closest(j.actions.scheduleCreate);if(f){c.preventDefault();var s=(0,k.createScheduleModal)(c.target,(0,g.get_string)("newschedule","core_reportbuilder"),a);s.addEventListener(s.events.FORM_SUBMITTED,function(){(0,g.get_string)("schedulecreated","core_reportbuilder").then(h.add).then(function(){var a=document.querySelector(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{},a)}).catch(d.default.exception)});s.show()}var m=c.target.closest(j.actions.scheduleToggle);if(m){var n=new e.default("core_reportbuilder/schedules:toggle"),o=+!+m.dataset.state;(0,l.toggleSchedule)(a,m.dataset.id,o).then(function(){var a=m.closest("tr");a.classList.toggle("dimmed_text");m.dataset.state=o;var b=o?"disableschedule":"enableschedule";return(0,g.get_string)(b,"core_reportbuilder")}).then(function(a){var b=m.parentElement.querySelector("label[for=\"".concat(m.id,"\"] > span"));b.innerHTML=a;return n.resolve()}).catch(d.default.exception)}var p=c.target.closest(j.actions.scheduleEdit);if(p){c.preventDefault();var t=(0,k.createScheduleModal)(p,(0,g.get_string)("editscheduledetails","core_reportbuilder"),a,p.dataset.scheduleId);t.addEventListener(t.events.FORM_SUBMITTED,function(){(0,g.get_string)("scheduleupdated","core_reportbuilder").then(h.add).then(function(){var a=p.closest(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{},a)}).catch(d.default.exception)});t.show()}var q=c.target.closest(j.actions.scheduleSend);if(q){c.preventDefault();d.default.saveCancelPromise((0,g.get_string)("sendschedule","core_reportbuilder"),(0,g.get_string)("sendscheduleconfirm","core_reportbuilder",q.dataset.scheduleName),(0,g.get_string)("confirm","core"),{triggerElement:q}).then(function(){var b=new e.default("core_reportbuilder/schedules:send");return(0,l.sendSchedule)(a,q.dataset.scheduleId).then((0,h.add)((0,g.get_string)("schedulesent","core_reportbuilder"))).then(function(){return b.resolve()}).catch(d.default.exception)}).catch(function(){})}var r=c.target.closest(j.actions.scheduleDelete);if(r){c.preventDefault();d.default.saveCancelPromise((0,g.get_string)("deleteschedule","core_reportbuilder"),(0,g.get_string)("deletescheduleconfirm","core_reportbuilder",r.dataset.scheduleName),(0,g.get_string)("delete","core"),{triggerElement:r}).then(function(){var c=new e.default("core_reportbuilder/schedules:delete");return(0,l.deleteSchedule)(a,r.dataset.scheduleId).then((0,h.add)((0,g.get_string)("scheduledeleted","core_reportbuilder"))).then(function(){var a=r.closest(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{preservePagination:!0},a);return c.resolve()}).catch(d.default.exception)}).catch(function(){})}});p=!0};a.init=q}); +function _typeof(a){"@babel/helpers - typeof";if("function"==typeof Symbol&&"symbol"==typeof Symbol.iterator){_typeof=function(a){return typeof a}}else{_typeof=function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a}}return _typeof(a)}define ("core_reportbuilder/schedules",["exports","core/event_dispatcher","core/inplace_editable","core/notification","core/pending","core/prefetch","core/str","core/toast","core_reportbuilder/local/events","core_reportbuilder/local/selectors","core_reportbuilder/local/repository/modals","core_reportbuilder/local/repository/schedules"],function(a,b,c,d,e,f,g,h,i,j,k,l){"use strict";Object.defineProperty(a,"__esModule",{value:!0});a.init=void 0;d=o(d);e=o(e);i=n(i);j=n(j);function m(){if("function"!=typeof WeakMap)return null;var a=new WeakMap;m=function(){return a};return a}function n(a){if(a&&a.__esModule){return a}if(null===a||"object"!==_typeof(a)&&"function"!=typeof a){return{default:a}}var b=m();if(b&&b.has(a)){return b.get(a)}var c={},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a){if(Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;if(f&&(f.get||f.set)){Object.defineProperty(c,e,f)}else{c[e]=a[e]}}}c.default=a;if(b){b.set(a,c)}return c}function o(a){return a&&a.__esModule?a:{default:a}}var p=!1,q=function(a){(0,f.prefetchStrings)("core_reportbuilder",["deleteschedule","deletescheduleconfirm","disableschedule","editscheduledetails","enableschedule","newschedule","schedulecreated","scheduledeleted","schedulesent","scheduleupdated","sendschedule","sendscheduleconfirm"]);(0,f.prefetchStrings)("core",["confirm","delete"]);if(p){return}document.addEventListener("click",function(c){var f=c.target.closest(j.actions.scheduleCreate);if(f){c.preventDefault();var u=(0,k.createScheduleModal)(c.target,(0,g.get_string)("newschedule","core_reportbuilder"),a);u.addEventListener(u.events.FORM_SUBMITTED,function(){(0,g.get_string)("schedulecreated","core_reportbuilder").then(h.add).then(function(){var a=document.querySelector(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{},a)}).catch(d.default.exception)});u.show()}var m=c.target.closest(j.actions.scheduleToggle);if(m){var n=new e.default("core_reportbuilder/schedules:toggle"),o=+!+m.dataset.state;(0,l.toggleSchedule)(a,m.dataset.id,o).then(function(){var a=m.closest("tr");a.classList.toggle("dimmed_text");m.dataset.state=o;var b=o?"disableschedule":"enableschedule";return(0,g.get_string)(b,"core_reportbuilder")}).then(function(a){var b=m.parentElement.querySelector("label[for=\"".concat(m.id,"\"] > span"));b.innerHTML=a;return n.resolve()}).catch(d.default.exception)}var p=c.target.closest(j.actions.scheduleEdit);if(p){c.preventDefault();var q=p.closest(".dropdown").querySelector(".dropdown-toggle"),r=(0,k.createScheduleModal)(q,(0,g.get_string)("editscheduledetails","core_reportbuilder"),a,p.dataset.scheduleId);r.addEventListener(r.events.FORM_SUBMITTED,function(){(0,g.get_string)("scheduleupdated","core_reportbuilder").then(h.add).then(function(){var a=p.closest(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{},a)}).catch(d.default.exception)});r.show()}var s=c.target.closest(j.actions.scheduleSend);if(s){c.preventDefault();var v=s.closest(".dropdown").querySelector(".dropdown-toggle");d.default.saveCancelPromise((0,g.get_string)("sendschedule","core_reportbuilder"),(0,g.get_string)("sendscheduleconfirm","core_reportbuilder",s.dataset.scheduleName),(0,g.get_string)("confirm","core"),{triggerElement:v}).then(function(){var b=new e.default("core_reportbuilder/schedules:send");return(0,l.sendSchedule)(a,s.dataset.scheduleId).then((0,h.add)((0,g.get_string)("schedulesent","core_reportbuilder"))).then(function(){return b.resolve()}).catch(d.default.exception)}).catch(function(){})}var t=c.target.closest(j.actions.scheduleDelete);if(t){c.preventDefault();var w=t.closest(".dropdown").querySelector(".dropdown-toggle");d.default.saveCancelPromise((0,g.get_string)("deleteschedule","core_reportbuilder"),(0,g.get_string)("deletescheduleconfirm","core_reportbuilder",t.dataset.scheduleName),(0,g.get_string)("delete","core"),{triggerElement:w}).then(function(){var c=new e.default("core_reportbuilder/schedules:delete");return(0,l.deleteSchedule)(a,t.dataset.scheduleId).then((0,h.add)((0,g.get_string)("scheduledeleted","core_reportbuilder"))).then(function(){var a=t.closest(j.regions.report);(0,b.dispatchEvent)(i.tableReload,{preservePagination:!0},a);return c.resolve()}).catch(d.default.exception)}).catch(function(){})}});p=!0};a.init=q}); //# sourceMappingURL=schedules.min.js.map diff --git a/reportbuilder/amd/build/schedules.min.js.map b/reportbuilder/amd/build/schedules.min.js.map index bacffc263eb..17aee6a05aa 100644 --- a/reportbuilder/amd/build/schedules.min.js.map +++ b/reportbuilder/amd/build/schedules.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/schedules.js"],"names":["initialized","init","reportId","document","addEventListener","event","scheduleCreate","target","closest","reportSelectors","actions","preventDefault","scheduleModal","events","FORM_SUBMITTED","then","addToast","reportElement","querySelector","regions","report","reportEvents","tableReload","catch","Notification","exception","show","scheduleToggle","pendingPromise","Pending","scheduleStateToggle","dataset","state","id","tableRow","classList","toggle","stringKey","toggleLabel","labelContainer","parentElement","innerHTML","resolve","scheduleEdit","scheduleId","scheduleSend","saveCancelPromise","scheduleName","triggerElement","scheduleDelete","preservePagination"],"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 .\n\n/**\n * Report builder audiences\n *\n * @module core_reportbuilder/schedules\n * @copyright 2021 Paul Holden \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\"use strict\";\n\nimport {dispatchEvent} from 'core/event_dispatcher';\nimport 'core/inplace_editable';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\nimport {prefetchStrings} from 'core/prefetch';\nimport {get_string as getString} from 'core/str';\nimport {add as addToast} from 'core/toast';\nimport * as reportEvents from 'core_reportbuilder/local/events';\nimport * as reportSelectors from 'core_reportbuilder/local/selectors';\nimport {createScheduleModal} from 'core_reportbuilder/local/repository/modals';\nimport {deleteSchedule, sendSchedule, toggleSchedule} from 'core_reportbuilder/local/repository/schedules';\n\nlet initialized = false;\n\n/**\n * Initialise schedules tab\n *\n * @param {Number} reportId\n */\nexport const init = reportId => {\n prefetchStrings('core_reportbuilder', [\n 'deleteschedule',\n 'deletescheduleconfirm',\n 'disableschedule',\n 'editscheduledetails',\n 'enableschedule',\n 'newschedule',\n 'schedulecreated',\n 'scheduledeleted',\n 'schedulesent',\n 'scheduleupdated',\n 'sendschedule',\n 'sendscheduleconfirm',\n ]);\n\n prefetchStrings('core', [\n 'confirm',\n 'delete',\n ]);\n\n if (initialized) {\n // We already added the event listeners (can be called multiple times by mustache template).\n return;\n }\n\n document.addEventListener('click', event => {\n\n // Create schedule.\n const scheduleCreate = event.target.closest(reportSelectors.actions.scheduleCreate);\n if (scheduleCreate) {\n event.preventDefault();\n\n const scheduleModal = createScheduleModal(event.target, getString('newschedule', 'core_reportbuilder'), reportId);\n scheduleModal.addEventListener(scheduleModal.events.FORM_SUBMITTED, () => {\n getString('schedulecreated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n const reportElement = document.querySelector(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n scheduleModal.show();\n }\n\n // Toggle schedule.\n const scheduleToggle = event.target.closest(reportSelectors.actions.scheduleToggle);\n if (scheduleToggle) {\n const pendingPromise = new Pending('core_reportbuilder/schedules:toggle');\n const scheduleStateToggle = +!Number(scheduleToggle.dataset.state);\n\n toggleSchedule(reportId, scheduleToggle.dataset.id, scheduleStateToggle)\n .then(() => {\n const tableRow = scheduleToggle.closest('tr');\n tableRow.classList.toggle('dimmed_text');\n\n scheduleToggle.dataset.state = scheduleStateToggle;\n\n const stringKey = scheduleStateToggle ? 'disableschedule' : 'enableschedule';\n return getString(stringKey, 'core_reportbuilder');\n })\n .then(toggleLabel => {\n const labelContainer = scheduleToggle.parentElement.querySelector(`label[for=\"${scheduleToggle.id}\"] > span`);\n labelContainer.innerHTML = toggleLabel;\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }\n\n // Edit schedule.\n const scheduleEdit = event.target.closest(reportSelectors.actions.scheduleEdit);\n if (scheduleEdit) {\n event.preventDefault();\n\n const scheduleModal = createScheduleModal(scheduleEdit, getString('editscheduledetails', 'core_reportbuilder'),\n reportId, scheduleEdit.dataset.scheduleId);\n scheduleModal.addEventListener(scheduleModal.events.FORM_SUBMITTED, () => {\n getString('scheduleupdated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n const reportElement = scheduleEdit.closest(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n scheduleModal.show();\n }\n\n // Send schedule.\n const scheduleSend = event.target.closest(reportSelectors.actions.scheduleSend);\n if (scheduleSend) {\n event.preventDefault();\n\n Notification.saveCancelPromise(\n getString('sendschedule', 'core_reportbuilder'),\n getString('sendscheduleconfirm', 'core_reportbuilder', scheduleSend.dataset.scheduleName),\n getString('confirm', 'core'),\n {triggerElement: scheduleSend}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/schedules:send');\n\n return sendSchedule(reportId, scheduleSend.dataset.scheduleId)\n .then(addToast(getString('schedulesent', 'core_reportbuilder')))\n .then(() => pendingPromise.resolve())\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n\n // Delete schedule.\n const scheduleDelete = event.target.closest(reportSelectors.actions.scheduleDelete);\n if (scheduleDelete) {\n event.preventDefault();\n\n Notification.saveCancelPromise(\n getString('deleteschedule', 'core_reportbuilder'),\n getString('deletescheduleconfirm', 'core_reportbuilder', scheduleDelete.dataset.scheduleName),\n getString('delete', 'core'),\n {triggerElement: scheduleDelete}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/schedules:delete');\n\n return deleteSchedule(reportId, scheduleDelete.dataset.scheduleId)\n .then(addToast(getString('scheduledeleted', 'core_reportbuilder')))\n .then(() => {\n const reportElement = scheduleDelete.closest(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n });\n\n initialized = true;\n};\n"],"file":"schedules.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/schedules.js"],"names":["initialized","init","reportId","document","addEventListener","event","scheduleCreate","target","closest","reportSelectors","actions","preventDefault","scheduleModal","events","FORM_SUBMITTED","then","addToast","reportElement","querySelector","regions","report","reportEvents","tableReload","catch","Notification","exception","show","scheduleToggle","pendingPromise","Pending","scheduleStateToggle","dataset","state","id","tableRow","classList","toggle","stringKey","toggleLabel","labelContainer","parentElement","innerHTML","resolve","scheduleEdit","triggerElement","scheduleId","scheduleSend","saveCancelPromise","scheduleName","scheduleDelete","preservePagination"],"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 .\n\n/**\n * Report builder audiences\n *\n * @module core_reportbuilder/schedules\n * @copyright 2021 Paul Holden \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\n\"use strict\";\n\nimport {dispatchEvent} from 'core/event_dispatcher';\nimport 'core/inplace_editable';\nimport Notification from 'core/notification';\nimport Pending from 'core/pending';\nimport {prefetchStrings} from 'core/prefetch';\nimport {get_string as getString} from 'core/str';\nimport {add as addToast} from 'core/toast';\nimport * as reportEvents from 'core_reportbuilder/local/events';\nimport * as reportSelectors from 'core_reportbuilder/local/selectors';\nimport {createScheduleModal} from 'core_reportbuilder/local/repository/modals';\nimport {deleteSchedule, sendSchedule, toggleSchedule} from 'core_reportbuilder/local/repository/schedules';\n\nlet initialized = false;\n\n/**\n * Initialise schedules tab\n *\n * @param {Number} reportId\n */\nexport const init = reportId => {\n prefetchStrings('core_reportbuilder', [\n 'deleteschedule',\n 'deletescheduleconfirm',\n 'disableschedule',\n 'editscheduledetails',\n 'enableschedule',\n 'newschedule',\n 'schedulecreated',\n 'scheduledeleted',\n 'schedulesent',\n 'scheduleupdated',\n 'sendschedule',\n 'sendscheduleconfirm',\n ]);\n\n prefetchStrings('core', [\n 'confirm',\n 'delete',\n ]);\n\n if (initialized) {\n // We already added the event listeners (can be called multiple times by mustache template).\n return;\n }\n\n document.addEventListener('click', event => {\n\n // Create schedule.\n const scheduleCreate = event.target.closest(reportSelectors.actions.scheduleCreate);\n if (scheduleCreate) {\n event.preventDefault();\n\n const scheduleModal = createScheduleModal(event.target, getString('newschedule', 'core_reportbuilder'), reportId);\n scheduleModal.addEventListener(scheduleModal.events.FORM_SUBMITTED, () => {\n getString('schedulecreated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n const reportElement = document.querySelector(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n scheduleModal.show();\n }\n\n // Toggle schedule.\n const scheduleToggle = event.target.closest(reportSelectors.actions.scheduleToggle);\n if (scheduleToggle) {\n const pendingPromise = new Pending('core_reportbuilder/schedules:toggle');\n const scheduleStateToggle = +!Number(scheduleToggle.dataset.state);\n\n toggleSchedule(reportId, scheduleToggle.dataset.id, scheduleStateToggle)\n .then(() => {\n const tableRow = scheduleToggle.closest('tr');\n tableRow.classList.toggle('dimmed_text');\n\n scheduleToggle.dataset.state = scheduleStateToggle;\n\n const stringKey = scheduleStateToggle ? 'disableschedule' : 'enableschedule';\n return getString(stringKey, 'core_reportbuilder');\n })\n .then(toggleLabel => {\n const labelContainer = scheduleToggle.parentElement.querySelector(`label[for=\"${scheduleToggle.id}\"] > span`);\n labelContainer.innerHTML = toggleLabel;\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }\n\n // Edit schedule.\n const scheduleEdit = event.target.closest(reportSelectors.actions.scheduleEdit);\n if (scheduleEdit) {\n event.preventDefault();\n\n // Use triggerElement to return focus to the action menu toggle.\n const triggerElement = scheduleEdit.closest('.dropdown').querySelector('.dropdown-toggle');\n const scheduleModal = createScheduleModal(triggerElement, getString('editscheduledetails', 'core_reportbuilder'),\n reportId, scheduleEdit.dataset.scheduleId);\n scheduleModal.addEventListener(scheduleModal.events.FORM_SUBMITTED, () => {\n getString('scheduleupdated', 'core_reportbuilder')\n .then(addToast)\n .then(() => {\n const reportElement = scheduleEdit.closest(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {}, reportElement);\n return;\n })\n .catch(Notification.exception);\n });\n\n scheduleModal.show();\n }\n\n // Send schedule.\n const scheduleSend = event.target.closest(reportSelectors.actions.scheduleSend);\n if (scheduleSend) {\n event.preventDefault();\n\n // Use triggerElement to return focus to the action menu toggle.\n const triggerElement = scheduleSend.closest('.dropdown').querySelector('.dropdown-toggle');\n Notification.saveCancelPromise(\n getString('sendschedule', 'core_reportbuilder'),\n getString('sendscheduleconfirm', 'core_reportbuilder', scheduleSend.dataset.scheduleName),\n getString('confirm', 'core'),\n {triggerElement}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/schedules:send');\n\n return sendSchedule(reportId, scheduleSend.dataset.scheduleId)\n .then(addToast(getString('schedulesent', 'core_reportbuilder')))\n .then(() => pendingPromise.resolve())\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n\n // Delete schedule.\n const scheduleDelete = event.target.closest(reportSelectors.actions.scheduleDelete);\n if (scheduleDelete) {\n event.preventDefault();\n\n // Use triggerElement to return focus to the action menu toggle.\n const triggerElement = scheduleDelete.closest('.dropdown').querySelector('.dropdown-toggle');\n Notification.saveCancelPromise(\n getString('deleteschedule', 'core_reportbuilder'),\n getString('deletescheduleconfirm', 'core_reportbuilder', scheduleDelete.dataset.scheduleName),\n getString('delete', 'core'),\n {triggerElement}\n ).then(() => {\n const pendingPromise = new Pending('core_reportbuilder/schedules:delete');\n\n return deleteSchedule(reportId, scheduleDelete.dataset.scheduleId)\n .then(addToast(getString('scheduledeleted', 'core_reportbuilder')))\n .then(() => {\n const reportElement = scheduleDelete.closest(reportSelectors.regions.report);\n dispatchEvent(reportEvents.tableReload, {preservePagination: true}, reportElement);\n return pendingPromise.resolve();\n })\n .catch(Notification.exception);\n }).catch(() => {\n return;\n });\n }\n });\n\n initialized = true;\n};\n"],"file":"schedules.min.js"} \ No newline at end of file diff --git a/reportbuilder/amd/src/reports_list.js b/reportbuilder/amd/src/reports_list.js index bf5c91dcc19..65efe42133a 100644 --- a/reportbuilder/amd/src/reports_list.js +++ b/reportbuilder/amd/src/reports_list.js @@ -70,7 +70,9 @@ export const init = () => { event.preventDefault(); // Reload current report page after submission. - const reportModal = createReportModal(reportEdit, getString('editreportdetails', 'core_reportbuilder'), + // Use triggerElement to return focus to the action menu toggle. + const triggerElement = reportEdit.closest('.dropdown').querySelector('.dropdown-toggle'); + const reportModal = createReportModal(triggerElement, getString('editreportdetails', 'core_reportbuilder'), reportEdit.dataset.reportId); reportModal.addEventListener(reportModal.events.FORM_SUBMITTED, () => { const reportElement = event.target.closest(reportSelectors.regions.report); @@ -91,11 +93,13 @@ export const init = () => { if (reportDelete) { event.preventDefault(); + // Use triggerElement to return focus to the action menu toggle. + const triggerElement = reportDelete.closest('.dropdown').querySelector('.dropdown-toggle'); Notification.saveCancelPromise( getString('deletereport', 'core_reportbuilder'), getString('deletereportconfirm', 'core_reportbuilder', reportDelete.dataset.reportName), getString('delete', 'core'), - {triggerElement: reportDelete} + {triggerElement} ).then(() => { const pendingPromise = new Pending('core_reportbuilder/reports:delete'); const reportElement = event.target.closest(reportSelectors.regions.report); diff --git a/reportbuilder/amd/src/schedules.js b/reportbuilder/amd/src/schedules.js index ce78d35c11c..a5fb0273a2c 100644 --- a/reportbuilder/amd/src/schedules.js +++ b/reportbuilder/amd/src/schedules.js @@ -119,7 +119,9 @@ export const init = reportId => { if (scheduleEdit) { event.preventDefault(); - const scheduleModal = createScheduleModal(scheduleEdit, getString('editscheduledetails', 'core_reportbuilder'), + // Use triggerElement to return focus to the action menu toggle. + const triggerElement = scheduleEdit.closest('.dropdown').querySelector('.dropdown-toggle'); + const scheduleModal = createScheduleModal(triggerElement, getString('editscheduledetails', 'core_reportbuilder'), reportId, scheduleEdit.dataset.scheduleId); scheduleModal.addEventListener(scheduleModal.events.FORM_SUBMITTED, () => { getString('scheduleupdated', 'core_reportbuilder') @@ -140,11 +142,13 @@ export const init = reportId => { if (scheduleSend) { event.preventDefault(); + // Use triggerElement to return focus to the action menu toggle. + const triggerElement = scheduleSend.closest('.dropdown').querySelector('.dropdown-toggle'); Notification.saveCancelPromise( getString('sendschedule', 'core_reportbuilder'), getString('sendscheduleconfirm', 'core_reportbuilder', scheduleSend.dataset.scheduleName), getString('confirm', 'core'), - {triggerElement: scheduleSend} + {triggerElement} ).then(() => { const pendingPromise = new Pending('core_reportbuilder/schedules:send'); @@ -162,11 +166,13 @@ export const init = reportId => { if (scheduleDelete) { event.preventDefault(); + // Use triggerElement to return focus to the action menu toggle. + const triggerElement = scheduleDelete.closest('.dropdown').querySelector('.dropdown-toggle'); Notification.saveCancelPromise( getString('deleteschedule', 'core_reportbuilder'), getString('deletescheduleconfirm', 'core_reportbuilder', scheduleDelete.dataset.scheduleName), getString('delete', 'core'), - {triggerElement: scheduleDelete} + {triggerElement} ).then(() => { const pendingPromise = new Pending('core_reportbuilder/schedules:delete');