From b1f844750ba8bf508431a44cda486b76d61804c9 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Tue, 24 Jan 2023 16:22:07 +0800 Subject: [PATCH] MDL-77009 tool_monitor: Replace YUI dropdown with ESM version --- admin/tool/monitor/amd/build/dropdown.min.js | 3 + .../monitor/amd/build/dropdown.min.js.map | 1 + admin/tool/monitor/amd/src/dropdown.js | 74 +++++++++++ admin/tool/monitor/classes/rule_form.php | 16 ++- admin/tool/monitor/edit.php | 4 - .../moodle-tool_monitor-dropdown-debug.js | 125 ------------------ .../moodle-tool_monitor-dropdown-min.js | 1 - .../moodle-tool_monitor-dropdown.js | 125 ------------------ .../tool/monitor/yui/src/dropdown/build.json | 10 -- .../monitor/yui/src/dropdown/js/dropdown.js | 120 ----------------- .../yui/src/dropdown/meta/dropdown.json | 9 -- 11 files changed, 91 insertions(+), 397 deletions(-) create mode 100644 admin/tool/monitor/amd/build/dropdown.min.js create mode 100644 admin/tool/monitor/amd/build/dropdown.min.js.map create mode 100644 admin/tool/monitor/amd/src/dropdown.js delete mode 100644 admin/tool/monitor/yui/build/moodle-tool_monitor-dropdown/moodle-tool_monitor-dropdown-debug.js delete mode 100644 admin/tool/monitor/yui/build/moodle-tool_monitor-dropdown/moodle-tool_monitor-dropdown-min.js delete mode 100644 admin/tool/monitor/yui/build/moodle-tool_monitor-dropdown/moodle-tool_monitor-dropdown.js delete mode 100644 admin/tool/monitor/yui/src/dropdown/build.json delete mode 100644 admin/tool/monitor/yui/src/dropdown/js/dropdown.js delete mode 100644 admin/tool/monitor/yui/src/dropdown/meta/dropdown.json diff --git a/admin/tool/monitor/amd/build/dropdown.min.js b/admin/tool/monitor/amd/build/dropdown.min.js new file mode 100644 index 00000000000..3c01f25743f --- /dev/null +++ b/admin/tool/monitor/amd/build/dropdown.min.js @@ -0,0 +1,3 @@ +define("tool_monitor/dropdown",["exports"],(function(_exports){Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0;_exports.init=()=>{const componentSelector=document.querySelector('[data-field="component"]'),eventSelector=document.querySelector('[data-field="eventname"]'),matchesComponent=(component,event)=>event.startsWith("\\".concat(component,"\\")),getEventOptionsForComponent=component=>(component=>Object.entries(JSON.parse(eventSelector.dataset.eventlist)).filter(((_ref,index)=>{let[eventName]=_ref;return 0===index||matchesComponent(component,eventName)})))(component).map((_ref2=>{let[name,description]=_ref2;const option=document.createElement("option");return option.value=name,option.text=description,option}));componentSelector.addEventListener("change",(()=>{eventSelector.innerHTML="",getEventOptionsForComponent(componentSelector.value).forEach((option=>{eventSelector.options.add(option)})),eventSelector.options.value=""}));const initialCount=eventSelector.options.length;[...eventSelector.options].reverse().forEach(((option,index)=>{""!==option.value&&(matchesComponent(componentSelector.value,option.value)||eventSelector.options.remove(initialCount-index-1))}))}})); + +//# sourceMappingURL=dropdown.min.js.map \ No newline at end of file diff --git a/admin/tool/monitor/amd/build/dropdown.min.js.map b/admin/tool/monitor/amd/build/dropdown.min.js.map new file mode 100644 index 00000000000..93bf5355381 --- /dev/null +++ b/admin/tool/monitor/amd/build/dropdown.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dropdown.min.js","sources":["../src/dropdown.js"],"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 * Dropdown handler for the Event monitor tool.\n *\n * @module tool_monitor/dropdown\n * @copyright 2023 Andrew Lyons \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nexport const init = () => {\n const componentSelector = document.querySelector('[data-field=\"component\"]');\n const eventSelector = document.querySelector('[data-field=\"eventname\"]');\n\n const matchesComponent = (component, event) => event.startsWith(`\\\\${component}\\\\`);\n\n // Helper to fetch events for a component.\n const getEventsForComponent = (component) => {\n const events = Object.entries(JSON.parse(eventSelector.dataset.eventlist));\n return events.filter(([eventName], index) => {\n // Always return the Choose... option.\n if (index === 0) {\n return true;\n }\n return matchesComponent(component, eventName);\n });\n };\n\n // Helper to fetch the