X7ROOT File Manager
Current Path:
/home/cbholdings/pasukulu/lib/amd/src
home
/
cbholdings
/
pasukulu
/
lib
/
amd
/
src
/
📁
..
📄
adapter.js
(123.08 KB)
📄
addblockmodal.js
(4.4 KB)
📄
ajax.js
(11.97 KB)
📄
aria.js
(1011 B)
📄
auto_rows.js
(3.46 KB)
📄
autoscroll.js
(6.49 KB)
📄
backoff_timer.js
(4.98 KB)
📄
chart_axis.js
(7.39 KB)
📄
chart_bar.js
(3.08 KB)
📄
chart_base.js
(11.36 KB)
📄
chart_builder.js
(1.65 KB)
📄
chart_line.js
(2.08 KB)
📄
chart_output.js
(1.08 KB)
📄
chart_output_base.js
(2.03 KB)
📄
chart_output_chartjs.js
(10.86 KB)
📄
chart_output_htmltable.js
(3.3 KB)
📄
chart_pie.js
(3.03 KB)
📄
chart_series.js
(8.35 KB)
📄
chartjs-lazy.js
(488.32 KB)
📄
chartjs.js
(913 B)
📄
checkbox-toggleall.js
(12.78 KB)
📄
config.js
(1002 B)
📄
copy_to_clipboard.js
(7.39 KB)
📄
custom_interaction_events.js
(22.18 KB)
📁
datafilter
📄
datafilter.js
(15.28 KB)
📄
dragdrop.js
(12.92 KB)
📄
drawer.js
(3.49 KB)
📄
drawer_events.js
(967 B)
📄
dynamic_tabs.js
(6.68 KB)
📄
edit_switch.js
(3.45 KB)
📁
emoji
📄
event.js
(3.11 KB)
📄
event_dispatcher.js
(2.79 KB)
📄
first.js
(1.36 KB)
📄
form-autocomplete.js
(51.21 KB)
📄
form-cohort-selector.js
(2.46 KB)
📄
form-course-selector.js
(3.77 KB)
📄
fragment.js
(5.03 KB)
📄
fullscreen.js
(1.62 KB)
📄
icon_system.js
(2.56 KB)
📄
icon_system_fontawesome.js
(4.01 KB)
📄
icon_system_standard.js
(2.3 KB)
📄
inplace_editable.js
(17.25 KB)
📄
key_codes.js
(1.34 KB)
📄
loadingicon.js
(3.88 KB)
📁
local
📄
localstorage.js
(2.08 KB)
📄
log.js
(1.74 KB)
📄
loglevel.js
(10.63 KB)
📄
menu_navigation.js
(9.2 KB)
📄
modal.js
(31.18 KB)
📄
modal_backdrop.js
(4.46 KB)
📄
modal_cancel.js
(1.49 KB)
📄
modal_copy_to_clipboard.js
(3.82 KB)
📄
modal_delete_cancel.js
(2.22 KB)
📄
modal_events.js
(1.35 KB)
📄
modal_factory.js
(8.97 KB)
📄
modal_registry.js
(2.38 KB)
📄
modal_save_cancel.js
(2.21 KB)
📁
moodlenet
📄
moremenu.js
(10.3 KB)
📄
mustache.js
(28.75 KB)
📄
network.js
(9.66 KB)
📄
normalise.js
(1.9 KB)
📄
notification.js
(11.8 KB)
📄
page_global.js
(5.38 KB)
📄
paged_content.js
(2.87 KB)
📄
paged_content_events.js
(1.17 KB)
📄
paged_content_factory.js
(20.93 KB)
📄
paged_content_pages.js
(11.75 KB)
📄
paged_content_paging_bar.js
(20.36 KB)
📄
paged_content_paging_bar_limit_selector.js
(2.36 KB)
📄
paged_content_paging_dropdown.js
(7.36 KB)
📄
pending.js
(4.48 KB)
📄
permissionmanager.js
(9.77 KB)
📄
popover_region_controller.js
(13.04 KB)
📄
popper.js
(79.2 KB)
📄
prefetch.js
(5.85 KB)
📄
process_monitor.js
(3.55 KB)
📄
pubsub.js
(2.17 KB)
📄
reactive.js
(1.38 KB)
📄
scroll_manager.js
(5.5 KB)
📄
sessionstorage.js
(2.22 KB)
📄
showhidesettings.js
(11.82 KB)
📄
sortable_list.js
(29.51 KB)
📄
sticky-footer.js
(2.58 KB)
📄
storagewrapper.js
(5.21 KB)
📄
str.js
(7.84 KB)
📄
tag.js
(19.84 KB)
📄
templates.js
(51.36 KB)
📄
toast.js
(3.32 KB)
📄
tooltip.js
(4.09 KB)
📄
tree.js
(18.39 KB)
📄
truncate.js
(6.56 KB)
📄
url.js
(3.65 KB)
📄
user_date.js
(9.32 KB)
📄
userfeedback.js
(2.91 KB)
📄
usermenu.js
(5.13 KB)
📄
utility.js
(6.15 KB)
📄
utils.js
(2.73 KB)
📄
yui.js
(1.13 KB)
Editing: checkbox-toggleall.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/>. /** * A module to help with toggle select/deselect all. * * @module core/checkbox-toggleall * @copyright 2019 Andrew Nicols <andrew@nicols.co.uk> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ define(['jquery', 'core/pubsub'], function($, PubSub) { /** * Whether event listeners have already been registered. * * @private * @type {boolean} */ var registered = false; /** * List of custom events that this module publishes. * * @private * @type {{checkboxToggled: string}} */ var events = { checkboxToggled: 'core/checkbox-toggleall:checkboxToggled', }; /** * Fetches elements that are member of a given toggle group. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroup The toggle group name that we're searching form. * @param {boolean} exactMatch Whether we want an exact match we just want to match toggle groups that start with the given * toggle group name. * @returns {jQuery} The elements matching the given toggle group. */ var getToggleGroupElements = function(root, toggleGroup, exactMatch) { if (exactMatch) { return root.find('[data-action="toggle"][data-togglegroup="' + toggleGroup + '"]'); } else { return root.find('[data-action="toggle"][data-togglegroup^="' + toggleGroup + '"]'); } }; /** * Fetches the slave checkboxes for a given toggle group. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroup The toggle group name. * @returns {jQuery} The slave checkboxes belonging to the toggle group. */ var getAllSlaveCheckboxes = function(root, toggleGroup) { return getToggleGroupElements(root, toggleGroup, false).filter('[data-toggle="slave"]'); }; /** * Fetches the master elements (checkboxes or buttons) that control the slave checkboxes in a given toggle group. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroup The toggle group name. * @param {boolean} exactMatch * @returns {jQuery} The control elements belonging to the toggle group. */ var getControlCheckboxes = function(root, toggleGroup, exactMatch) { return getToggleGroupElements(root, toggleGroup, exactMatch).filter('[data-toggle="master"]'); }; /** * Fetches the action elements that perform actions on the selected checkboxes in a given toggle group. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroup The toggle group name. * @returns {jQuery} The action elements belonging to the toggle group. */ var getActionElements = function(root, toggleGroup) { return getToggleGroupElements(root, toggleGroup, true).filter('[data-toggle="action"]'); }; /** * Toggles the slave checkboxes in a given toggle group when a master element in that toggle group is toggled. * * @private * @param {Object} e The event object. */ var toggleSlavesFromMasters = function(e) { var root = e.data.root; var target = $(e.target); var toggleGroupName = target.data('togglegroup'); var targetState; if (target.is(':checkbox')) { targetState = target.is(':checked'); } else { targetState = target.data('checkall') === 1; } toggleSlavesToState(root, toggleGroupName, targetState); }; /** * Toggles the slave checkboxes from the masters. * * @param {HTMLElement} root * @param {String} toggleGroupName */ var updateSlavesFromMasterState = function(root, toggleGroupName) { // Normalise to jQuery Object. root = $(root); var target = getControlCheckboxes(root, toggleGroupName, false); var targetState; if (target.is(':checkbox')) { targetState = target.is(':checked'); } else { targetState = target.data('checkall') === 1; } toggleSlavesToState(root, toggleGroupName, targetState); }; /** * Toggles the master checkboxes and action elements in a given toggle group. * * @param {jQuery} root The root jQuery element. * @param {String} toggleGroupName The name of the toggle group */ var toggleMastersAndActionElements = function(root, toggleGroupName) { var toggleGroupSlaves = getAllSlaveCheckboxes(root, toggleGroupName); if (toggleGroupSlaves.length > 0) { var toggleGroupCheckedSlaves = toggleGroupSlaves.filter(':checked'); var targetState = toggleGroupSlaves.length === toggleGroupCheckedSlaves.length; // Make sure to toggle the exact master checkbox in the given toggle group. setMasterStates(root, toggleGroupName, targetState, true); // Enable the action elements if there's at least one checkbox checked in the given toggle group. // Disable otherwise. setActionElementStates(root, toggleGroupName, !toggleGroupCheckedSlaves.length); } }; /** * Returns an array containing every toggle group level of a given toggle group. * * @param {String} toggleGroupName The name of the toggle group * @return {Array} toggleGroupLevels Array that contains every toggle group level of a given toggle group */ var getToggleGroupLevels = function(toggleGroupName) { var toggleGroups = toggleGroupName.split(' '); var toggleGroupLevels = []; var toggleGroupLevel = ''; toggleGroups.forEach(function(toggleGroupName) { toggleGroupLevel += ' ' + toggleGroupName; toggleGroupLevels.push(toggleGroupLevel.trim()); }); return toggleGroupLevels; }; /** * Toggles the slave checkboxes to a specific state. * * @param {HTMLElement} root * @param {String} toggleGroupName * @param {Bool} targetState */ var toggleSlavesToState = function(root, toggleGroupName, targetState) { var slaves = getAllSlaveCheckboxes(root, toggleGroupName); // Set the slave checkboxes from the masters and manually trigger the native 'change' event. slaves.prop('checked', targetState).trigger('change'); // Get all checked slaves after the change of state. var checkedSlaves = slaves.filter(':checked'); // Toggle the master checkbox in the given toggle group. setMasterStates(root, toggleGroupName, targetState, false); // Enable the action elements if there's at least one checkbox checked in the given toggle group. Disable otherwise. setActionElementStates(root, toggleGroupName, !checkedSlaves.length); // Get all toggle group levels and toggle accordingly all parent master checkboxes and action elements from each // level. Exclude the given toggle group (toggleGroupName) as the master checkboxes and action elements from this // level have been already toggled. var toggleGroupLevels = getToggleGroupLevels(toggleGroupName) .filter(toggleGroupLevel => toggleGroupLevel !== toggleGroupName); toggleGroupLevels.forEach(function(toggleGroupLevel) { // Toggle the master checkboxes action elements in the given toggle group level. toggleMastersAndActionElements(root, toggleGroupLevel); }); PubSub.publish(events.checkboxToggled, { root: root, toggleGroupName: toggleGroupName, slaves: slaves, checkedSlaves: checkedSlaves, anyChecked: targetState, }); }; /** * Set the state for an entire group of checkboxes. * * @param {HTMLElement} root * @param {String} toggleGroupName * @param {Bool} targetState */ var setGroupState = function(root, toggleGroupName, targetState) { // Normalise to jQuery Object. root = $(root); // Set the master and slaves. setMasterStates(root, toggleGroupName, targetState, true); toggleSlavesToState(root, toggleGroupName, targetState); }; /** * Toggles the master checkboxes in a given toggle group when all or none of the slave checkboxes in the same toggle group * have been selected. * * @private * @param {Object} e The event object. */ var toggleMastersFromSlaves = function(e) { var root = e.data.root; var target = $(e.target); var toggleGroupName = target.data('togglegroup'); var slaves = getAllSlaveCheckboxes(root, toggleGroupName); var checkedSlaves = slaves.filter(':checked'); // Get all toggle group levels for the given toggle group and toggle accordingly all master checkboxes // and action elements from each level. var toggleGroupLevels = getToggleGroupLevels(toggleGroupName); toggleGroupLevels.forEach(function(toggleGroupLevel) { // Toggle the master checkboxes action elements in the given toggle group level. toggleMastersAndActionElements(root, toggleGroupLevel); }); PubSub.publish(events.checkboxToggled, { root: root, toggleGroupName: toggleGroupName, slaves: slaves, checkedSlaves: checkedSlaves, anyChecked: !!checkedSlaves.length, }); }; /** * Enables or disables the action elements. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroupName The toggle group name of the action element(s). * @param {boolean} disableActionElements Whether to disable or to enable the action elements. */ var setActionElementStates = function(root, toggleGroupName, disableActionElements) { getActionElements(root, toggleGroupName).prop('disabled', disableActionElements); }; /** * Selects or deselects the master elements. * * @private * @param {jQuery} root The root jQuery element. * @param {string} toggleGroupName The toggle group name of the master element(s). * @param {boolean} targetState Whether to select (true) or deselect (false). * @param {boolean} exactMatch Whether to do an exact match for the toggle group name or not. */ var setMasterStates = function(root, toggleGroupName, targetState, exactMatch) { // Set the master checkboxes value and ARIA labels.. var masters = getControlCheckboxes(root, toggleGroupName, exactMatch); masters.prop('checked', targetState); masters.each(function(i, masterElement) { masterElement = $(masterElement); var targetString; if (targetState) { targetString = masterElement.data('toggle-deselectall'); } else { targetString = masterElement.data('toggle-selectall'); } if (masterElement.is(':checkbox')) { var masterLabel = root.find('[for="' + masterElement.attr('id') + '"]'); if (masterLabel.length) { if (masterLabel.html() !== targetString) { masterLabel.html(targetString); } } } else { masterElement.text(targetString); // Set the checkall data attribute. masterElement.data('checkall', targetState ? 0 : 1); } }); }; /** * Registers the event listeners. * * @private */ var registerListeners = function() { if (!registered) { registered = true; var root = $(document.body); root.on('click', '[data-action="toggle"][data-toggle="master"]', {root: root}, toggleSlavesFromMasters); root.on('click', '[data-action="toggle"][data-toggle="slave"]', {root: root}, toggleMastersFromSlaves); } }; return { init: function() { registerListeners(); }, events: events, setGroupState: setGroupState, updateSlavesFromMasterState: updateSlavesFromMasterState, }; });
Upload File
Create Folder