Файловый менеджер - Редактировать - /home/harasnat/www/learning/admin/tool/dataprivacy/amd/src/selectedcourses.js
Назад
// 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/>. /** * Selected courses. * * @module tool_dataprivacy/selectedcourses * @copyright 2021 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @since Moodle 4.3 */ import Ajax from 'core/ajax'; import Notification from 'core/notification'; import ModalSaveCancel from 'core/modal_save_cancel'; import ModalEvents from 'core/modal_events'; import Fragment from 'core/fragment'; import {prefetchStrings} from 'core/prefetch'; import {getString} from 'core/str'; prefetchStrings('tool_dataprivacy', [ 'selectcourses', 'approverequest', 'errornoselectedcourse', ]); /** * Selected Courses popup modal. * */ export default class SelectedCourses { /** * @var {String} contextId Context ID to load the fragment. * @private */ contextId = 0; /** * @var {String} requestId ID of data export request. * @private */ requestId = 0; /** * Constructor * * @param {String} contextId Context ID to load the fragment. * @param {String} requestId ID of data export request. */ constructor(contextId, requestId) { this.contextId = contextId; this.requestId = requestId; // Now create the modal. ModalSaveCancel.create({ title: getString('selectcourses', 'tool_dataprivacy'), body: this.getBody({requestid: requestId}), large: true, removeOnClose: true, buttons: { save: getString('approverequest', 'tool_dataprivacy'), }, }).then((modal) => { this.modal = modal; return modal; }).then((modal) => { // We catch the modal save event, and use it to submit the form inside the modal. // Triggering a form submission will give JS validation scripts a chance to check for errors. modal.getRoot().on(ModalEvents.save, this.submitForm.bind(this)); // We also catch the form submit event and use it to submit the form with ajax. modal.getRoot().on('submit', 'form', this.submitFormAjax.bind(this)); modal.show(); return modal; }).catch(Notification.exception); } /** * Get body of modal. * * @method getBody * @param {Object} formdata * @private * @return {Promise} */ getBody(formdata) { const params = formdata ? {jsonformdata: JSON.stringify(formdata)} : null; // Get the content of the modal. return Fragment.loadFragment('tool_dataprivacy', 'selectcourses_form', this.contextId, params); } /** * This triggers a form submission, so that any mform elements can do final tricks before the form submission is processed. * * @method submitForm * @param {Event} e Form submission event. * @private */ submitForm(e) { e.preventDefault(); this.modal.getRoot().find('form').submit(); } /** * Submit select courses form using ajax. * * @method submitFormAjax * @private * @param {Event} e Form submission event. */ submitFormAjax(e) { e.preventDefault(); // Convert all the form elements values to a serialised string. let formData = this.modal.getRoot().find('form').serialize(); if (formData.indexOf('coursecontextids') === -1) { const customSelect = this.modal.getRoot().find('.custom-select'); const invalidText = this.modal.getRoot().find('.invalid-feedback'); customSelect.addClass('is-invalid'); invalidText.attr('style', 'display: block'); getString('errornoselectedcourse', 'tool_dataprivacy').then(value => { invalidText.empty().append(value); return; }).catch(Notification.exception); return; } Ajax.call([{ methodname: 'tool_dataprivacy_submit_selected_courses_form', args: {requestid: this.requestId, jsonformdata: JSON.stringify(formData)}, }])[0] .then((data) => { if (data.warnings.length > 0) { this.modal.setBody(this.getBody(formData)); } else { this.modal.destroy(); document.location.reload(); } return data; }) .catch((error) => Notification.exception(error)); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0.03 |
proxy
|
phpinfo
|
Настройка