templates/product/index.html.twig line 1

Open in your IDE?
  1. {% extends 'base.html.twig' %}
  2. {% block title %}
  3.     {{'page.product.Product'|trans}}
  4. {% endblock %}
  5. {% block bodyClass %}product
  6. {% endblock %}
  7. {% block body %}
  8.     <div class="list">
  9.         <div class="list__header">
  10.             <h2 class="list__title">{{'page.product.list.title'|trans}}</h2>
  11.             <div class="list__action">
  12.                 <a href="{{url('app_product_new')}}" class="btn btn__primary--line btn--sizeM">{{'page.product.new'|trans}}</a>
  13.             </div>
  14.         </div>
  15.         <div class="list__list">
  16.             <div class="list__head">
  17.                 <div class="list__row">
  18.                     <div class="list__item"></div>
  19.                     <div class="list__item">{{'entity.product.field.ID'|trans}}</div>
  20.                     <div class="list__item">{{'entity.product.field.Image'|trans}}</div>
  21.                     <div class="list__item">{{'entity.product.field.Reference'|trans}}</div>
  22.                     <div class="list__item item__brand">{{'entity.product.field.Brand'|trans}}</div>
  23.                     <div class="list__item item__productName">{{'entity.product.field.Name'|trans}}</div>
  24.                     {# {% for lang in langs %}
  25.                         <div class="list__item item__nameLang lang__ico">
  26.                             <img src="/image/svg/ico_{{lang.icu}}.svg" alt="{{lang.icu}}">
  27.                         </div>
  28.                     {% endfor %} #}
  29.                     <div class="list__item item__action"></div>
  30.                 </div>
  31.                 <div class="list__row list__search">
  32.                     <div class="list__item multidelete" data-multidelete-url="{{url('app_product_delete_multiple')}}">
  33.                         <span class="btn btn--sizeXS btn__primary--line">{{'entity.general.delete'|trans}}</span>
  34.                     </div>
  35.                     <div class="list__item list__item--search">
  36.                         <input type="text" data-search-item="id" class="input input--sizeS input--search" placeholder="{{'entity.product.field.ID'|trans}}">
  37.                     </div>
  38.                     <div class="list__item list__item--search"></div>
  39.                     <div class="list__item list__item--search">
  40.                         <input type="text" data-search-item="reference" class="input input--sizeS input--search" placeholder="{{'entity.product.field.Reference'|trans}}">
  41.                     </div>
  42.                     <div class="list__item list__item--search">
  43.                         <input type="text" data-search-item="brand" class="input input--sizeS input--search" placeholder="{{'entity.product.field.Brand'|trans}}">
  44.                     </div>
  45.                     <div class="list__item list__item--search">
  46.                         <input type="text" data-search-item="name" class="input input--sizeS input--search" placeholder="{{'entity.product.field.Name'|trans}}">
  47.                     </div>
  48.                     {# {% for lang in langs %} #}
  49.                         <div class="list__item list__item--search item__nameLang lang__ico"></div>
  50.                     {# {% endfor %} #}
  51.                     <div class="list__item item__action list__item--search">
  52.                         <span class="btn btn__primary--line btn--sizeS searchReset">{{"search.Reset"|trans}}</span>
  53.                     </div>
  54.                 </div>
  55.             </div>
  56.             <div class="list__body">
  57.                 {% for product in products %}
  58.                     <div class="list__row" data-search-id="{{product.id|lower}}" data-search-brand="{{product.brand|lower}}" data-search-reference="{{product.reference|lower}}" data-search-name="{% for productLang in product.productLangs %}{% if productLang.lang == userInterfaceLang %}{{productLang.name|lower}}{% endif %}{% endfor %}">
  59.                         <div class="list__item input_group--checkbox item__multiDelete">
  60.                             <input type="checkbox" id="itemDelete{{product.id}}" name="itemDelete[]" value="{{product.id}}" class="multiDelete__checkbox">
  61.                             <label for="itemDelete{{product.id}}" class="multiDelete__label"></label>
  62.                         </div>
  63.                         <div class="list__item item__productId">{{product.id}}</div>
  64.                         <div class="list__item item__productImage">
  65.                             {% set imageDisplayed = false %}
  66.                             {% for productImage in product.image %}
  67.                                 {% if productImage.cover == 1 and imageDisplayed == false %}
  68.                                     <img width="75" loading="lazy" src="/image/products/{{productImage.name}}" data-image-id="{{productImage.id}}" data-image-description="{{productImage.description}}" data-image-cover="{{productImage.cover}}">
  69.                                     {% set imageDisplayed = true %}
  70.                                 {% endif %}
  71.                             {% endfor %}
  72.                         </div>
  73.                         <div class="list__item item__productReference">{{product.reference}}</div>
  74.                         <div class="list__item item__productBrand">{{product.brand}}</div>
  75.                         <div class="list__item item__productName">
  76.                             {% for productLang in product.productLangs %}
  77.                                 {% if productLang.lang == userInterfaceLang %}
  78.                                     <p>{{productLang.name}}</p>
  79.                                 {% endif %}
  80.                             {% endfor %}
  81.                         </div>
  82.                         <div class="list__item item__nameLang">
  83.                             {% for lang in langs %}
  84.                                 {% for productLang in product.productLangs %}
  85.                                     {% if productLang.lang == lang %}
  86.                                         <div class="langProgression {% if productLang.progression > 98 %}langProgression--green{% elseif productLang.progression > 74 %}langProgression--yellow{% else %}langProgression--red{% endif %}" data-lang="{{lang.id}}">
  87.                                             <div class="langProgression__identity">
  88.                                                 <div class="langProgression__name">
  89.                                                     <span>{{lang.icu}}</span>
  90.                                                 </div>
  91.                                                 <div class="langProgression__ico"><img src="/image/svg/ico_{{lang.icu}}.svg"></div>
  92.                                             </div>
  93.                                             <div class="langProgression__progression">{{productLang.progression}}%</div>
  94.                                         </div>
  95.                                     {% endif %}
  96.                                 {% endfor %}
  97.                             {% endfor %}
  98.                         </div>
  99.                         <div class="list__item item__actions">
  100.                             <div class="item__action">
  101.                                 <span class="list__action list__action--sync" data-action-name="{{'page.product.list.action.Sync'|trans}}" data-product-id="{{product.id}}">
  102.                                     {% include "svg/arrow-rotate.svg" %}
  103.                                 </span>
  104.                                 <a href="{{url('app_product_edit',{'id':product.id})}}" data-action-name="{{'page.product.list.action.Edit'|trans}}" class="list__action">
  105.                                     {% include "svg/pen.svg" %}
  106.                                 </a>
  107.                                 {% include "product/_delete.html.twig" %}
  108.                             </div>
  109.                         </div>
  110.                     </div>
  111.                 {% endfor %}
  112.             </div>
  113.         </div>
  114.         <a href="#breadcrumb" class="list__toTop">
  115.             <svg xmlns="http://www.w3.org/2000/svg" height="1em" viewbox="0 0 384 512"><path d="M203.3 36.7c-6.2-6.2-16.4-6.2-22.6 0l-176 176c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L176 86.6V464c0 8.8 7.2 16 16 16s16-7.2 16-16V86.6L356.7 235.3c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-176-176z"/></svg>
  116.         </a>
  117.     </div>
  118.     <div class="modal">
  119.         <form method="POST" action="{{url('app_product_sync')}}" class="modal__wrapper">
  120.             <input type="hidden" name="productId" id="inputProductId" value="0">
  121.             <h2 class="modal__title">Sync product</h2>
  122.             <section class="modal__section">
  123.                 <h3 class="modal__sectionTitle">Select the web sites where your want sync the product</h3>
  124.                 <div class="modal__checkbox modal__checkbox--type">
  125.                     {% for site in sites %}
  126.                         <div class="input_group input_group--checkbox">
  127.                             <label for="selectSyncSite{{site.id}}">{{site.name}}</label>
  128.                             <input type="checkbox" id="selectSyncSite{{site.id}}" name="selectSyncSite[]" value="{{site.id}}">
  129.                         </div>
  130.                     {% endfor %}
  131.                 </div>
  132.             </section>
  133.             <button type="submit" class="btn btn--sizeM btn__primary--line btnExport">Sync</button>
  134.         </form>
  135.     </div>
  136. {% endblock %}