░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/var/www/moodle/public/lib/amd/src/datafilter/filtertypes
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: binary.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/>. /** * Base filter for binary selector ie: (Yes / No). * * @module core/datafilter/filtertypes/binary * @author 2022 Ghaly Marc-Alexandre <marc-alexandreghaly@catalyst-ca.net> * @copyright 2022 Catalyst IT Australia Pty Ltd * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ import Filter from 'core/datafilter/filtertype'; import Selectors from 'core/datafilter/selectors'; import Templates from 'core/templates'; import {get_strings as getStrings} from 'core/str'; export default class extends Filter { /** * Text string for the first binary option. * * This option (and {@see optionTwo}) are set by {@see getTextValues()}. The base class will set default values, * a subclass can override the method to define its own option. * * @type {String} */ optionOne; /** * Text string for the second binary option. * * @type {String} */ optionTwo; /** * Add the value selector to the filter row. * * @param {Array} initialValues The default value for the filter. */ async addValueSelector(initialValues) { [this.optionOne, this.optionTwo] = await this.getTextValues(); const initialValue = initialValues ? initialValues[0] : 0; return this.displayBinarySelection(initialValue); } /** * Fetch text values for select options. * * Subclasses should override this method to set their own options. * * @returns {Promise} */ getTextValues() { return getStrings([{key: 'no'}, {key: 'yes'}]); } /** * Renders yes/no select input with proper selection. * * @param {Number} initialValue The default value for the filter. */ async displayBinarySelection(initialValue = 0) { // We specify a specific filterset in case there are multiple filtering condition - avoiding glitches. const specificFilterSet = this.rootNode.querySelector(Selectors.filter.byName(this.filterType)); const sourceDataNode = this.getSourceDataForFilter(); const context = { filtertype: this.filterType, title: sourceDataNode.getAttribute('data-field-title'), required: sourceDataNode.dataset.required, options: [ { text: this.optionOne, value: 0, selected: initialValue === 0, }, { text: this.optionTwo, value: 1, selected: initialValue === 1, }, ] }; return Templates.render('core/datafilter/filtertypes/binary_selector', context) .then((binaryUi, js) => { return Templates.replaceNodeContents(specificFilterSet.querySelector(Selectors.filter.regions.values), binaryUi, js); }); } /** * Get the list of raw values for this filter type. * * @returns {Array} */ get values() { return [parseInt(this.filterRoot.querySelector(`[data-filterfield="${this.name}"]`).value)]; } }
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 binary.js
JS
3.7 KB
2026-02-11 01:44
EDIT
📄 country.js
JS
1.1 KB
2026-02-11 01:44
EDIT
📄 courseid.js
JS
1.4 KB
2026-02-11 01:44
EDIT
📄 datetime.js
JS
7.7 KB
2026-02-11 01:44
EDIT
📄 keyword.js
JS
1.5 KB
2026-02-11 01:44
EDIT