AutorÃa | Ultima modificación | Ver Log |
{"version":3,"file":"aiprovider_instance_management_table.min.js","sources":["../src/aiprovider_instance_management_table.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 <http://www.gnu.org/licenses/>.\n\nimport PluginManagementTable from 'core_admin/plugin_management_table';\nimport {call as fetchMany} from 'core/ajax';\nimport {refreshTableContent} from 'core_table/dynamic';\nim
port Pending from 'core/pending';\nimport {fetchNotifications} from 'core/notification';\nimport {prefetchStrings} from 'core/prefetch';\nimport {getString} from 'core/str';\nimport DeleteCancelModal from 'core/modal_delete_cancel';\nimport ModalEvents from 'core/modal_events';\n\nlet watching = false;\n\n/**\n * Handles setting plugin state for the AI provider management table.\n *\n * @module core_ai/aiprovider_instance_management_table\n * @copyright 2024 Matt Porritt <matt.porritt@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\nexport default class extends PluginManagementTable {\n constructor() {\n super();\n this.addClickHandler(this.handleDelete);\n }\n\n /**\n * Initialise an instance of the class.\n *\n * This is just a way of making it easier to initialise an instance of the class from PHP.\n */\n static init() {\n if (watching) {\n return;\n }\n\n prefetchStrings('core_ai', [\n
'providerinstancedelete',\n 'providerinstancedeleteconfirm',\n ]);\n\n watching = true;\n new this();\n }\n\n /**\n * Call the delete service.\n *\n * @param {string} methodname The web service to call\n * @param {number} providerid The provider id.\n * @return {Promise} The promise.\n */\n deleteProvider(methodname, providerid) {\n return fetchMany([{\n methodname,\n args: {\n providerid,\n },\n }])[0];\n }\n\n /**\n * Handle delete.\n *\n * @param {HTMLElement} tableRoot\n * @param {Event} e\n */\n async handleDelete(tableRoot, e) {\n const deleteElement = e.target.closest('[data-delete-method]');\n if (deleteElement) {\n e.preventDefault();\n const providerId = e.target.dataset.id;\n const deleteMethod = e.target.dataset.deleteMethod;\n const bodyParams = {\n provider:
e.target.dataset.provider,\n name: e.target.dataset.name,\n };\n const modal = await DeleteCancelModal.create({\n title: getString('providerinstancedelete', 'core_ai'),\n body: getString('providerinstancedeleteconfirm', 'core_ai', bodyParams),\n show: true,\n removeOnClose: true,\n });\n\n // Handle delete event.\n modal.getRoot().on(ModalEvents.delete, async(e) => {\n e.preventDefault();\n const pendingPromise = new Pending('core_table/dynamic:deleteProvider');\n await this.deleteProvider(deleteMethod, providerId);\n // Reload the table, so we get the updated list of providers, and any messages.\n await Promise.all([\n refreshTableContent(tableRoot),\n fetchNotifications(),\n ]);\n modal.destroy();\n pendingPromise.resolve(
);\n });\n }\n }\n}\n"],"names":["watching","PluginManagementTable","constructor","addClickHandler","this","handleDelete","deleteProvider","methodname","providerid","args","tableRoot","e","target","closest","preventDefault","providerId","dataset","id","deleteMethod","bodyParams","provider","name","modal","DeleteCancelModal","create","title","body","show","removeOnClose","getRoot","on","ModalEvents","delete","async","pendingPromise","Pending","Promise","all","destroy","resolve"],"mappings":"0wBAyBIA,UAAW;;;;;;;4BAScC,iCACzBC,2BAESC,gBAAgBC,KAAKC,4BAStBL,yCAIY,UAAW,CACvB,yBACA,kCAGJA,UAAW,MACPI,MAURE,eAAeC,WAAYC,mBAChB,cAAU,CAAC,CACdD,WAAAA,WACAE,KAAM,CACFD,WAAAA,eAEJ,sBASWE,UAAWC,MACJA,EAAEC,OAAOC,QAAQ,wBACpB,CACfF,EAAEG,uBACIC,WAAaJ,EAAEC,OAAOI,QAAQC,GAC9BC,aAAeP,EAAEC,OAAOI,QAAQE,aAChCC,WAAa,CACfC,SAAUT,EAAEC,OAAOI,QAAQI,SAC3BC,KAAMV,EAAEC,OAAOI,QAAQK,MAErBC,YAAcC,6BAAkBC,OAAO,CACzCC,OAAO,kBAAU,yBAA0B,WAC3CC,MAAM,kBAAU,gCAAiC,UAAWP,YAC5DQ,MAAM,EACNC,eAAe,IAInBN,MAAMO,UAAUC,GAAGC,sBAAYC,
QAAQC,MAAAA,IACnCtB,EAAEG,uBACIoB,eAAiB,IAAIC,iBAAQ,2CAC7B/B,KAAKE,eAAeY,aAAcH,kBAElCqB,QAAQC,IAAI,EACd,gCAAoB3B,YACpB,wCAEJY,MAAMgB,UACNJ,eAAeK"}