templates/areas/filter/view.html.twig line 1

Open in your IDE?
  1. {% extends 'areas/filter/editables.html.twig' %}
  2. {% block view %}
  3.   {% if editmode %}
  4.     Only in Frontend
  5.   {% elseif filterDefinition != null %}
  6.     <section class="c-filter background-none {{filterMargin}}"
  7.               data-filter-definition="{{filterDefinition.getId()}}"
  8.               data-filter-output="{{filterDefinition.getRenderingOutput()}}"
  9.               data-search-route="/search"
  10.               data-filter-route="/filter/restrict"
  11.               {% if filterDefinition.getTenant() == 'Magazine' %}
  12.                 data-object-route="/{{filterDefinition.getTenant()|lower}}/object"
  13.               {% else %}
  14.                 data-object-route="/filter/search"
  15.               {% endif %}
  16.               data-default-image="{{ defaultImage ? defaultImage.getId() : null }}"
  17.               data-document="{{document.getId()}}"
  18.     >
  19.       {% set filterOrder %}
  20.         {% if filterDefinition.getOrderByAsc() %}
  21.           {% set orders = filterDefinition.getOrderByAsc() | split(',') %}
  22.           <div class="c-filter__order">
  23.             <div class="c-filter__order-expand js-order-button" data-active="false">
  24.               <p class="js-order-button-text e-small">{{"mvk_doc_fe_filter_order_button" | trans}}</p>
  25.               <div class="c-filter__order-options">
  26.                 {% for order in orders %}
  27.                   <span data-filter-order="{{order}}" data-filter-order-by="asc" data-active="false">{{('mvk_doc_fe_filter_order_' ~ filterDefinition.getTenant() ~ '_' ~ order) | trans}} {{'mvk_doc_fe_filter_order_button_asc' | trans}}</span>
  28.                   <span data-filter-order="{{order}}" data-filter-order-by="desc" data-active="false">{{('mvk_doc_fe_filter_order_' ~ filterDefinition.getTenant() ~ '_' ~ order) | trans}} {{'mvk_doc_fe_filter_order_button_desc' | trans}}</span>
  29.                 {% endfor %}
  30.               </div>
  31.             </div>
  32.           </div>
  33.         {% endif %}
  34.       {% endset %}
  35.       {% if filterDefinition != null %}
  36.         {% if filterDefinition.filters|length > 0 %}
  37.           {% set filterFrontend = null %}
  38.           {% set currentSearchFilter = [] %}
  39.           {% set searchOnly = false %}
  40.           {% for filter in filterDefinition.filters %}
  41.             {% if filter is instanceof('\\Pimcore\\Model\\DataObject\\Fieldcollection\\Data\\FilterSearch') and filter.getFieldsToSearch() != null %}
  42.               {% set fields = filter.getFieldsToSearch()|split(',') %}
  43.               {% for field in fields %}
  44.                 {% set currentSearchFilter = currentSearchFilter|merge({(field): []}) %}
  45.               {% endfor %}
  46.               {# Get all options(select, checkboxes, ...) for filter #}
  47.               {% set filterFrontend %}
  48.                 {{ filterService.filterFrontend(filter, objectListing, currentSearchFilter) | raw }}
  49.               {% endset %}
  50.             {% endif %}
  51.             {% if filter is instanceof('\\Pimcore\\Model\\DataObject\\Fieldcollection\\Data\\FilterSearch') and filterDefinition.filters|length == 1 %}
  52.               {% set searchOnly = true %}
  53.             {% endif %}
  54.           {% endfor %}
  55.           {% set filterTenantTranslation = ('html.filter.' ~ filterDefinition.getTenant()|lower) %}
  56.           {% include 'utils/beam.html.twig' with {'type': 'filter', 'filterFrontend': filterFrontend, 'filterTenant': filterTenantTranslation, 'filterOrder': filterOrder, 'searchOnly': searchOnly } %}
  57.           {% set filterFrontend = null %}
  58.         {% else %}
  59.           {{filterOrder | raw}}
  60.         {% endif %}
  61.         <div>
  62.           {% if filterDefinition.filters|length > 0 %}
  63.             <div class="c-filter__panel" data-filter-panel>
  64.               <div class="c-filter__panel-wrapper background-primary">
  65.                 <a href class="c-filter__panel-close" data-filter-close></a>
  66.                 <div class="c-filter__panel-content">
  67.                   <div class="c-filter__panel-header e-rte">
  68.                     <h4>
  69.                       {{ 'ercas_doc_fe_filter_label_filter' | trans }}
  70.                       {# <span data-filter-selected>1</span> #}
  71.                     </h4>
  72.                   </div>
  73.                   {% for filter in filterDefinition.filters %}
  74.                     {% if filter is instanceof('\\Pimcore\\Model\\DataObject\\Fieldcollection\\Data\\FilterNumberInput') or
  75.                           filter is instanceof('\\Pimcore\\Model\\DataObject\\Fieldcollection\\Data\\FilterNumberRangeFromTo')
  76.                     %}
  77.                       {% set fieldFrom = filter.getFieldFrom().getField() %}
  78.                       {% set fieldTo = filter.getFieldTo().getField() %}
  79.                       {% set currentFilter = {(fieldFrom): [], (fieldTo): []} %}
  80.                     {% elseif filter.getField() != null and filter is not instanceof('\\Pimcore\\Model\\DataObject\\Fieldcollection\\Data\\FilterSearch') %}
  81.                       {% set field = filter.getField().getField() %}
  82.                       {% set currentFilter = {(field): []} %}
  83.                     {% endif %}
  84.                     {# Get all options(select, checkboxes, ...) for filter #}
  85.                     {% if currentFilter is defined %}
  86.                       {{ filterService.filterFrontend(filter, objectListing, currentFilter) | raw }}
  87.                     {% endif %}
  88.                   {% endfor %}
  89.                   {# Set reset and submit button #}
  90.                   {% if filterDefinition.getShowSubmitButton() or filterDefinition.getShowResetButton() %}
  91.                     {% include 'utils/beam.html.twig' with {'type': 'submit'} %}
  92.                   {% endif %}
  93.                 </div>
  94.               </div>
  95.             </div>
  96.           {% endif %}
  97.         </div>
  98.         {% if filterDefinition.getRenderingOutput() == 'list' %}
  99.           {# Output Dummy #}
  100.           {% if document.getProperty('isBms') is defined and document.getProperty('isBms') == true %}
  101.             {% if filterDefinition.getTenant() == 'Policyholder' %}
  102.               {% include 'object/policyholder/list-bms.html.twig' %}
  103.             {% elseif filterDefinition.getTenant() == 'DamageDeclaration' %}
  104.               {% include 'object/damage-declaration/list-bms.html.twig' %}
  105.             {% elseif filterDefinition.getTenant() == 'InsuranceApplication' %}
  106.               {% include 'object/insurance-application/list-bms.html.twig' %}
  107.             {% elseif filterDefinition.getTenant() == 'InsuranceOffer' %}
  108.               {% include 'object/insurance-offer/list-bms.html.twig' %}
  109.             {% elseif filterDefinition.getTenant() == 'AgentDocument' %}
  110.               {% include 'object/agent-document/list-bms.html.twig' %}
  111.             {% elseif filterDefinition.getTenant() == 'PolicyDocument' %}
  112.               {% include 'object/policy-document/list-bms.html.twig' %}
  113.             {% elseif filterDefinition.getTenant() == 'Contract' %}
  114.               {% include 'object/contract/list-bms.html.twig' %}
  115.             {% elseif filterDefinition.getTenant() == 'BmsSubAgent' %}
  116.               {% include 'object/sub-agent/list-bms.html.twig' %}
  117.             {% endif %}
  118.           {% else %}
  119.             {% if filterDefinition.getTenant() == 'Policyholder' %}
  120.               {% include 'object/policyholder/list.html.twig' %}
  121.             {% elseif filterDefinition.getTenant() == 'DamageDeclaration' %}
  122.               {% include 'object/damage-declaration/list.html.twig' %}
  123.             {% elseif filterDefinition.getTenant() == 'InsuranceApplication' %}
  124.               {% include 'object/insurance-application/list.html.twig' %}
  125.             {% elseif filterDefinition.getTenant() == 'InsuranceOffer' %}
  126.               {% include 'object/insurance-offer/list.html.twig' %}
  127.             {% elseif filterDefinition.getTenant() == 'AgentDocument' %}
  128.               {% include 'object/agent-document/list.html.twig' %}
  129.             {% elseif filterDefinition.getTenant() == 'PolicyDocument' %}
  130.               {% include 'object/policy-document/list.html.twig' %}
  131.             {% elseif filterDefinition.getTenant() == 'Contract' %}
  132.               {% include 'object/contract/list.html.twig' %}
  133.             {% elseif filterDefinition.getTenant() == 'SubAgent' %}
  134.               {% include 'object/sub-agent/list.html.twig' %}
  135.             {% elseif filterDefinition.getTenant() == 'BmsSubAgent' %}
  136.               {% include 'object/sub-agent/list-bms.html.twig' %}
  137.             {% endif %}
  138.           {% endif %}
  139.           {% if filterDefinition.getTenant() == 'Job' %}
  140.             {% include 'object/job/list.html.twig' %}
  141.           {% elseif filterDefinition.getTenant() == 'DamEntry' %}
  142.             {% include 'object/downloadlist/list.html.twig' %}
  143.           {% endif %}
  144.           <div class="e-card__list">
  145.             <div class="container" data-output-list>
  146.               {# TS (frontend/src/06_xtensions/filter/filter.ts) will create a list of objects here #}
  147.             </div>
  148.           </div>
  149.         {% elseif filterDefinition.getRenderingOutput() == 'card' %}
  150.           {# Output Dummy #}
  151.           {% if filterDefinition.getTenant() == 'Magazine' %}
  152.             {% include 'object/magazine/card.html.twig' with {'highlightElement': highlightElement} %}
  153.           {% elseif filterDefinition.getTenant() == 'Contact' %}
  154.             {% include 'object/contact/card.html.twig' with {'highlightElement': highlightElement} %}
  155.           {% endif %}
  156.           <div class="e-card__list">
  157.             <div class="container-fluid">
  158.               <div class="row gap-4" data-output-list>
  159.                 {# TS (frontend/src/06_xtensions/filter/filter.ts) will create a list of objects here #}
  160.               </div>
  161.             </div>
  162.           </div>
  163.         {% endif %}
  164.         {% if filterDefinition.getInfiniteScroll() == true %}
  165.             <div class="c-filter__pagination js-filter-pagination e-rte d-none" data-load-type="infiniteScroll">
  166.               <span class="c-filter__pagination-information e-light">
  167.                 <span data-pagination-current>0</span> {{ 'html.filter.load.of' | trans }} <span data-pagination-total>24</span>
  168.               </span>
  169.               <p>
  170.                 <a href="" class="e-button--ghost" data-load-more data-next-page="1" data-disabled="false">
  171.                   {{ 'html.filter.load.more' | trans }}
  172.                   <span data-is-loading="false"></span>
  173.                 </a>
  174.               </p>
  175.             </div>
  176.           {% elseif filterDefinition.getPagination() == true %}
  177.             <div class="c-filter__pagination js-filter-pagination e-rte d-none" data-load-type="pagination">
  178.               <span class="c-filter__pagination-information e-light">
  179.                 <a href="" class="c-filter__pagination-button" data-load-prev data-prev-page="1" data-disabled="false">
  180.                   <span data-is-loading="false"></span>
  181.                 </a>
  182.                 <div class="c-filter__pagination-information-group">
  183.                   <input type="number" min="1" max="3" data-pagination-current value="1"> {{ 'ercas_doc_fe_filter_label_of' | trans }}&nbsp;<span data-pagination-page-count> 24</span>
  184.                 </div>
  185.                 <a href="" class="c-filter__pagination-button" data-load-next data-next-page="1" data-disabled="false">
  186.                   <span data-is-loading="false"></span>
  187.                 </a>
  188.               </span>
  189.             </div>
  190.           {% endif %}
  191.       {% endif %}
  192.     </section>
  193.   {% endif %}
  194. {% endblock %}