ui/twig/create/forms/toggler.html.twig line 1

Open in your IDE?
  1. {% set htmlId = _args.htmlId|default('toggler-' ~ token()) %}
  2. {% set text = _args.text %}
  3. {% set enable = _args.enable %}
  4. {% set disable = (_args.disable is defined) ? _args.disable : [] %}
  5. {% set checked = _args.checked|default(false) %}
  6. <div class="checkbox">
  7.     <input class="checkbox__input" id="{{ htmlId }}" type="checkbox"{% if checked %} checked{% endif %} />
  8.     <label class="checkbox__label" for="{{ htmlId }}">{{ text }}</label>
  9.     {%- if helpText|default('') -%}
  10.         <span
  11.             class="icon icon--tip icon-solid-help"
  12.             data-toggle='tooltip'
  13.             data-trigger='click'
  14.             data-original-title="{{ helpText }}"
  15.         >
  16.         </span>
  17.     {%- endif -%}
  18. </div>
  19. {% inline_script %}
  20.     <script>
  21.         $(function () {
  22.             $('#{{ htmlId }}')
  23.                 .on('change', function (e) {
  24.                     var $target = $(e.currentTarget),
  25.                         checked = $target.prop('checked'),
  26.                         $enable = $('{% for enbl in enable %}#{{ enbl.vars.id }}{% if not loop.last %},{% endif %}{% endfor %}'),
  27.                         $disable = $('{% for dsbl in disable %}#{{ dsbl.vars.id }}{% if not loop.last %},{% endif %}{% endfor %}');
  28.                     function show($elements) {
  29.                         $elements.each(function (index, elem) {
  30.                             var $elem = $(elem);
  31.                             if ($elem.is('[data-name]')) {
  32.                                 $elem
  33.                                     .attr('name', $elem.attr('data-name'))
  34.                                     .removeAttr('data-name')
  35.                                 ;
  36.                             }
  37.                             $elem.closest('.form-group').removeClass('hidden');
  38.                         });
  39.                     }
  40.                     function hide($elements) {
  41.                         $elements.each(function (index, elem) {
  42.                             var $elem = $(elem);
  43.                             $elem
  44.                                 .attr('data-name', $elem.attr('name'))
  45.                                 .removeAttr('name');
  46.                             $elem.closest('.form-group').addClass('hidden');
  47.                         });
  48.                     }
  49.                     show((checked) ? $enable : $disable);
  50.                     hide((checked) ? $disable : $enable);
  51.                 })
  52.                 .trigger('change');
  53.         });
  54.     </script>
  55. {% endinline %}