| 1 | efrain | 1 | {{!
 | 
        
           |  |  | 2 |     This file is part of Moodle - http://moodle.org/
 | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 |     Moodle is free software: you can redistribute it and/or modify
 | 
        
           |  |  | 5 |     it under the terms of the GNU General Public License as published by
 | 
        
           |  |  | 6 |     the Free Software Foundation, either version 3 of the License, or
 | 
        
           |  |  | 7 |     (at your option) any later version.
 | 
        
           |  |  | 8 |   | 
        
           |  |  | 9 |     Moodle is distributed in the hope that it will be useful,
 | 
        
           |  |  | 10 |     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
        
           |  |  | 11 |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
        
           |  |  | 12 |     GNU General Public License for more details.
 | 
        
           |  |  | 13 |   | 
        
           |  |  | 14 |     You should have received a copy of the GNU General Public License
 | 
        
           |  |  | 15 |     along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 | 
        
           |  |  | 16 | }}
 | 
        
           |  |  | 17 | {{!
 | 
        
           |  |  | 18 |     @template core/checkbox-toggleall-master-button
 | 
        
           |  |  | 19 |   | 
        
           |  |  | 20 |     Template for a master button in a toggle group. The master button toggles the checked states of the slave checkboxes.
 | 
        
           |  |  | 21 |   | 
        
           |  |  | 22 |     Data attributes required for JS:
 | 
        
           |  |  | 23 |     * data-action
 | 
        
           |  |  | 24 |     * data-toggle
 | 
        
           |  |  | 25 |     * data-togglegroup
 | 
        
           |  |  | 26 |   | 
        
           |  |  | 27 |     Example context (json):
 | 
        
           |  |  | 28 |     {
 | 
        
           |  |  | 29 |         "id": "select-all",
 | 
        
           |  |  | 30 |         "name": "select-all",
 | 
        
           |  |  | 31 |         "togglegroup": "toggle-group",
 | 
        
           |  |  | 32 |         "label": "Select everything!",
 | 
        
           |  |  | 33 |         "checked": true,
 | 
        
           |  |  | 34 |         "classes": "btn-primary btn-lg",
 | 
        
           |  |  | 35 |         "selectall": "Select all",
 | 
        
           |  |  | 36 |         "deselectall": "Deselect all"
 | 
        
           |  |  | 37 |     }
 | 
        
           |  |  | 38 | }}
 | 
        
           |  |  | 39 | <button type="button" id="{{id}}" name="{{name}}" class="btn {{^classes}}btn-secondary{{/classes}}{{#classes}}{{.}}{{/classes}}"
 | 
        
           |  |  | 40 |         data-action="toggle"
 | 
        
           |  |  | 41 |         data-toggle="master"
 | 
        
           |  |  | 42 |         data-togglegroup="{{togglegroup}}"
 | 
        
           |  |  | 43 |         data-toggle-selectall="{{selectall}}"
 | 
        
           |  |  | 44 |         data-toggle-deselectall="{{deselectall}}"
 | 
        
           |  |  | 45 |         data-checkall="{{#checked}}0{{/checked}}{{^checked}}1{{/checked}}">
 | 
        
           |  |  | 46 |     {{#checked}}{{deselectall}}{{/checked}}
 | 
        
           |  |  | 47 |     {{^checked}}{{selectall}}{{/checked}}
 | 
        
           |  |  | 48 | </button>
 | 
        
           |  |  | 49 |   | 
        
           |  |  | 50 | {{#js}}
 | 
        
           |  |  | 51 |     require(['core/checkbox-toggleall'], function(ToggleAll) {
 | 
        
           |  |  | 52 |         ToggleAll.init();
 | 
        
           |  |  | 53 |     });
 | 
        
           |  |  | 54 | {{/js}}
 |