Current File : //var/www/vinorea/src/PrestaShopBundle/Resources/views/Admin/Product/ProductPage/product.html.twig
 {#**
 * Copyright since 2007 PrestaShop SA and Contributors
 * PrestaShop is an International Registered Trademark & Property of PrestaShop SA
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Open Software License (OSL 3.0)
 * that is bundled with this package in the file LICENSE.md.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/OSL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@prestashop.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to https://devdocs.prestashop.com/ for more information.
 *
 * @author    PrestaShop SA and Contributors <contact@prestashop.com>
 * @copyright Since 2007 PrestaShop SA and Contributors
 * @license   https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
 *#}
{% extends '@PrestaShop/Admin/layout.html.twig' %}

{% block stylesheets %}
  {{ parent() }}
  <link rel="stylesheet" href="{{ asset('themes/new-theme/public/product' ~ rtl_suffix ~ '.css') }}" type="text/css" media="all">
{% endblock %}

{% block content %}
  {% set hooks = renderhooksarray('displayAdminProductsExtra', { 'id_product': id_product }) %}
  <div class="header-toolbar d-print-none">
    {{ multistoreHeader() }}
  </div>
  <form name="form" id="form" method="post" class="form-horizontal product-page row justify-content-md-center" novalidate="novalidate">

    {% if not editable %} <fieldset disabled id="field-disabled"> {% endif %}
    {# PRODUCT HEADER #}
    {% block product_header %}
      {{ include('@Product/ProductPage/Blocks/header.html.twig', {
        'formName': form.step1.name,
        'formType': form.step1.type_product,
        'is_multishop_context': is_multishop_context,
        'languages': languages,
        'help_link': help_link,
        'stats_link': stats_link,
        'isCreationMode': isCreationMode,
        })
      }}
    {% endblock %}

    <div class="col-md-10">
      <div id="form_bubbling_errors">
        {{ form_errors(form) }}
      </div>
    </div>

    <div id="form-loading" class="col-xxl-10">
      {# FORM TABS CONTAINER #}
      {% block product_tabs_container %}
        {{ include('@Product/ProductPage/Blocks/tabs.html.twig', { 'hooks': hooks }) }}
      {% endblock %}
      <div id="form_content" class="tab-content">

        {# PANEL ESSENTIALS #}
        {% block product_panel_essentials %}
          {% set formQuantityShortcut = form.step1.qty_0_shortcut is defined ? form.step1.qty_0_shortcut : null  %}
          {{ include('@Product/ProductPage/Panels/essentials.html.twig', {
              'formPackItems': form.step1.inputPackItems,
              'productId': id_product,
              'images': form.step1.vars.value.images,
              'formShortDescription': form.step1.description_short,
              'formDescription': form.step1.description,
              'formFeatures': form.step1.features,
              'formManufacturer': form.step1.id_manufacturer,
              'formRelatedProducts': form.step1.related_products,
              'is_combination_active': is_combination_active,
              'has_combinations': has_combinations,
              'formReference': form.step6.reference,
              'formQuantityShortcut': formQuantityShortcut,
              'formPriceShortcut': form.step1.price_shortcut,
              'formPriceShortcutTTC': form.step1.price_ttc_shortcut,
              'formCategories': form.step1,
            })
          }}
        {% endblock %}

        {# PANEL COMBINATIONS #}
        {% block product_panel_combinations %}
          {% set formStockQuantity = form.step3.qty_0 is defined ? form.step3.qty_0 : null  %}
          {{ include('@Product/ProductPage/Panels/combinations.html.twig', {
              'formDependsOnStocks': form.step3.depends_on_stock,
              'productId': id_product,
              'formStockQuantity': formStockQuantity,
              'formStockMinimalQuantity': form.step3.minimal_quantity,
              'formLowStockThreshold': form.step3.low_stock_threshold,
              'formLocation': form.step3.location,
              'formLowStockAlert': form.step3.low_stock_alert,
              'formVirtualProduct': form.step3.virtual_product,
              'asm_globally_activated': asm_globally_activated,
              'formType': form.step1.type_product,
              'formAdvancedStockManagement': form.step3.advanced_stock_management,
              'formPackStockType': form.step3.pack_stock_type,
              'formStep3': form.step3,
              'formCombinations': formCombinations,
              'has_combinations': has_combinations,
              'max_upload_size': max_upload_size
            })
          }}
        {% endblock %}

        {# PANEL SHIPPING #}
        {% block product_panel_shipping %}
          <div role="tabpanel" class="form-contenttab tab-pane" id="step4">
                <div class="container-fluid">
                  <div class="row">
                    {{ include('@Product/ProductPage/Forms/form_shipping.html.twig', {
                      'form' : form.step4,
                      'asm_globally_activated': asm_globally_activated,
                      'isNotVirtual': form.step1.type_product.vars.value != "2",
                      'isChecked': form.step3.advanced_stock_management.vars.checked,
                      'warehouses': warehouses
                    }) }}
                  </div>
                </div>
          </div>
        {% endblock %}

        {# PANEL PRICING #}
        {% block product_panel_pricing %}
          {{ include('@Product/ProductPage/Panels/pricing.html.twig', {
            'pricingForm': form.step2,
            'is_multishop_context': is_multishop_context,
            'productId': id_product
          }) }}
        {% endblock %}

        {# PANEL SEO #}
        {% block product_panel_seo %}
          {{ include('@Product/ProductPage/Panels/seo.html.twig', {
            'seoForm': form.step5,
            'productId': id_product
          }) }}
        {% endblock %}

        {# PANEL OPTIONS #}
        {% block product_panel_options %}
          {{ include('@Product/ProductPage/Panels/options.html.twig', {
            'optionsForm': form.step6,
            'productId': id_product
          }) }}
        {% endblock %}

        {# PANEL HOOKED MODULES #}
        {% block product_panel_modules %}
          {% if hooksarraycontent(hooks) is not empty %}
            <div role="tabpanel" class="form-contenttab tab-pane" id="hooks">
              <div class="container-fluid">
                <div class="row module-selection" style="display: none;">
                  <div class="col-lg-7">
                    {% for module in hooks %}
                      <div class="module-render-container module-{{ module.attributes.name }}">
                        <div>
                          <img class="top-logo" src="{{ module.attributes.img }}" alt="{{ module.attributes.displayName }}">
                          <h2 class="text-ellipsis module-name-grid">{{ module.attributes.displayName }}</h2>
                          <div class="text-ellipsis small-text module-version">{{ module.attributes.version }} by {{ module.attributes.author }}</div>
                        </div>
                        <div class="small no-padding">
                          {{ module.attributes.description }}
                        </div>
                      </div>
                    {% endfor %}
                  </div>
                  <div class="col-lg-5">
                    <h2>{{ 'Module to configure'|trans({}, 'Admin.Catalog.Feature') }}</h2>
                    <select class="modules-list-select" data-toggle="select2">
                      {% for module in hooks %}
                        <option value="module-{{ module.attributes.name }}">{{ module.attributes.displayName }}</option>
                      {% endfor %}
                    </select>
                  </div>
                </div>

                <div class="module-render-container all-modules">
                  <div>
                    <h2>{{ 'Choose a module to configure'|trans({}, 'Admin.Catalog.Feature') }}</h2>
                    <p>{{ 'These modules are relative to the product page of your store.'|trans({}, 'Admin.Catalog.Feature') }}<br />
                    {{ 'To manage all your modules go to the [1]Installed module page[/1]'|trans({}, 'Admin.Catalog.Feature')|replace({'[1]': '<a href="' ~ path("admin_module_manage") ~ '">', '[/1]': '</a>'})|raw }}</p>
                  </div>
                  <div class="row">
                    {% for module in hooks %}
                      <div class="col-lg-6 col-xl-4">
                        <div class="module-item-wrapper-grid">
                          <div class="module-item-heading-grid">
                            <img class="module-logo-thumb-grid" src="{{ module.attributes.img }}" alt="{{ module.attributes.displayName }}">
                            <h3 class="text-ellipsis module-name-grid">
                              {{ module.attributes.displayName }}
                            </h3>
                            <div class="text-ellipsis small-text module-version-author-grid">
                              {{ module.attributes.version }} by {{ module.attributes.author }}
                            </div>
                          </div>
                          <div class="module-quick-description-grid small no-padding">
                            {{ module.attributes.description }}
                          </div>
                          <div class="module-container">
                            <div class="module-quick-action-grid clearfix">
                              <button class="modules-list-button btn btn-outline-primary pull-xs-right" data-target="module-{{ module.id }}">
                                {{ 'Configure'|trans({}, 'Admin.Actions') }}
                              </button>
                            </div>
                          </div>
                        </div>
                      </div>
                    {% endfor %}
                  </div>
                </div>

                {% for module in hooks %}
                  <div id="module_{{ module.id }}" class="module-render-container module-{{ module.attributes.name }}" style="display: none;">
                    <div>{{ module.content|raw }}</div>
                  </div>
                {% endfor %}

              </div>
            </div>
          {% endif %}
        {% endblock %}
      </div>

      {{ form_widget(form.id_product) }}
      {{ form_widget(form._token) }}

    </div>
    {# FOOTER #}
    {{ include('@Product/ProductPage/Blocks/footer.html.twig', {
      'preview_link': preview_link,
      'preview_link_deactivate': preview_link_deactivate,
      'is_shop_context': is_shop_context,
      'editable': editable,
      'is_active': form.step1.vars.value.active,
      'productId': id_product
    }) }}
    {% if not editable %} </fieldset> {% endif %}
  </form>


  {% embed '@PrestaShop/Admin/Helpers/bootstrap_popup.html.twig' with {
    'id': 'confirmation_modal',
    'title': "Warning"|trans({}, 'Admin.Notifications.Warning'),
    'closable': false,
    'actions': [
      {
        'type': 'button',
        'label': "No"|trans({}, 'Admin.Global'),
        'class': 'btn btn-outline-secondary btn-lg cancel'
      },
      {
        'type': 'button',
        'label': "Yes"|trans({}, 'Admin.Global'),
        'class': 'btn btn-primary btn-lg continue'
      }
    ],
  } %}
    {% block content %}
      <div class="modal-body"></div>
    {% endblock %}
  {% endembed %}

{% endblock %}

{% block javascripts %}
  {{ parent() }}

  <script src="{{ asset('themes/new-theme/public/catalog_product.bundle.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/product-manufacturer.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/product-related.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/product-category-tags.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/default-category.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/product-combinations.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/category-tree.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/modal-confirmation.js') }}"></script>
  <script src="{{ asset('themes/new-theme/public/product_page.bundle.js') }}"></script>
  <script src="{{ asset('themes/default/js/bundle/product/form.js') }}"></script>
  <script src="{{ asset('../js/tiny_mce/tiny_mce.js') }}"></script>
  <script src="{{ asset('../js/admin/tinymce.inc.js') }}"></script>
  <script src="{{ asset('../js/admin/tinymce_loader.js') }}"></script>

  <script>
      $(function() {
        var editable = '{{ editable }}';

        if (editable !== '1'){
          $('#field-disabled').find("select").each(function() {
            $(this).removeClass('select2-hidden-accessible');
          });
          $('#field-disabled').find("span.select2").each(function() {
            $(this).hide();
          });
          $('#field-disabled').find("a.pstaggerClosingCross").each(function() {
            $(this).attr("disabled", "disabled").on("click", function() {
              return false;
            });
          });
        }
      });
  </script>
{% endblock %}

{% set js_translatable = {
"Are you sure to disable variations ? they will all be deleted": "This will delete all the combinations. Do you wish to proceed?"|trans({}, 'Admin.Catalog.Notification'),
}|merge(js_translatable) %}

{% set js_translatable = {
"Form update success": "Settings updated."|trans({}, 'Admin.Notifications.Success'),
"Form update errors": "Unable to update settings."|trans({}, 'Admin.Notifications.Error'),
"Delete": "Delete"|trans({}, 'Admin.Actions'),
"ToLargeFile": "The file is too large. Maximum size allowed is: [1] MB. The file you are trying to upload is [2] MB."|trans({}, 'Admin.Notifications.Error')|replace({ '[1]': '{{maxFilesize}}', '[2]': '{{filesize}}' }),
"Drop images here": "Drop images here"|trans({}, 'Admin.Catalog.Feature'),
"or select files": "or select files"|trans({}, 'Admin.Catalog.Feature'),
"files recommandations": "Recommended size 800 x 800px for default theme."|trans({}, 'Admin.Catalog.Feature'),
"files recommandations2": "JPG, GIF, PNG or WebP format."|trans({}, 'Admin.Catalog.Feature'),
"Cover": "Cover"|trans({}, 'Admin.Catalog.Feature'),
"Are you sure you want to delete this item?": "Are you sure you want to delete this item?"|trans({}, 'Admin.Notifications.Warning'),
"Quantities": "Quantities"|trans({}, 'Admin.Catalog.Feature'),
"Combinations": "Combinations"|trans({}, 'Admin.Catalog.Feature'),
"Virtual product": "Virtual product"|trans({}, 'Admin.Catalog.Feature'),
"tax incl.": "tax incl."|trans({}, 'Admin.Catalog.Feature'),
"tax excl.": "tax excl."|trans({}, 'Admin.Catalog.Feature'),
"You can't create pack product with variations. Are you sure to disable variations ? they will all be deleted.": "A pack of products can't have combinations."|trans({}, "Admin.Catalog.Notification") ~ ' ' ~ js_translatable['Are you sure to disable variations ? they will all be deleted'],
"You can't create virtual product with variations. Are you sure to disable variations ? they will all be deleted.": "A virtual product can't have combinations."|trans({}, "Admin.Catalog.Notification") ~ ' ' ~ js_translatable['Are you sure to disable variations ? they will all be deleted'],
"Are you sure you want to delete the selected item(s)?": "Are you sure you want to delete the selected item(s)?"|trans({}, 'Admin.Global'),
}|merge(js_translatable) %}