MDL-65217 form: id for error area

This commit is contained in:
Marina Glancy 2019-04-09 14:00:14 +02:00
parent 086aa543b9
commit 521989ec56
28 changed files with 34 additions and 34 deletions

View file

@ -82,6 +82,7 @@ trait templatable_form_element {
$context['type'] = $this->getType(); $context['type'] = $this->getType();
$context['attributes'] = implode(' ', $otherattributes); $context['attributes'] = implode(' ', $otherattributes);
$context['emptylabel'] = ($this->getLabel() === ''); $context['emptylabel'] = ($this->getLabel() === '');
$context['iderror'] = preg_replace('/^id_/', 'id_error_', $context['id']);
// Elements with multiple values need array syntax. // Elements with multiple values need array syntax.
if ($this->getAttribute('multiple')) { if ($this->getAttribute('multiple')) {

View file

@ -15,7 +15,7 @@
{{#element.checked}}checked{{/element.checked}} {{#element.checked}}checked{{/element.checked}}
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{#element.frozen}} {{#element.frozen}}
disabled disabled
@ -27,7 +27,7 @@
<em>{{{.}}}</em> <em>{{{.}}}</em>
{{/text}} {{/text}}
{{{helpbutton}}} {{{helpbutton}}}
<span class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <span class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</span> </span>
{{^element.frozen}} {{^element.frozen}}

View file

@ -25,7 +25,7 @@
{{/element.selectedvalue}} {{/element.selectedvalue}}
id="{{element.id}}" {{#element.checked}}checked{{/element.checked}} id="{{element.id}}" {{#element.checked}}checked{{/element.checked}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{#element.frozen}} {{#element.frozen}}
disabled disabled
@ -43,7 +43,7 @@
{{{helpbutton}}} {{{helpbutton}}}
</span> </span>
</div> </div>
<div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <div class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</div> </div>
</div> </div>

View file

@ -8,7 +8,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -8,7 +8,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -7,7 +7,7 @@
id="{{element.id}}" id="{{element.id}}"
type="button" type="button"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} {{{element.attributes}}}
> >

View file

@ -7,7 +7,7 @@
id="{{element.id}}" id="{{element.id}}"
type="button" type="button"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}}> {{{element.attributes}}}>
{{{element.value}}} {{{element.value}}}

View file

@ -15,7 +15,7 @@
{{#element.checked}}checked{{/element.checked}} {{#element.checked}}checked{{/element.checked}}
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{#element.frozen}} {{#element.frozen}}
disabled disabled
@ -27,7 +27,7 @@
<em>{{{.}}}</em> <em>{{{.}}}</em>
{{/text}} {{/text}}
{{{helpbutton}}} {{{helpbutton}}}
<span class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <span class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</span> </span>
{{^element.frozen}} {{^element.frozen}}

View file

@ -25,7 +25,7 @@
{{/element.value}} {{/element.value}}
id="{{element.id}}" {{#element.checked}}checked{{/element.checked}} id="{{element.id}}" {{#element.checked}}checked{{/element.checked}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{#element.frozen}} {{#element.frozen}}
disabled disabled
@ -43,7 +43,7 @@
{{{helpbutton}}} {{{helpbutton}}}
</span> </span>
</div> </div>
<div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <div class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</div> </div>
</div> </div>

View file

@ -8,7 +8,7 @@
value="{{element.value}}" value="{{element.value}}"
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{{element.attributes}}}> {{/error}} {{{element.attributes}}}>
{{/element.frozen}} {{/element.frozen}}
{{/element}} {{/element}}

View file

@ -57,7 +57,7 @@
class="form-control d-inline-block {{# error }}is-invalid{{/ error }}" class="form-control d-inline-block {{# error }}is-invalid{{/ error }}"
data-size="{{ element.size }}" data-size="{{ element.size }}"
{{# error }} {{# error }}
autofocus aria-describedby="id_error_{{ element.name }}" autofocus aria-describedby="{{ element.iderror }}"
{{/ error }} {{/ error }}
{{{ attributes }}} {{{ attributes }}}
> >

View file

@ -19,7 +19,7 @@
{{#element.checked}}checked{{/element.checked}} {{#element.checked}}checked{{/element.checked}}
{{#element.frozen}}disabled{{/element.frozen}} {{#element.frozen}}disabled{{/element.frozen}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{{label}}} {{{label}}}
@ -28,7 +28,7 @@
<em>{{{.}}}</em> <em>{{{.}}}</em>
{{/text}} {{/text}}
{{{helpbutton}}} {{{helpbutton}}}
<span class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <span class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</span> </span>
{{^element.frozen}} {{^element.frozen}}

View file

@ -30,7 +30,7 @@
{{#element.checked}}checked{{/element.checked}} {{#element.checked}}checked{{/element.checked}}
{{#element.frozen}}disabled{{/element.frozen}} {{#element.frozen}}disabled{{/element.frozen}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{{element.attributes}}} > {{/error}} {{{element.attributes}}} >
{{#text}} {{#text}}
{{{.}}} {{{.}}}
@ -44,7 +44,7 @@
{{{helpbutton}}} {{{helpbutton}}}
</span> </span>
</div> </div>
<div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <div class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</div> </div>
</div> </div>

View file

@ -11,7 +11,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple size="{{element.size}}"{{/element.multiple}} {{#element.multiple}}multiple size="{{element.size}}"{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -104,7 +104,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple size="{{element.size}}"{{/element.multiple}} {{#element.multiple}}multiple size="{{element.size}}"{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -5,7 +5,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.optiongroups}} {{#element.optiongroups}}

View file

@ -5,7 +5,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.optiongroups}} {{#element.optiongroups}}

View file

@ -5,7 +5,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -13,7 +13,7 @@
name="{{element.name}}" name="{{element.name}}"
id="{{element.id}}" id="{{element.id}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
value="{{element.value}}" value="{{element.value}}"
{{{element.attributes}}} > {{{element.attributes}}} >

View file

@ -6,7 +6,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -6,7 +6,7 @@
id="{{element.id}}" id="{{element.id}}"
{{#element.multiple}}multiple{{/element.multiple}} {{#element.multiple}}multiple{{/element.multiple}}
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{#element.options}} {{#element.options}}

View file

@ -9,7 +9,7 @@
<!-- Element goes here --> <!-- Element goes here -->
{{/ element }} {{/ element }}
</span> </span>
<div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <div class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</div> </div>
</div> </div>

View file

@ -64,7 +64,7 @@
{{$ element }} {{$ element }}
<!-- Element goes here --> <!-- Element goes here -->
{{/ element }} {{/ element }}
<div class="form-control-feedback invalid-feedback" id="id_error_{{element.name}}" {{#error}} style="display: block;"{{/error}}> <div class="form-control-feedback invalid-feedback" id="{{element.iderror}}" {{#error}} style="display: block;"{{/error}}>
{{{error}}} {{{error}}}
</div> </div>
</div> </div>

View file

@ -10,7 +10,7 @@
value="{{element.value}}" value="{{element.value}}"
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}}> {{{element.attributes}}}>
{{/element}} {{/element}}

View file

@ -10,7 +10,7 @@
value="{{element.value}}" value="{{element.value}}"
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} > {{{element.attributes}}} >
{{/element}} {{/element}}

View file

@ -6,7 +6,7 @@
id="{{element.id}}" id="{{element.id}}"
class="form-control {{#error}}is-invalid{{/error}}" class="form-control {{#error}}is-invalid{{/error}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{{element.attributes}}} >{{element.value}}</textarea> {{{element.attributes}}} >{{element.value}}</textarea>
{{/element.frozen}} {{/element.frozen}}

View file

@ -10,7 +10,7 @@
value="{{element.value}}" value="{{element.value}}"
size="{{element.size}}" size="{{element.size}}"
{{#error}} {{#error}}
autofocus aria-describedby="id_error_{{element.name}}" autofocus aria-describedby="{{element.iderror}}"
{{/error}} {{/error}}
{{#element.frozen}} {{#element.frozen}}
readonly {{#element.hardfrozen}}disabled{{/element.hardfrozen}} readonly {{#element.hardfrozen}}disabled{{/element.hardfrozen}}

View file

@ -4593,8 +4593,7 @@ EOD;
// The id will be something like 'fgroup_id_NAME'. E.g. fgroup_id_mygroup. // The id will be something like 'fgroup_id_NAME'. E.g. fgroup_id_mygroup.
$elementcontext['wrapperid'] = $elementcontext['id']; $elementcontext['wrapperid'] = $elementcontext['id'];
// Ensure group elements pass through the group name as the element name so the id_error_{{element.name}} is // Ensure group elements pass through the group name as the element name.
// properly set in the template.
$elementcontext['name'] = $elementcontext['groupname']; $elementcontext['name'] = $elementcontext['groupname'];
} else { } else {
// Non grouped element. // Non grouped element.