AutorÃa | Ultima modificación | Ver Log |
import ModalFactory from 'core/modal_factory';import ModalForm from 'core_form/modalform';import * as Str from 'core/str';let modalForm = null;let responseModal = null;let contextid = null;let appendurl = false;/*** Display the form modal and load the form.** @param {Event} e*/async function showForm(e) {e.preventDefault();M.util.js_pending('block_messageteacher_show');const link = e.currentTarget;modalForm = new ModalForm({formClass: 'block_messageteacher\\message_form',args: {contextid: contextid,appendurl: appendurl,referurl: link.dataset.referurl,courseid: link.dataset.courseid,recipientid: link.dataset.recipientid},modalConfig: {title: await Str.get_string('pluginname', 'block_messageteacher')},saveButtonText: await Str.get_string('send', 'block_messageteacher'),returnFocus: link});modalForm.addEventListener(modalForm.events.FORM_SUBMITTED, submitForm);await modalForm.show();M.util.js_complete('block_messageteacher_show');}/*** Send the message entered into the form using a core webservice.** @param {Event} e*/async function submitForm(e) {M.util.js_pending('block_messageteacher_send');if (e.detail < 1) {responseModal.setBody(e.errormessage);} else {const sent = await Str.get_string('messagesent', 'block_messageteacher');responseModal.setBody(sent);}responseModal.show();M.util.js_complete('block_messageteacher_send');}/*** Create modals.** Create a Save/Cancel modal to display the form, and a Cancel modal for confirmation/error messages.*/export const init = async function() {const title = await Str.get_string('pluginname', 'block_messageteacher');responseModal = await ModalFactory.create({type: ModalFactory.types.DEFAULT,title: title});var links = document.querySelectorAll('.messageteacher_link');for (var i = 0; i < links.length; i++) {if (contextid === null) {contextid = links[i].parentElement.parentElement.dataset.contextid;appendurl = links[i].parentElement.parentElement.dataset.appendurl;}links[i].addEventListener('click', showForm);}};