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/>./*** Task indicator** Watches the progress bar inside the task indicator for updates, and redirects when the progress is complete.** @module core/task_indicator* @copyright 2024 Catalyst IT Europe Ltd* @author Mark Johnson <mark.johnson@catalyst-eu.net>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/export default class {/*** Watch the progress bar for updates.** When the progress bar is updated to 100%, wait a couple of seconds so the user gets to see it if they are watching,* then redirect to the specified URL.** @param {String} id The ID of the progress bar element.* @param {String} redirectUrl Optional URL to redirect to once the task is complete.*/static init(id, redirectUrl) {const bar = document.getElementById(id);bar.addEventListener('update', (event) => {const percent = event?.detail?.percent;if (percent > 0) {// Once progress starts, display the progress bar and remove the run link.bar.classList.remove('stored-progress-notstarted');const runlink = document.querySelector(`.runlink[data-idnumber=${id}]`);if (runlink) {runlink.remove();}}// Once the progress bar completes, redirect the page.if (redirectUrl !== '' && percent === 100) {window.setTimeout(() => window.location.assign(redirectUrl), 2000);}});}}