AutorÃa | Ultima modificación | Ver Log |
// 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/>.
/**
* unilabel helper for activity picker button
*
* @author Andreas Grabs <info@grabs-edv.de>
* @copyright 2018 onwards Grabs EDV {@link https://www.grabs-edv.de}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
import $ from 'jquery';
import log from 'core/log';
export const init = async(formid, inputidbase) => {
const str = await import('core/str');
const deletestr = await str.get_string('delete');
// The inputswitcher switches an text input element into a hidden element and added an activitylink clone.
const inputswitcher = await import('mod_unilabel/activity_picker_input_switcher');
let pickerlist = document.querySelector('#unilabel-activity-picker-list');
let links = pickerlist.querySelectorAll('a.activity-picker-link');
let maybeactivityelement;
log.debug('Get all picker-button-links');
let pickerbuttons = document.querySelectorAll('a.unilabel-picker-button-link');
log.debug(pickerbuttons);
pickerbuttons.forEach(el => {
try {
let id = el.parentElement.parentElement.parentElement.id.split("_").slice(-1);
if (id) {
let currentinput = document.querySelector('#' + inputidbase + id);
log.debug(currentinput.value);
links.forEach(link => {
if (link.href == currentinput.value) {
let activitylinksrc = link.closest('.activitytitle');
maybeactivityelement = currentinput.parentElement.querySelector(
'div.activitytitle.unilabel-input-replacement'
);
if (maybeactivityelement) {
return;
}
inputswitcher.switchInput(currentinput, activitylinksrc, currentinput.value, false, deletestr);
}
});
}
} catch (error) {
log.debug(error);
}
});
$('[data-button="' + formid + '"]').on('click', function(event) {
event.preventDefault();
// Get the id (repeat number) from parent element.
var id = $(this).parent().parent().parent().attr('id').split("_").slice(-1);
var currentinput = inputidbase + id;
$('#unilabel-modal-activity-picker-' + formid).attr('data-inputid', currentinput);
$('#unilabel-modal-activity-picker-' + formid).modal('show');
});
};