Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
providerdeleteconfirm.js
Created
2 years ago
Diff never expires
Clear
Export
Share
Explain
5 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
94 lines
Copy
23 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
114 lines
Copy
// This file is part of Moodle - http://moodle.org/ //
// This file is part of Moodle - http://moodle.org/ //
// Moodle is free software: you can redistribute it and/or modify
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// (at your option) any later version.
//
//
// Moodle is distributed in the hope that it will be useful,
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// GNU General Public License for more details.
//
//
// You should have received a copy of the GNU General Public License
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
/**
* AI provider deletion confirmation.
* AI provider deletion confirmation.
* Renders a confirmation modal when deleting an AI provider.
* Renders a confirmation modal when deleting an AI provider.
*
*
* @module core_ai/providerdeleteconfirm
* @module core_ai/providerdeleteconfirm
* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>
* @copyright 2024 Matt Porritt <matt.porritt@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
*/
import {getString} from 'core/str';
import {getString} from 'core/str';
Copy
Copied
Copy
Copied
import {prefetchStrings} from 'core/prefetch';
import DeleteCancelModal from 'core/modal_delete_cancel';
import DeleteCancelModal from 'core/modal_delete_cancel';
import ModalEvents from 'core/modal_events';
import ModalEvents from 'core/modal_events';
import Ajax from 'core/ajax';
import Ajax from 'core/ajax';
Copy
Copied
Copy
Copied
import {refreshTableContent} from 'core_table/dynamic';
import {fetchNotifications} from 'core/notification';
import * as Selectors from 'core_table/local/dynamic/selectors';
import * as DynamicTable from 'core_table/dynamic';
/**
/**
* Call the delete service.
* Call the delete service.
*
*
* @param {String} providerid The provider id.
* @param {String} providerid The provider id.
* @return {Promise} The promise.
* @return {Promise} The promise.
*/
*/
const deleteProviderService = async(providerid) => Ajax.call([{
const deleteProviderService = async(providerid) => Ajax.call([{
methodname: 'core_ai_delete_provider_instance',
methodname: 'core_ai_delete_provider_instance',
args: {
args: {
providerid: providerid,
providerid: providerid,
},
},
}])[0];
}])[0];
/**
/**
* Handle the delete event.
* Handle the delete event.
* Calls the delete service and reloads the page.
* Calls the delete service and reloads the page.
*
*
* @param {String} providerid The provider id.
* @param {String} providerid The provider id.
* @returns {Promise<void>}
* @returns {Promise<void>}
*/
*/
const handleDelete = async(providerid) => {
const handleDelete = async(providerid) => {
await deleteProviderService(providerid);
await deleteProviderService(providerid);
Copy
Copied
Copy
Copied
//
Refresh
the
page
, so we get the updated list of providers, and any messages.
//
Reload
the
table
, so we get the updated list of providers, and any messages.
window.location.reload();
const tableRoot = document.querySelector(Selectors.main.region);
await Promise.all([
refreshTableContent(tableRoot),
fetchNotifications(),
]);
};
};
/**
/**
* Show the delete confirmation modal.
* Show the delete confirmation modal.
*
*
* @param {Event} e The event object.
* @param {Event} e The event object.
*/
*/
const showDeleteModal = async(e) => {
const showDeleteModal = async(e) => {
const providerid = e.target.dataset.id;
const providerid = e.target.dataset.id;
const provider = e.target.dataset.provider;
const provider = e.target.dataset.provider;
const name = e.target.dataset.name;
const name = e.target.dataset.name;
const bodyparams = {
const bodyparams = {
provider: provider,
provider: provider,
name: name,
name: name,
};
};
const modal = await DeleteCancelModal.create({
const modal = await DeleteCancelModal.create({
Copy
Copied
Copy
Copied
title:
await
getString('providerinstancedelete', 'core_ai'),
title:
getString('providerinstancedelete', 'core_ai'),
body:
await
getString('providerinstancedeleteconfirm', 'core_ai', bodyparams),
body:
getString('providerinstancedeleteconfirm', 'core_ai', bodyparams),
show: true,
show: true,
removeOnClose: true,
removeOnClose: true,
});
});
// Handle delete event.
// Handle delete event.
modal.getRoot().on(ModalEvents.delete, (e) => {
modal.getRoot().on(ModalEvents.delete, (e) => {
e.preventDefault();
e.preventDefault();
handleDelete(providerid);
handleDelete(providerid);
modal.destroy();
modal.destroy();
});
});
};
};
/**
/**
* Initialise the delete listeners.
* Initialise the delete listeners.
*
*
*/
*/
export const init = () => {
export const init = () => {
Copy
Copied
Copy
Copied
prefetchStrings('core_ai', [
'providerinstancedelete',
'providerinstancedeleteconfirm',
]);
document.querySelectorAll('.ai-provider-delete').forEach((button) => {
document.querySelectorAll('.ai-provider-delete').forEach((button) => {
button.addEventListener('click', (e) => {
button.addEventListener('click', (e) => {
e.preventDefault();
e.preventDefault();
showDeleteModal(e);
showDeleteModal(e);
});
});
});
});
Copy
Copied
Copy
Copied
document.addEventListener(DynamicTable.Events.tableContentRefreshed, () => {
init();
}, {once: true});
};
};
Copy
Copied
Copy
Copied
Saved diffs
Original text
Open file
// This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * AI provider deletion confirmation. * Renders a confirmation modal when deleting an AI provider. * * @module core_ai/providerdeleteconfirm * @copyright 2024 Matt Porritt <matt.porritt@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ import {getString} from 'core/str'; import DeleteCancelModal from 'core/modal_delete_cancel'; import ModalEvents from 'core/modal_events'; import Ajax from 'core/ajax'; /** * Call the delete service. * * @param {String} providerid The provider id. * @return {Promise} The promise. */ const deleteProviderService = async(providerid) => Ajax.call([{ methodname: 'core_ai_delete_provider_instance', args: { providerid: providerid, }, }])[0]; /** * Handle the delete event. * Calls the delete service and reloads the page. * * @param {String} providerid The provider id. * @returns {Promise<void>} */ const handleDelete = async(providerid) => { await deleteProviderService(providerid); // Refresh the page, so we get the updated list of providers, and any messages. window.location.reload(); }; /** * Show the delete confirmation modal. * * @param {Event} e The event object. */ const showDeleteModal = async(e) => { const providerid = e.target.dataset.id; const provider = e.target.dataset.provider; const name = e.target.dataset.name; const bodyparams = { provider: provider, name: name, }; const modal = await DeleteCancelModal.create({ title: await getString('providerinstancedelete', 'core_ai'), body: await getString('providerinstancedeleteconfirm', 'core_ai', bodyparams), show: true, removeOnClose: true, }); // Handle delete event. modal.getRoot().on(ModalEvents.delete, (e) => { e.preventDefault(); handleDelete(providerid); modal.destroy(); }); }; /** * Initialise the delete listeners. * */ export const init = () => { document.querySelectorAll('.ai-provider-delete').forEach((button) => { button.addEventListener('click', (e) => { e.preventDefault(); showDeleteModal(e); }); }); };
Changed text
Open file
// This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * AI provider deletion confirmation. * Renders a confirmation modal when deleting an AI provider. * * @module core_ai/providerdeleteconfirm * @copyright 2024 Matt Porritt <matt.porritt@moodle.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ import {getString} from 'core/str'; import {prefetchStrings} from 'core/prefetch'; import DeleteCancelModal from 'core/modal_delete_cancel'; import ModalEvents from 'core/modal_events'; import Ajax from 'core/ajax'; import {refreshTableContent} from 'core_table/dynamic'; import {fetchNotifications} from 'core/notification'; import * as Selectors from 'core_table/local/dynamic/selectors'; import * as DynamicTable from 'core_table/dynamic'; /** * Call the delete service. * * @param {String} providerid The provider id. * @return {Promise} The promise. */ const deleteProviderService = async(providerid) => Ajax.call([{ methodname: 'core_ai_delete_provider_instance', args: { providerid: providerid, }, }])[0]; /** * Handle the delete event. * Calls the delete service and reloads the page. * * @param {String} providerid The provider id. * @returns {Promise<void>} */ const handleDelete = async(providerid) => { await deleteProviderService(providerid); // Reload the table, so we get the updated list of providers, and any messages. const tableRoot = document.querySelector(Selectors.main.region); await Promise.all([ refreshTableContent(tableRoot), fetchNotifications(), ]); }; /** * Show the delete confirmation modal. * * @param {Event} e The event object. */ const showDeleteModal = async(e) => { const providerid = e.target.dataset.id; const provider = e.target.dataset.provider; const name = e.target.dataset.name; const bodyparams = { provider: provider, name: name, }; const modal = await DeleteCancelModal.create({ title: getString('providerinstancedelete', 'core_ai'), body: getString('providerinstancedeleteconfirm', 'core_ai', bodyparams), show: true, removeOnClose: true, }); // Handle delete event. modal.getRoot().on(ModalEvents.delete, (e) => { e.preventDefault(); handleDelete(providerid); modal.destroy(); }); }; /** * Initialise the delete listeners. * */ export const init = () => { prefetchStrings('core_ai', [ 'providerinstancedelete', 'providerinstancedeleteconfirm', ]); document.querySelectorAll('.ai-provider-delete').forEach((button) => { button.addEventListener('click', (e) => { e.preventDefault(); showDeleteModal(e); }); }); document.addEventListener(DynamicTable.Events.tableContentRefreshed, () => { init(); }, {once: true}); };
Find difference