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** @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) => {let currentinput;let maybeactivityelement;let modalid = 'unilabel-modal-activity-picker-' + formid;const str = await import('core/str');const deletestr = await str.get_string('delete');const inputswitcher = await import('mod_unilabel/activity_picker_input_switcher');$('#' + modalid).on('show.bs.modal', function() {$('#' + modalid).appendTo('body');currentinput = document.querySelector('#' + document.querySelector('#' + modalid).dataset.inputid);maybeactivityelement = currentinput.parentElement.querySelector('div.activitytitle.unilabel-input-replacement');});document.querySelector('#unilabel-activity-picker').addEventListener('click', (e) => {if (!e.target.classList.contains('activity-picker-link')) {return;}e.preventDefault();e.stopPropagation();if (maybeactivityelement) {log.debug('There already is an replacement element. It must be remove before a new one is added.');maybeactivityelement.remove();}$('#unilabel-modal-activity-picker-' + formid).modal('hide');if (e.target.classList.contains('activity-picker-link')) {let url = e.target.href;let activitylinksrc = e.target.closest('.activitytitle');inputswitcher.switchInput(currentinput, activitylinksrc, url, true, deletestr);}});$("#search-" + formid).on("keyup", function() {let value = $(this).val().toLowerCase();$("#unilabel-activity-picker-list li").filter((index, element) => {// Looking for data-filterstring we can apply the search term.if (element.dataset.filterstring.toLowerCase().indexOf(value) > -1) {$(element).slideDown();} else {$(element).slideUp();}return index;});});};