MDL-69107 form_autocomplete: Rewrite item selection
[moodle.git] / lib / templates / form_autocomplete_input.mustache
CommitLineData
60a1ea56
DW
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/form_autocomplete_input
19
20 Moodle template for the input field in an autocomplate form element.
21
22 Classes required for JS:
23 * none
24
25 Data attributes required for JS:
26 * none
27
28 Context variables required for this template:
29 * inputId The dom id of this input field.
30 * suggestionsId The dom id of the suggestions list.
31 * selectionId The dom id of the current selection list.
32 * downArrowId The dom id of the down arrow to open the suggestions.
33 * placeholder The place holder text when the field is empty
34
35 Example context (json):
36 { "inputID": 1, "suggestionsId": 2, "selectionId": 3, "downArrowId": 4, "placeholder": "Select something" }
37}}
97d2ea7f 38{{#showSuggestions}}
6881ca38 39<div class="d-md-inline-block mr-md-2 position-relative">
f07d3b71
AN
40 <input type="text"{{!
41 }} id="{{inputId}}"{{!
42 }} class="form-control"{{!
43 }} list="{{suggestionsId}}"{{!
44 }} placeholder="{{placeholder}}"{{!
45 }} role="combobox"{{!
46 }} aria-expanded="false"{{!
47 }} autocomplete="off"{{!
48 }} autocorrect="off"{{!
49 }} autocapitalize="off"{{!
50 }} aria-autocomplete="list"{{!
51 }} aria-owns="{{suggestionsId}} {{selectionId}}"{{!
52 }} {{#tags}}data-tags="1"{{/tags}}{{!
53 }} {{#multiple}}data-multiple="multiple"{{/multiple}}{{!
54 }}>
b101ce58
BB
55 <span class="form-autocomplete-downarrow position-absolute p-1" id="{{downArrowId}}">&#x25BC;</span>
56</div>
97d2ea7f
DW
57{{/showSuggestions}}
58{{^showSuggestions}}
6881ca38 59<div class="d-md-inline-block mr-md-2">
f07d3b71
AN
60 <input type="text"{{!
61 }} id="{{inputId}}"{{!
62 }} class="form-control"{{!
63 }} placeholder="{{placeholder}}"{{!
64 }} role="textbox"{{!
65 }} aria-owns="{{selectionId}}"{{!
66 }} {{#tags}}data-tags="1"{{/tags}}{{!
67 }} {{#multiple}}data-multiple="multiple"{{/multiple}}{{!
68 }}>
6881ca38 69</div>
97d2ea7f 70{{/showSuggestions}}
c261ada8
DM
71
72{{#js}}
73require(['jquery'], function($) {
74 // Set the minimum width of the input so that the placeholder is whole displayed.
75 var inputElement = $(document.getElementById('{{inputId}}'));
76 if (inputElement.length) {
77 inputElement.css('min-width', inputElement.attr('placeholder').length + 'ch');
78 }
79});
80{{/js}}