X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/user/amd/src
home
/
cbholdings
/
pasukulu
/
user
/
amd
/
src
/
📁
..
📄
edit_profile_fields.js
(3.18 KB)
📄
form_user_selector.js
(2.78 KB)
📁
local
📄
participants.js
(7.75 KB)
📄
participants_filter.js
(4.13 KB)
📄
private_files.js
(2.32 KB)
📄
repository.js
(1.91 KB)
📄
status_field.js
(9.89 KB)
Editing: participants_filter.js
// 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/>. /** * Participants filter management. * * @module core_user/participants_filter * @copyright 2021 Tomo Tsuyuki <tomotsuyuki@catalyst-au.net> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ import CoreFilter from 'core/datafilter'; import * as DynamicTable from 'core_table/dynamic'; import Selectors from 'core/datafilter/selectors'; import Notification from 'core/notification'; import Pending from 'core/pending'; /** * Initialise the participants filter on the element with the given id. * * @param {String} filterRegionId The id for the filter element. */ export const init = filterRegionId => { const filterSet = document.getElementById(filterRegionId); // Create and initialize filter. const coreFilter = new CoreFilter(filterSet, function(filters, pendingPromise) { DynamicTable.setFilters( DynamicTable.getTableFromId(filterSet.dataset.tableRegion), { jointype: parseInt(filterSet.querySelector(Selectors.filterset.fields.join).value, 10), filters, } ) .then(result => { pendingPromise.resolve(); return result; }) .catch(Notification.exception); }); coreFilter.init(); /** * Set the current filter options based on a provided configuration. * * @param {Object} config * @param {Number} config.jointype * @param {Object} config.filters * @returns {Promise} */ const setFilterFromConfig = config => { const filterConfig = Object.entries(config.filters); if (!filterConfig.length) { // There are no filters to set from. return Promise.resolve(); } // Set the main join type. filterSet.querySelector(Selectors.filterset.fields.join).value = config.jointype; const filterPromises = filterConfig.map(([filterType, filterData]) => { if (filterType === 'courseid') { // The courseid is a special case. return false; } const filterValues = filterData.values; if (!filterValues.length) { // There are no values for this filter. // Skip it. return false; } return coreFilter.addFilterRow() .then(([filterRow]) => { coreFilter.addFilter(filterRow, filterType, filterValues); return; }); }).filter(promise => promise); if (!filterPromises.length) { return Promise.resolve(); } return Promise.all(filterPromises) .then(() => { return coreFilter.removeEmptyFilters(); }) .then(() => { coreFilter.updateFiltersOptions(); return; }) .then(() => { coreFilter.updateTableFromFilter(); return; }); }; // Initialize DynamicTable for showing result. const tableRoot = DynamicTable.getTableFromId(filterSet.dataset.tableRegion); const initialFilters = DynamicTable.getFilters(tableRoot); if (initialFilters) { const initialFilterPromise = new Pending('core/filter:setFilterFromConfig'); // Apply the initial filter configuration. setFilterFromConfig(initialFilters) .then(() => initialFilterPromise.resolve()) .catch(); } };
Upload File
Create Folder