| 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
 | 
        
           |  |  | 19 |   | 
        
           |  |  | 20 |     Template for a master checkbox in a toggle group. The master checkbox 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": "p-1",
 | 
        
           |  |  | 35 |         "selectall": "Select all",
 | 
        
           |  |  | 36 |         "deselectall": "Deselect all",
 | 
        
           |  |  | 37 |         "labelclasses": "badge bg-info text-white"
 | 
        
           |  |  | 38 |     }
 | 
        
           |  |  | 39 | }}
 | 
        
           | 1441 | ariadna | 40 | <div class="form-check p-0">
 | 
        
           | 1 | efrain | 41 |     <input id="{{id}}" name="{{name}}" type="checkbox" class="{{classes}}" value="{{value}}"
 | 
        
           |  |  | 42 |            aria-labelledby="{{id}}-label"
 | 
        
           |  |  | 43 |            data-action="toggle"
 | 
        
           |  |  | 44 |            data-toggle="master"
 | 
        
           |  |  | 45 |            data-togglegroup="{{togglegroup}}"
 | 
        
           |  |  | 46 |            data-toggle-selectall="{{selectall}}"
 | 
        
           |  |  | 47 |            data-toggle-deselectall="{{deselectall}}"
 | 
        
           |  |  | 48 |            {{#checked}}checked="checked"{{/checked}}
 | 
        
           |  |  | 49 |     />
 | 
        
           | 1441 | ariadna | 50 |     <label id="{{id}}-label" for="{{id}}" class="form-check-label d-block pe-2 {{labelclasses}}">{{label}}</label>
 | 
        
           | 1 | efrain | 51 | </div>
 | 
        
           |  |  | 52 | {{#js}}
 | 
        
           |  |  | 53 |     require(['core/checkbox-toggleall'], function(ToggleAll) {
 | 
        
           |  |  | 54 |         ToggleAll.init();
 | 
        
           |  |  | 55 |     });
 | 
        
           |  |  | 56 | {{/js}}
 |