ui/twig/common/forms/tabs/default.html.twig line 1

Open in your IDE?
  1. {% set form = _args.form|default(null) %}
  2. {% set categories = _args.categories|default([]) %}
  3. {% set defaultCategory = _args.defaultCategory|default('Default') %}
  4. {% set title = _args.title %}
  5. {% set formId = _args.formId is defined ? _args.formId : null %}
  6. {% set saveTabsState = _args.saveTabsState|default(false) %}
  7. {% if form is not null %}
  8.     {% for field in form.children %}
  9.         {% if field.vars.categoryName is defined %}
  10.             {% if field.vars.categoryName not in categories %}
  11.                 {% set categories = categories|merge([field.vars.categoryName]) %}
  12.             {% endif %}
  13.         {% elseif 'hidden' not in field.vars.block_prefixes %}
  14.             {% if defaultCategory not in categories %}
  15.                 {% set categories = categories|merge([defaultCategory]) %}
  16.             {% endif %}
  17.         {% endif %}
  18.     {% endfor %}
  19. {% endif %}
  20. {% if categories|length > 1 %}
  21.     <style type="text/css">
  22.         .cs-console-main-content > form {
  23.             display: none;
  24.         }
  25.         div[data-form-category] {
  26.             display: none;
  27.         }
  28.     </style>
  29.     {% embed '@ui/common/navbars/default.html.twig' with {title: title, formId: formId} %}
  30.         {% block items %}
  31.             {% for category in categories %}
  32.                 {% include '@ui/common/navbars/items/default.html.twig' with {text: category} %}
  33.             {% endfor %}
  34.         {% endblock %}
  35.     {% endembed %}
  36.     {% inline_script %}
  37.         <script>
  38.             $(function() {
  39.                 var category,
  40.                     tabId = 0,
  41.                     cookieName;
  42.                 $('body').on('click', 'ul.app-navbar__ul > li', function(e) {
  43.                     var $target = $(e.target),
  44.                         $parent = $target.closest('ul.app-navbar__ul'),
  45.                         form = $parent.data('form');
  46.                     $(form).show();
  47.                     category = $target.text().trim();
  48.                     $parent.find('> li').removeClass('active');
  49.                     $target.closest('li').addClass('active');
  50.                     $(form).find('div.form-group[data-form-category][data-form-category!="' + category + '"]').hide();
  51.                     $(form).find('div.form-group[data-form-category][data-form-category="' + category + '"]').show();
  52.                     e.preventDefault();
  53.                 });
  54.                 {% if saveTabsState %}
  55.                     var categories,
  56.                         index;
  57.                     cookieName = '{{ formId }}-tab';
  58.                     category = $.cookie(cookieName);
  59.                     $.removeCookie(cookieName);
  60.                     // store cookie with category only if form was submitted
  61.                     $('#{{ formId }}').on('submit', function () {
  62.                         if (category) {
  63.                             $.cookie(cookieName, category);
  64.                         }
  65.                     });
  66.                     if (category) {
  67.                         categories = $('ul[data-form="#{{ formId }}"] li').map(function () {
  68.                             return $(this).text().trim();
  69.                         });
  70.                         index = $.inArray(category, categories);
  71.                         if (index !== -1) {
  72.                             tabId = index;
  73.                         }
  74.                     }
  75.                 {% endif %}
  76.                 $('ul.app-navbar__ul > li').eq(tabId).click();
  77.             });
  78.         </script>
  79.     {% endinline %}
  80. {% endif %}