MDL-62550 core_form: bring back the form item unique ids to fix js fails
[moodle.git] / theme / boost / templates / core_form / element-template.mustache
1 {{!
2     This file is part of Moodle - http://moodle.org/
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.
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.
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_form/element-template
20     Template for the form element wrapper template.
22     Context variables required for this template:
23     * label
24     * required
25     * advanced
26     * helpbutton
27     * error
28     * element
29         * id
30         * name
32     Example context (json):
33     {
34         "label": "Course full name",
35         "required": true,
36         "advanced": false,
37         "error": null,
38         "element": {
39             "wrapperid": "fitem_id_fullname",
40             "id": "id_fullname",
41             "name": "fullname"
42         }
43     }
44 }}
45 <div id="{{element.wrapperid}}" class="form-group row {{#error}}has-danger{{/error}} fitem {{#element.emptylabel}}femptylabel{{/element.emptylabel}} {{#advanced}}advanced{{/advanced}} {{{element.extraclasses}}}" {{#element.groupname}}data-groupname="{{.}}"{{/element.groupname}}>
46     <div class="col-md-3">
47         <span class="float-sm-right text-nowrap">
48             {{#required}}<abbr class="initialism text-danger" title="{{#str}}required{{/str}}">{{#pix}}req, core, {{#str}}required{{/str}}{{/pix}}</abbr>{{/required}}
49             {{#advanced}}<abbr class="initialism text-info" title="{{#str}}advanced{{/str}}">!</abbr>{{/advanced}}
50             {{{helpbutton}}}
51         </span>
52         {{^element.staticlabel}}
53         <label class="col-form-label d-inline {{#element.hiddenlabel}}sr-only{{/element.hiddenlabel}}" for="{{element.id}}">
54             {{{label}}}
55         </label>
56         {{/element.staticlabel}}
57         {{#element.staticlabel}}
58         <span class="col-form-label d-inline-block {{#element.hiddenlabel}}sr-only{{/element.hiddenlabel}}">
59             {{{label}}}
60         </span>
61         {{/element.staticlabel}}
62     </div>
63     <div class="col-md-9 form-inline felement" data-fieldtype="{{element.type}}">
64         {{$ element }}
65             <!-- Element goes here -->
66         {{/ element }}
67         <div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}>
68             {{{error}}}
69         </div>
70     </div>
71 </div>
72 {{#js}}
73 require(['theme_boost/form-display-errors'], function(module) {
74     module.enhance({{#quote}}{{element.id}}{{/quote}});
75 });
76 {{/js}}