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/>./*** Check API result functions** @module core/check* @author Matthew Hilton <matthewhilton@catalyst-au.net>* @copyright Catalyst IT, 2023* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/import {getCheckResult} from './repository';import {getString} from 'core/str';import * as Templates from 'core/templates';/*** Get the result of a check and replace a given DOM element with the result.** @method getAndRender* @param {String} domSelector A CSS selector for a dom element to replace the the HTML for.* @param {String} adminTreeId Id of the admin_setting that called this webservice. Used to retrieve the check registered to it.* @param {String} settingName Name of setting (used to find the parent node in the admin tree)* @param {Boolean} includeDetails If true, details will be included in the check.* By default only the status and the summary is returned.*/export async function getAndRender(domSelector, adminTreeId, settingName, includeDetails) {const element = document.querySelector(domSelector);if (!element) {window.console.error('Check selector not found');return;}try {const result = await getCheckResult(adminTreeId, settingName, includeDetails);const decoded = new DOMParser().parseFromString(result.html, "text/html").documentElement.textContent;element.innerHTML = decoded;} catch (e) {window.console.error(e);// Render error as a red notification.element.innerHTML = await Templates.render('core/notification', {iserror: true,closebutton: false,announce: 0,extraclasses: '',message: await getString('checkerror', 'core', adminTreeId)});}}