This repository has been archived on 2025-01-01. You can view files and clone it, but cannot push or open issues or pull requests.
moodle-local_treestudyplan/amd/src/page-invitemanager.js
2024-07-19 17:48:21 +02:00

71 lines
2.4 KiB
JavaScript

/* eslint no-var: "error" */
/* eslint no-unused-vars: "off" */
/* eslint linebreak-style: "off" */
/* eslint promise/no-nesting: "off" */
/* eslint-env es6*/
/* eslint camelcase: "off" */
// Put this file in path/to/plugin/amd/src
// You can call it anything you like
import Debugger from './util/debugger';
import {get_strings} from 'core/str';
import {getStrings} from 'core/str';
import ModalFactory from 'core/modal_factory';
import ModalEvents from 'core/modal_events';
/* Determine the proper getstrings function to use (MDL4.3+ recommends use of getStrings, which is jquery independent) */
const getstrFunc = (getStrings !== undefined) ? getStrings : get_strings;
let debug = new Debugger("treestudyplan-invitemanager");
/**
* Init function for page-invitemanager
*/
export function init() {
getstrFunc([
{key: 'ok', component: 'core'},
{key: 'confirm', component: 'core'},
]).then((s) => {
const strOk = s[0];
const strConfirm = s[1];
const els = document.querySelectorAll('.path-local-treestudyplan a.m-action-confirm');
els.forEach((el) => {
el.addEventListener('click', (e) => {
e.preventDefault();
const link = e.currentTarget;
let href = link.getAttribute('data-actionhref');
let text = link.getAttribute('data-confirmtext');
let oktext = link.getAttribute('data-confirmbtn');
if (undefined == oktext) {
oktext = strOk;
}
let title = link.getAttribute('data-confirmtitle');
if (undefined == title) {
title = strConfirm;
}
ModalFactory.create({
type: ModalFactory.types.SAVE_CANCEL,
title: title,
body: text,
}).then((modal) => {
modal.setSaveButtonText(oktext);
let root = modal.getRoot();
root.on(ModalEvents.save, () => {
window.location = href;
});
modal.modal[0].style["max-width"] = "345px";
modal.show();
return modal;
}).catch((x) => {
debug.warn(x);
});
});
});
return;
}).catch((x) => {
debug.warn(x);
});
}