// 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 . /* * Question Bank Management. * * @package question * @copyright 2014 Andrew Nicols * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ /** * Questionbank Management. * * @module moodle-question-qbankmanager */ /** * Question Bank Management. * * @class M.question.qbankmanager */ var manager = { /** * A reference to the header checkbox. * * @property _header * @type Node * @private */ _header: null, /** * The ID of the first checkbox on the page. * * @property _firstCheckbox * @type Node * @private */ _firstCheckbox: null, /** * Set up the Question Bank Manager. * * @method init */ init: function() { // Find the header checkbox, and set the initial values. this._header = Y.one('#qbheadercheckbox'); if (!this._header) { return; } this._header.setAttrs({ disabled: false, title: M.util.get_string('selectall', 'moodle') }); this._header.on('click', this._headerClick, this); // Store the first checkbox details. var table = this._header.ancestor('table'); this._firstCheckbox = table.one('tbody tr td.checkbox input'); }, /** * Handle toggling of the header checkbox. * * @method _headerClick * @private */ _headerClick: function() { // Get the list of questions we affect. var categoryQuestions = Y.one('#categoryquestions') .all('[type=checkbox],[type=radio]'); // We base the state of all of the questions on the state of the first. if (this._firstCheckbox.get('checked')) { categoryQuestions.set('checked', false); this._header.setAttribute('title', M.util.get_string('selectall', 'moodle')); } else { categoryQuestions.set('checked', true); this._header.setAttribute('title', M.util.get_string('deselectall', 'moodle')); } this._header.set('checked', false); } }; M.question = M.question || {}; M.question.qbankmanager = M.question.qbankmanager || manager;