{{!
    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 <http://www.gnu.org/licenses/>.
}}
{{!
    @template core_form/element-select

    Simple select form element template.

    Context variables required for this template:
    * id - Element id,
    * nameraw - Raw Element name without '[]'
    * name - Element name,
    * label -  Element label,
    * multiple - multi select?,
    * checked - checked?,
    * error - Is there an error associated with this element?,
    * size - Element size,
    * value - Element value,
    * helpbutton - Helpbutton,
    * hiddenlabel - Element hidden flag,
    * frozen - Element frozen flag,
    * hardfrozen - Element hard fronzen flag,
    * extraclasses - Extra classes assocaited,
    * type - Element type,
    * attributes - Element attributes,
    * options - [
        {
            text - Option text,
            value - Option value,
            selected - Selected?,
            disabled - Disabled?,
            optionattributes - Option attributes
        }
    ]

    Example context (json):
    {
        "element": {
            "id": "id_maildisplay",
            "nameraw": "maildisplay",
            "name": "maildisplay",
            "label": null,
            "multiple": null,
            "checked": null,
            "error": null,
            "size": null,
            "value": null,
            "helpbutton": "",
            "hiddenlabel": false,
            "frozen": false,
            "hardfrozen": false,
            "extraclasses": null,
            "type": "select",
            "attributes": "",
            "options": [
                {
                    "text": "Hidden",
                    "value": 0,
                    "selected": false,
                    "disabled": false,
                    "optionattributes": ""
                },
                {
                    "text": "Visible to everyone",
                    "value": 1,
                    "selected": true,
                    "disabled": false,
                    "optionattributes": ""
                },
                {
                    "text": "Allow only other course members to see my email address",
                    "value": 2,
                    "selected": false,
                    "disabled": false,
                    "optionattributes": ""
                }
            ]
        }
    }
}}
{{< core_form/element-template }}
    {{$element}}
        {{^element.frozen}}
        {{#element.multiple}}
            <input type="hidden" name="{{element.nameraw}}" value="_qf__force_multiselect_submission">
        {{/element.multiple}}
        <select class="{{^element.multiple}}custom-select{{/element.multiple}}
                       {{#element.multiple}}form-control{{/element.multiple}}
                       {{#error}}is-invalid{{/error}}"
            name="{{element.name}}"
            id="{{element.id}}"
            {{#element.multiple}}multiple{{/element.multiple}}
            {{#element.size}}size="{{element.size}}"{{/element.size}}
            {{#error}}
                autofocus aria-describedby="{{element.iderror}}"
            {{/error}}
            {{#required}}
                aria-required="true"
            {{/required}}
            {{{element.attributes}}} >
            {{#element.options}}
            <option value="{{value}}" {{#selected}}selected{{/selected}} {{#disabled}}disabled{{/disabled}}
                {{{optionattributes}}}>{{{text}}}</option>
            {{/element.options}}
        </select>
        {{/element.frozen}}
        {{#element.frozen}}
            {{#element.options}}
                {{#selected}}
                    {{{text}}}
                    {{^element.hardfrozen}}
                        <input type="hidden" name="{{element.name}}" value="{{value}}" id="{{element.id}}">
                    {{/element.hardfrozen}}
                {{/selected}}
            {{/element.options}}
        {{/element.frozen}}
    {{/element}}
{{/ core_form/element-template }}
