var/cache/dev/twig/ba/baf55d7c6af3e6a62807d52807076681.php line 43

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* @admin/Product/index.twig */
  14. class __TwigTemplate_50e4977c9cf6cb91ba5d378046e39120 extends \Eccube\Twig\Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'title' => [$this'block_title'],
  24.             'sub_title' => [$this'block_sub_title'],
  25.             'javascript' => [$this'block_javascript'],
  26.             'main' => [$this'block_main'],
  27.         ];
  28.         $this->sandbox $this->env->getExtension('\Twig\Extension\SandboxExtension');
  29.         $this->checkSecurity();
  30.     }
  31.     protected function doGetParent(array $context)
  32.     {
  33.         // line 11
  34.         return "@admin/default_frame.twig";
  35.     }
  36.     protected function doDisplay(array $context, array $blocks = [])
  37.     {
  38.         $macros $this->macros;
  39.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  40.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@admin/Product/index.twig"));
  41.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  42.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""@admin/Product/index.twig"));
  43.         // line 13
  44.         $context["menus"] = [=> "product"=> "product_master"];
  45.         // line 18
  46.         $this->env->getRuntime("Symfony\\Component\\Form\\FormRenderer")->setTheme((isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'18$this->source); })()), [=> "@admin/Form/bootstrap_4_layout.html.twig"], true);
  47.         // line 11
  48.         $this->parent $this->loadTemplate("@admin/default_frame.twig""@admin/Product/index.twig"11);
  49.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  50.         
  51.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  52.         
  53.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  54.     }
  55.     // line 15
  56.     public function block_title($context, array $blocks = [])
  57.     {
  58.         $macros $this->macros;
  59.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  61.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  62.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  63.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.product_list"), "html"nulltrue);
  64.         
  65.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  66.         
  67.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  68.     }
  69.     // line 16
  70.     public function block_sub_title($context, array $blocks = [])
  71.     {
  72.         $macros $this->macros;
  73.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  74.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""sub_title"));
  75.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  76.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""sub_title"));
  77.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.product_management"), "html"nulltrue);
  78.         
  79.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  80.         
  81.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  82.     }
  83.     // line 19
  84.     public function block_javascript($context, array $blocks = [])
  85.     {
  86.         $macros $this->macros;
  87.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  88.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  89.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  90.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript"));
  91.         // line 20
  92.         echo "    <script>
  93.         \$(function() {
  94.             \$('#bulkDelete').on('click', function() {
  95.                 var modal = \$('#bulkDeleteModal');
  96.                 // 削除中のUI変更処理
  97.                 modal.find('button').attr('disabled', 'disabled');
  98.                 \$('.modal-body p', modal).text(\"";
  99.         // line 28
  100.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__in_progress"), "html"nulltrue);
  101.         echo "\");
  102.                 \$('.progress', modal).show();
  103.                 var checkedList = \$('input[type=checkbox][data-delete-url]:checked');
  104.                 var totalCount = checkedList.length;
  105.                 var currentCount = 0;
  106.                 var promises = checkedList.map(function() {
  107.                     return \$.ajax({
  108.                         'url': \$(this).data('delete-url'),
  109.                         'type': 'delete',
  110.                         'data': {'_token': \$(this).attr('token-for-anchor')}
  111.                     }).always(function() {
  112.                         \$('.progress-bar', modal).css('width', (++currentCount / totalCount * 100) + '%');
  113.                     });
  114.                 });
  115.                 var addError = function(errorMessage) {
  116.                     \$('<li><span class=\"badge bg-danger\">ERROR</span> </li>')
  117.                         .append(\$('<span></span>').text(errorMessage))
  118.                         .appendTo('#bulkErrors');
  119.                 };
  120.                 \$.when.apply(\$, promises)
  121.                     .done(function() {
  122.                         // 削除できなかった場合はエラーメッセージを表示
  123.                         var args = promises.length === 1 ? [arguments[0]] : [].slice.call(arguments).map(function(result) {
  124.                             return result[0];
  125.                         });
  126.                         args.filter(function(result) {
  127.                             return result.success === false;
  128.                         }).forEach(function(result) {
  129.                             addError(result.message);
  130.                         });
  131.                     })
  132.                     .fail(function() {
  133.                         // システムエラー
  134.                         addError(\"";
  135.         // line 65
  136.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__system_error"), "html"nulltrue);
  137.         echo "\");
  138.                     })
  139.                     .always(function() {
  140.                         \$('.progress', modal).hide();
  141.                         \$('.modal-body p', modal).text(\"";
  142.         // line 69
  143.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__complete_message"), "html"nulltrue);
  144.         echo "\");
  145.                         modal.find('button').removeAttr('disabled').toggle();
  146.                     })
  147.             });
  148.             \$('#bulkDeleteDone').on('click', function() {
  149.                 location.reload(true);
  150.             });
  151.             toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  152.             \$('input[id^=\"check_\"]').on('change', function() {
  153.                 \$('#trigger_check_all').prop('checked', false);
  154.                 toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  155.             });
  156.             \$('#trigger_check_all').on('change', function() {
  157.                 var checked = \$(this).prop('checked');
  158.                 if (checked) {
  159.                     \$('input[id^=\"check_\"]').prop('checked', true);
  160.                 } else {
  161.                     \$('input[id^=\"check_\"]').prop('checked', false);
  162.                 }
  163.                 toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  164.             });
  165.             \$('#form_bulk').find('.action-submit').on('click', function(event) {
  166.                 event.preventDefault();
  167.                 var form = \$(this).closest('form');
  168.                 if (!form.find('input:checkbox[name^=\"ids\"]:checked').length) {
  169.                     ";
  170.         // line 99
  171.         echo "                    alert('please check');
  172.                     return false;
  173.                 }
  174.                 \$('<input />').attr('type', 'hidden').attr('name', '";
  175.         // line 103
  176.         echo twig_escape_filter($this->envtwig_constant("Eccube\\Common\\Constant::TOKEN_NAME"), "html"nulltrue);
  177.         echo "')
  178.                     .val(\$(this).attr('token-for-anchor'))
  179.                     .appendTo(form);
  180.                 form.attr('action', \$(this).data('action')).submit();
  181.                 return false;
  182.             });
  183.             var dataClass = [];
  184.             var modalClass = \$('#productClassesModal');
  185.             \$('form#form_bulk').on('click', 'table.table button[data-class-url]', function() {
  186.                 var btnClass = \$(this);
  187.                 btnClass.attr('disabled', true);
  188.                 var productId = btnClass.data('product-id');
  189.                 if (dataClass[productId] != undefined) {
  190.                     renderClass(dataClass[productId], btnClass);
  191.                     return;
  192.                 }
  193.                 \$.ajax({
  194.                     url: btnClass.data('class-load'),
  195.                     type: 'GET',
  196.                 }).done(function(data) {
  197.                     dataClass[productId] = data;
  198.                     renderClass(dataClass[productId], btnClass);
  199.                 }).fail(function() {
  200.                     alert('Failed');
  201.                 });
  202.             });
  203.             // Append html and show popup
  204.             function renderClass(data, btnClass) {
  205.                 \$('div.modal-body', modalClass).html(data);
  206.                 \$('h5.modal-title', modalClass).text(btnClass.data('message'));
  207.                 \$('a.btn-ec-conversion', modalClass).attr('href', btnClass.data('class-url'));
  208.                 modalClass.modal('show');
  209.                 btnClass.attr('disabled', false);
  210.             }
  211.         });
  212.     </script>
  213. ";
  214.         
  215.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  216.         
  217.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  218.     }
  219.     // line 145
  220.     public function block_main($context, array $blocks = [])
  221.     {
  222.         $macros $this->macros;
  223.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  224.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  225.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  226.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""main"));
  227.         // line 146
  228.         echo "    <div class=\"c-outsideBlock\">
  229.         <form id='search_form' method=\"post\" action=\"";
  230.         // line 147
  231.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product");
  232.         echo "\">
  233.             ";
  234.         // line 148
  235.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'148$this->source); })()), "_token", [], "any"falsefalsetrue148), 148$this->source), 'widget');
  236.         echo "
  237.             <div class=\"c-outsideBlock__contents\">
  238.                 <div class=\"row justify-content-start\">
  239.                     <div class=\"col-6\">
  240.                         <div class=\"mb-2\">
  241.                             <label class=\"col-form-label\" data-bs-toggle=\"tooltip\" data-bs-placement=\"top\" title=\"";
  242.         // line 154
  243.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("tooltip.product.multi_search_label"), "html"nulltrue);
  244.         echo "\">";
  245.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.multi_search_label"), "html"nulltrue);
  246.         echo "<i class=\"fa fa-question-circle fa-lg ms-1\"></i></label>
  247.                             ";
  248.         // line 155
  249.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'155$this->source); })()), "id", [], "any"falsefalsetrue155), 155$this->source), 'widget');
  250.         echo "
  251.                             ";
  252.         // line 156
  253.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'156$this->source); })()), "id", [], "any"falsefalsetrue156), 156$this->source), 'errors');
  254.         echo "
  255.                         </div>
  256.                         <div class=\"d-inline-block mb-3\" data-bs-toggle=\"collapse\" href=\"#searchDetail\"
  257.                              aria-expanded=\"false\" aria-controls=\"searchDetail\"><a><i
  258.                                         class=\"fa fa-plus-square-o fw-bold me-1\"></i><span
  259.                                         class=\"fw-bold\">";
  260.         // line 161
  261.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_detail"), "html"nulltrue);
  262.         echo "</span></a>
  263.                         </div>
  264.                     </div>
  265.                 </div>
  266.             </div>
  267.             <div class=\"c-subContents collapse ec-collapse";
  268.         // line 166
  269.         echo (((isset($context["has_errors"]) || array_key_exists("has_errors"$context) ? $context["has_errors"] : (function () { throw new RuntimeError('Variable "has_errors" does not exist.'166$this->source); })())) ? (" show") : (""));
  270.         echo "\" id=\"searchDetail\">
  271.                 <div class=\"row mb-2\">
  272.                     <div class=\"col-6\">
  273.                         <div class=\"row mb-2\">
  274.                             <div class=\"col-6\">
  275.                                 <label class=\"col-form-label\">";
  276.         // line 171
  277.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.category"), "html"nulltrue);
  278.         echo "</label>
  279.                                 ";
  280.         // line 172
  281.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'172$this->source); })()), "category_id", [], "any"falsefalsetrue172), 172$this->source), 'widget');
  282.         echo "
  283.                                 ";
  284.         // line 173
  285.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'173$this->source); })()), "category_id", [], "any"falsefalsetrue173), 173$this->source), 'errors');
  286.         echo "
  287.                             </div>
  288.                         </div>
  289.                         <div class=\"row mb-2\">
  290.                             <div class=\"col-12\">
  291.                                 <p class=\"col-form-label\">";
  292.         // line 178
  293.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.display_status"), "html"nulltrue);
  294.         echo "</p>
  295.                                 ";
  296.         // line 179
  297.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'179$this->source); })()), "status", [], "any"falsefalsetrue179), 179$this->source), 'widget', ["label_attr" => ["class" => "checkbox-inline"]]);
  298.         echo "
  299.                                 ";
  300.         // line 180
  301.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'180$this->source); })()), "status", [], "any"falsefalsetrue180), 180$this->source), 'errors', ["label_attr" => ["class" => "checkbox-inline"]]);
  302.         echo "
  303.                             </div>
  304.                         </div>
  305.                         <div class=\"row mb-2\">
  306.                             <div class=\"col-12\">
  307.                                 <p class=\"col-form-label\">";
  308.         // line 185
  309.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.stock__short"), "html"nulltrue);
  310.         echo "</p>
  311.                                 ";
  312.         // line 186
  313.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'186$this->source); })()), "stock", [], "any"falsefalsetrue186), 186$this->source), 'widget', ["label_attr" => ["class" => "checkbox-inline"]]);
  314.         echo "
  315.                                 ";
  316.         // line 187
  317.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'187$this->source); })()), "stock", [], "any"falsefalsetrue187), 187$this->source), 'errors');
  318.         echo "
  319.                             </div>
  320.                         </div>
  321.                     </div>
  322.                     <div class=\"col-6\">
  323.                         <div class=\"row mb-2\">
  324.                             <div class=\"col-6\">
  325.                                 <label class=\"col-form-label\">";
  326.         // line 194
  327.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.tag"), "html"nulltrue);
  328.         echo "</label>
  329.                                 ";
  330.         // line 195
  331.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'195$this->source); })()), "tag_id", [], "any"falsefalsetrue195), 195$this->source), 'widget');
  332.         echo "
  333.                                 ";
  334.         // line 196
  335.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'196$this->source); })()), "tag_id", [], "any"falsefalsetrue196), 196$this->source), 'errors');
  336.         echo "
  337.                             </div>
  338.                         </div>
  339.                         <div class=\"mb-2\">
  340.                             <label class=\"col-form-label\">
  341.                                 ";
  342.         // line 201
  343.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.create_date"), "html"nulltrue);
  344.         echo "
  345.                             </label>
  346.                             <div class=\"row align-items-center\">
  347.                                 <div class=\"col\">
  348.                                     ";
  349.         // line 206
  350.         echo "                                    ";
  351.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'206$this->source); })()), "create_datetime_start", [], "any"falsefalsetrue206), 206$this->source), 'widget');
  352.         echo "
  353.                                     ";
  354.         // line 207
  355.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'207$this->source); })()), "create_datetime_start", [], "any"falsefalsetrue207), 207$this->source), 'errors');
  356.         echo "
  357.                                 </div>
  358.                                 <div class=\"col-auto text-center\"><span>";
  359.         // line 209
  360.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.separator__range"), "html"nulltrue);
  361.         echo "</span>
  362.                                 </div>
  363.                                 <div class=\"col\">
  364.                                     ";
  365.         // line 212
  366.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'212$this->source); })()), "create_datetime_end", [], "any"falsefalsetrue212), 212$this->source), 'widget');
  367.         echo "
  368.                                     ";
  369.         // line 213
  370.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'213$this->source); })()), "create_datetime_end", [], "any"falsefalsetrue213), 213$this->source), 'errors');
  371.         echo "
  372.                                 </div>
  373.                             </div>
  374.                         </div>
  375.                         <div class=\"mb-2\">
  376.                             <label class=\"col-form-label\">";
  377.         // line 218
  378.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.update_date"), "html"nulltrue);
  379.         echo "</label>
  380.                             <div class=\"row align-items-center\">
  381.                                 <div class=\"col\">
  382.                                     ";
  383.         // line 222
  384.         echo "                                    ";
  385.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'222$this->source); })()), "update_datetime_start", [], "any"falsefalsetrue222), 222$this->source), 'widget');
  386.         echo "
  387.                                     ";
  388.         // line 223
  389.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'223$this->source); })()), "update_datetime_start", [], "any"falsefalsetrue223), 223$this->source), 'errors');
  390.         echo "
  391.                                 </div>
  392.                                 <div class=\"col-auto\"><span>";
  393.         // line 225
  394.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.separator__range"), "html"nulltrue);
  395.         echo "</span></div>
  396.                                 <div class=\"col\">
  397.                                     ";
  398.         // line 227
  399.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'227$this->source); })()), "update_datetime_end", [], "any"falsefalsetrue227), 227$this->source), 'widget');
  400.         echo "
  401.                                     ";
  402.         // line 228
  403.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'228$this->source); })()), "update_datetime_end", [], "any"falsefalsetrue228), 228$this->source), 'errors');
  404.         echo "
  405.                                 </div>
  406.                             </div>
  407.                         </div>
  408.                         ";
  409.         // line 233
  410.         echo "                        ";
  411.         if ((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'233$this->source); })()), "user", [], "any"falsefalsetrue233), "getCustomizeRole", [], "method"falsefalsetrue233) == "ROLE_ADMIN")) {
  412.             // line 234
  413.             echo "                            <div class=\"mb-2\">
  414.                                 <label class=\"col-form-label\">";
  415.             // line 235
  416.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.department"), "html"nulltrue);
  417.             echo "</label>
  418.                                 <div class=\"row align-items-center\">
  419.                                     <div class=\"col\">
  420.                                         ";
  421.             // line 238
  422.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'238$this->source); })()), "vendor_id", [], "any"falsefalsetrue238), 238$this->source), 'widget');
  423.             echo "
  424.                                         ";
  425.             // line 239
  426.             echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'239$this->source); })()), "vendor_id", [], "any"falsefalsetrue239), 239$this->source), 'errors');
  427.             echo "
  428.                                     </div>
  429.                                 </div>
  430.                             </div>
  431.                         ";
  432.         }
  433.         // line 244
  434.         echo "                    </div>
  435.                 </div>
  436.                 ";
  437.         // line 247
  438.         echo "                ";
  439.         $context['_parent'] = $context;
  440.         $context['_seq'] = twig_ensure_traversable(twig_array_filter($this->env, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'247$this->source); })()), function ($__f__) use ($context$macros) { $context["f"] = $__f__; return twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["f"], "vars", [], "any"falsefalsetrue247), "eccube_form_options", [], "any"falsefalsetrue247), "auto_render", [], "any"falsefalsetrue247); }));
  441.         foreach ($context['_seq'] as $context["_key"] => $context["f"]) {
  442.             // line 248
  443.             echo "                    ";
  444.             // line 249
  445.             echo "                    <div class=\"row mb-2\">
  446.                         ";
  447.             // line 250
  448.             if (twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["f"], "vars", [], "any"falsefalsetrue250), "eccube_form_options", [], "any"falsefalsetrue250), "form_theme", [], "any"falsefalsetrue250)) {
  449.                 // line 251
  450.                 echo "                            ";
  451.                 $this->env->getRuntime("Symfony\\Component\\Form\\FormRenderer")->setTheme($context["f"], [=> twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["f"], "vars", [], "any"falsefalsetrue251), "eccube_form_options", [], "any"falsefalsetrue251), "form_theme", [], "any"falsefalsetrue251)], true);
  452.                 // line 252
  453.                 echo "                            ";
  454.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed($context["f"], 252$this->source), 'row');
  455.                 echo "
  456.                         ";
  457.             } else {
  458.                 // line 254
  459.                 echo "                            <div class=\"col\">
  460.                                 <div class=\"mb-3\">
  461.                                     <label>";
  462.                 // line 256
  463.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["f"], "vars", [], "any"falsefalsetrue256), "label", [], "any"falsefalsetrue256), 256$this->source)), "html"nulltrue);
  464.                 echo "</label>
  465.                                     ";
  466.                 // line 257
  467.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed($context["f"], 257$this->source), 'widget');
  468.                 echo "
  469.                                     ";
  470.                 // line 258
  471.                 echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed($context["f"], 258$this->source), 'errors');
  472.                 echo "
  473.                                 </div>
  474.                             </div>
  475.                         ";
  476.             }
  477.             // line 262
  478.             echo "                    </div>
  479.                 ";
  480.         }
  481.         $_parent $context['_parent'];
  482.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['f'], $context['_parent'], $context['loop']);
  483.         $context array_intersect_key($context$_parent) + $_parent;
  484.         // line 264
  485.         echo "            </div>
  486.             <div class=\"c-outsideBlock__contents mb-5\">
  487.                 <button class=\"btn btn-ec-conversion px-5\" type=\"submit\">";
  488.         // line 266
  489.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search"), "html"nulltrue);
  490.         echo "</button>
  491.                 ";
  492.         // line 267
  493.         if ((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'267$this->source); })())) {
  494.             // line 268
  495.             echo "                    <span class=\"fw-bold ms-2\">";
  496.             echo $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_result", ["%count%" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'268$this->source); })()), "totalItemCount", [], "any"falsefalsetrue268)]);
  497.             echo "</span>
  498.                 ";
  499.         }
  500.         // line 270
  501.         echo "            </div>
  502.             <div class=\"c-outsideBlock__contents mb-5\">
  503.                 ";
  504.         // line 272
  505.         echo $this->extensions['Eccube\Twig\Extension\IgnoreTwigSandboxErrorExtension']->twig_include($this->env$context"@admin/search_items.twig", ["form" => (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'272$this->source); })())], truetrue);
  506.         echo "
  507.             </div>
  508.             ";
  509.         // line 274
  510.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'274$this->source); })()), "sortkey", [], "any"falsefalsetrue274), 274$this->source), 'widget', ["attr" => ["class" => "js-listSort-key"]]);
  511.         echo "
  512.             ";
  513.         // line 275
  514.         echo $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source, (isset($context["searchForm"]) || array_key_exists("searchForm"$context) ? $context["searchForm"] : (function () { throw new RuntimeError('Variable "searchForm" does not exist.'275$this->source); })()), "sorttype", [], "any"falsefalsetrue275), 275$this->source), 'widget', ["attr" => ["class" => "js-listSort-type"]]);
  515.         echo "
  516.         </form>
  517.     </div>
  518.     <div class=\"c-contentsArea__cols\">
  519.         <div class=\"c-contentsArea__primaryCol\">
  520.             <div class=\"c-primaryCol\">
  521.                 ";
  522.         // line 281
  523.         if (((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'281$this->source); })()) && twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'281$this->source); })()), "totalItemCount", [], "any"falsefalsetrue281))) {
  524.             // line 282
  525.             echo "                    <form id=\"form_bulk\" method=\"POST\" action=\"\">
  526.                         <div class=\"row justify-content-between mb-2\">
  527.                             <div class=\"col-6\">
  528.                                 <div id=\"btn_bulk\" class=\"d-none\">
  529.                                     <label class=\"me-2\">";
  530.             // line 286
  531.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.bulk_actions"), "html"nulltrue);
  532.             echo "</label>
  533.                                     <div class=\"btn-group me-2\" role=\"group\">
  534.                                         <button ";
  535.             // line 288
  536.             echo $this->extensions['Eccube\Twig\Extension\CsrfExtension']->getCsrfTokenForAnchor();
  537.             echo " data-action=\"";
  538.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_bulk_product_status", ["id" => twig_constant("Eccube\\Entity\\Master\\ProductStatus::DISPLAY_SHOW")]), "html"nulltrue);
  539.             echo "\" class=\"btn btn-ec-regular action-submit\" type=\"button\">
  540.                                             <span>";
  541.             // line 289
  542.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.display_status__show"), "html"nulltrue);
  543.             echo "</span>
  544.                                         </button>
  545.                                         <button ";
  546.             // line 291
  547.             echo $this->extensions['Eccube\Twig\Extension\CsrfExtension']->getCsrfTokenForAnchor();
  548.             echo " data-action=\"";
  549.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_bulk_product_status", ["id" => twig_constant("Eccube\\Entity\\Master\\ProductStatus::DISPLAY_HIDE")]), "html"nulltrue);
  550.             echo "\" class=\"btn btn-ec-regular action-submit\" type=\"button\">
  551.                                             <span>";
  552.             // line 292
  553.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.display_status__hide"), "html"nulltrue);
  554.             echo "</span>
  555.                                         </button>
  556.                                     </div>
  557.                                     <button ";
  558.             // line 295
  559.             echo $this->extensions['Eccube\Twig\Extension\CsrfExtension']->getCsrfTokenForAnchor();
  560.             echo " data-action=\"";
  561.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_bulk_product_status", ["id" => twig_constant("Eccube\\Entity\\Master\\ProductStatus::DISPLAY_ABOLISHED")]), "html"nulltrue);
  562.             echo "\" class=\"btn btn-ec-regular me-2 action-submit\">
  563.                                         ";
  564.             // line 296
  565.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.display_status__abolished"), "html"nulltrue);
  566.             echo "
  567.                                     </button>
  568.                                     <button type=\"button\" data-bs-toggle=\"modal\" data-bs-target=\"#bulkDeleteModal\" class=\"btn btn-ec-delete\">";
  569.             // line 298
  570.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete"), "html"nulltrue);
  571.             echo "</button>
  572.                                 </div>
  573.                             </div>
  574.                             <div class=\"col-5 text-end\">
  575.                                 <div class=\"d-inline-block me-2 align-bottom\">
  576.                                     <div>
  577.                                         <select class=\"form-select\" onchange=\"location = this.value;\">
  578.                                             ";
  579.             // line 305
  580.             $context['_parent'] = $context;
  581.             $context['_seq'] = twig_ensure_traversable((isset($context["pageMaxis"]) || array_key_exists("pageMaxis"$context) ? $context["pageMaxis"] : (function () { throw new RuntimeError('Variable "pageMaxis" does not exist.'305$this->source); })()));
  582.             foreach ($context['_seq'] as $context["_key"] => $context["pageMax"]) {
  583.                 // line 306
  584.                 echo "                                                <option ";
  585.                 if ((twig_get_attribute($this->env$this->source$context["pageMax"], "name", [], "any"falsefalsetrue306) == (isset($context["page_count"]) || array_key_exists("page_count"$context) ? $context["page_count"] : (function () { throw new RuntimeError('Variable "page_count" does not exist.'306$this->source); })()))) {
  586.                     echo "selected=\"\"";
  587.                 }
  588.                 echo " value=\"";
  589.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("admin_product_page", ["page_no" => 1"page_count" => twig_get_attribute($this->env$this->source$context["pageMax"], "name", [], "any"falsefalsetrue306)]), "html"nulltrue);
  590.                 echo "\">";
  591.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.count", ["%count%" => twig_get_attribute($this->env$this->source$context["pageMax"], "name", [], "any"falsefalsetrue306)]), "html"nulltrue);
  592.                 echo "</option>
  593.                                             ";
  594.             }
  595.             $_parent $context['_parent'];
  596.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['pageMax'], $context['_parent'], $context['loop']);
  597.             $context array_intersect_key($context$_parent) + $_parent;
  598.             // line 308
  599.             echo "                                        </select>
  600.                                     </div>
  601.                                 </div>
  602.                                 <div class=\"d-inline-block\">
  603.                                     <div class=\"btn-group\" role=\"group\">
  604.                                         <a class=\"btn btn-ec-regular\" href=\"";
  605.             // line 313
  606.             echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_export");
  607.             echo "\">
  608.                                             <i class=\"fa fa-cloud-download me-1 text-secondary\"></i><span>";
  609.             // line 314
  610.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.csv_download"), "html"nulltrue);
  611.             echo "</span>
  612.                                         </a>
  613.                                         <a class=\"btn btn-ec-regular\" href=\"";
  614.             // line 316
  615.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_setting_shop_csv", ["id" => twig_constant("\\Eccube\\Entity\\Master\\CsvType::CSV_TYPE_PRODUCT")]), "html"nulltrue);
  616.             echo "\">
  617.                                             <i class=\"fa fa-cog me-1 text-secondary\"></i><span>";
  618.             // line 317
  619.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.setting.shop.csv_setting"), "html"nulltrue);
  620.             echo "</span>
  621.                                         </a>
  622.                                     </div>
  623.                                 </div>
  624.                             </div>
  625.                         </div>
  626.                         <div class=\"card rounded border-0 mb-4 d-block\">
  627.                             <div class=\"card-body p-0\">
  628.                                 <table class=\"table table-sm\">
  629.                                     <thead>
  630.                                     <tr>
  631.                                         <th class=\"border-top-0 ps-3 pt-2 pb-2\">
  632.                                             <input type=\"checkbox\" name=\"filter\" value=\"open\" id=\"trigger_check_all\">
  633.                                         </th>
  634.                                         <th class=\"border-top-0 pt-2 pb-2\" nowrap>";
  635.             // line 331
  636.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.product_id__short"), "html"nulltrue);
  637.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"product_id\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  638.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  639.             // line 332
  640.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.image__short"), "html"nulltrue);
  641.             echo "</th>
  642.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  643.             // line 333
  644.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.name"), "html"nulltrue);
  645.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"name\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  646.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  647.             // line 334
  648.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.department"), "html"nulltrue);
  649.             echo "</th>
  650.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  651.             // line 335
  652.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.product_code__short"), "html"nulltrue);
  653.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"product_code\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  654.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  655.             // line 336
  656.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.price"), "html"nulltrue);
  657.             echo "</th>
  658.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  659.             // line 337
  660.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.stock"), "html"nulltrue);
  661.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"stock\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  662.                                         <th class=\"border-top-0 pt-2 pb-2 text-nowrap\">";
  663.             // line 338
  664.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.display_status__short"), "html"nulltrue);
  665.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"status\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  666.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  667.             // line 339
  668.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.create_date"), "html"nulltrue);
  669.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"create_date\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  670.                                         <th class=\"border-top-0 pt-2 pb-2\">";
  671.             // line 340
  672.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.update_date"), "html"nulltrue);
  673.             echo "<a href=\"#\" class=\"js-listSort\" data-sortkey=\"update_date\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  674.                                         <th class=\"border-top-0 pt-2 pb-2 pe-3\" colspan=\"3\"></th>
  675.                                     </tr>
  676.                                     </thead>
  677.                                     <tbody>
  678.                                     ";
  679.             // line 345
  680.             $context['_parent'] = $context;
  681.             $context['_seq'] = twig_ensure_traversable((isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'345$this->source); })()));
  682.             foreach ($context['_seq'] as $context["_key"] => $context["Product"]) {
  683.                 // line 346
  684.                 echo "                                        <tr id=\"ex-product-";
  685.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue346), 346$this->source), "html"nulltrue);
  686.                 echo "\">
  687.                                             <td class=\"align-middle ps-3\">
  688.                                                 <input type=\"checkbox\" name=\"ids[]\" value=\"";
  689.                 // line 348
  690.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue348), 348$this->source), "html"nulltrue);
  691.                 echo "\" id=\"check_";
  692.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue348), 348$this->source), "html"nulltrue);
  693.                 echo "\" data-delete-url=\"";
  694.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_delete", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue348)]), "html"nulltrue);
  695.                 echo "\">
  696.                                             </td>
  697.                                             <td class=\"align-middle\">";
  698.                 // line 350
  699.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue350), 350$this->source), "html"nulltrue);
  700.                 echo "</td>
  701.                                             ";
  702.                 // line 352
  703.                 echo "                                            <td class=\"align-middle\">
  704.                                                 <a href=\"";
  705.                 // line 353
  706.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_edit", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue353)]), "html"nulltrue);
  707.                 echo "\">
  708.                                                     <img src=\"";
  709.                 // line 354
  710.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl($this->extensions['Eccube\Twig\Extension\EccubeExtension']->getNoImageProduct($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "mainFileName", [], "any"falsefalsetrue354), 354$this->source)), "save_image"), "html"nulltrue);
  711.                 echo "\"
  712.                                                          style=\"max-width: 50px\">
  713.                                                 </a>
  714.                                             </td>
  715.                                             <td class=\"align-middle\"><a
  716.                                                         href=\"";
  717.                 // line 359
  718.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_edit", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue359)]), "html"nulltrue);
  719.                 echo "\">";
  720.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "name", [], "any"falsefalsetrue359), 359$this->source), "html"nulltrue);
  721.                 echo "</a>
  722.                                             </td>
  723.                                             <td class=\"align-middle\"><a
  724.                                                         href=\"";
  725.                 // line 362
  726.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_edit", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue362)]), "html"nulltrue);
  727.                 echo "\">";
  728.                 (((twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["Product"], "vendor", [], "any"falsetruetrue362), "department", [], "any"truetruetrue362) &&  !(null === twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["Product"], "vendor", [], "any"falsetruetrue362), "department", [], "any"falsefalsetrue362)))) ? (print (twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["Product"], "vendor", [], "any"falsetruetrue362), "department", [], "any"falsefalsetrue362), "html"nulltrue))) : (print ("未設定")));
  729.                 echo "</a>
  730.                                             </td>
  731.                                             <td class=\"align-middle\">
  732.                                                 ";
  733.                 // line 365
  734.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "code_min", [], "any"falsefalsetrue365), 365$this->source), "html"nulltrue);
  735.                 echo "
  736.                                                 ";
  737.                 // line 366
  738.                 if ((twig_get_attribute($this->env$this->source$context["Product"], "code_min", [], "any"falsefalsetrue366) != twig_get_attribute($this->env$this->source$context["Product"], "code_max", [], "any"falsefalsetrue366))) {
  739.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.separator__range"), "html"nulltrue);
  740.                     echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "code_max", [], "any"falsefalsetrue366), 366$this->source), "html"nulltrue);
  741.                     echo "
  742.                                                 ";
  743.                 }
  744.                 // line 368
  745.                 echo "                                            </td>
  746.                                             <td class=\"align-middle\">
  747.                                                 ";
  748.                 // line 370
  749.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "price02_min", [], "any"falsefalsetrue370), 370$this->source)), "html"nulltrue);
  750.                 echo "
  751.                                                 ";
  752.                 // line 371
  753.                 if ((twig_get_attribute($this->env$this->source$context["Product"], "price02_min", [], "any"falsefalsetrue371) != twig_get_attribute($this->env$this->source$context["Product"], "price02_max", [], "any"falsefalsetrue371))) {
  754.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.separator__range"), "html"nulltrue);
  755.                     echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\EccubeExtension']->getPriceFilter($this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "price02_max", [], "any"falsefalsetrue371), 371$this->source)), "html"nulltrue);
  756.                     echo "
  757.                                                 ";
  758.                 }
  759.                 // line 373
  760.                 echo "                                            </td>
  761.                                             <td class=\"align-middle\">
  762.                                                 ";
  763.                 // line 375
  764.                 if (twig_get_attribute($this->env$this->source$context["Product"], "hasProductClass", [], "any"falsefalsetrue375)) {
  765.                     // line 376
  766.                     echo "                                                    <button type=\"button\" class=\"btn page-link text-dark d-inline-block\"
  767.                                                             data-product-id=\"";
  768.                     // line 377
  769.                     echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue377), 377$this->source), "html"nulltrue);
  770.                     echo "\"
  771.                                                             data-message=\"";
  772.                     // line 378
  773.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.move_to_product_class__confirm_title", ["%name%" => twig_get_attribute($this->env$this->source$context["Product"], "name", [], "any"falsefalsetrue378)]), "html"nulltrue);
  774.                     echo "\"
  775.                                                             data-class-load=\"";
  776.                     // line 379
  777.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_classes_load", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue379)]), "html"nulltrue);
  778.                     echo "\"
  779.                                                             data-class-url=\"";
  780.                     // line 380
  781.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_class", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue380), "return_product_list" => true]), "html"nulltrue);
  782.                     echo "\">
  783.                                                         ";
  784.                     // line 381
  785.                     echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.product_class__confirm"), "html"nulltrue);
  786.                     echo "
  787.                                                     </button>
  788.                                                 ";
  789.                 } else {
  790.                     // line 384
  791.                     echo "                                                    ";
  792.                     // line 385
  793.                     echo "                                                    ";
  794.                     if (twig_get_attribute($this->env$this->source$context["Product"], "stockunlimited_min", [], "any"falsefalsetrue385)) {
  795.                         // line 386
  796.                         echo "                                                        ";
  797.                         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.stock_unlimited__short"), "html"nulltrue);
  798.                         echo "
  799.                                                     ";
  800.                     } else {
  801.                         // line 388
  802.                         echo "                                                        ";
  803.                         echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "stock_min", [], "any"falsefalsetrue388), 388$this->source), "html"nulltrue);
  804.                         echo "
  805.                                                     ";
  806.                     }
  807.                     // line 390
  808.                     echo "                                                ";
  809.                 }
  810.                 // line 391
  811.                 echo "                                            </td>
  812.                                             <td class=\"align-middle\">
  813.                                                 ";
  814.                 // line 393
  815.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["Product"], "status", [], "any"falsefalsetrue393), "name", [], "any"falsefalsetrue393), 393$this->source), "html"nulltrue);
  816.                 echo "
  817.                                             </td>
  818.                                             <td class=\"align-middle\">
  819.                                                 ";
  820.                 // line 396
  821.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\IntlExtension']->date_min($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "create_date", [], "any"falsefalsetrue396), 396$this->source)), "html"nulltrue);
  822.                 echo "
  823.                                             </td>
  824.                                             <td class=\"align-middle\">
  825.                                                 ";
  826.                 // line 399
  827.                 echo twig_escape_filter($this->env$this->extensions['Eccube\Twig\Extension\IntlExtension']->date_min($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "update_date", [], "any"falsefalsetrue399), 399$this->source)), "html"nulltrue);
  828.                 echo "
  829.                                             </td>
  830.                                             <td class=\"align-middle pe-3\" colspan=\"3\">
  831.                                                 <div class=\"text-end\">
  832.                                                     <div class=\"px-1 d-inline-block text-center\" data-bs-toggle=\"tooltip\"
  833.                                                          data-bs-placement=\"top\"
  834.                                                          title=\"";
  835.                 // line 405
  836.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.display"), "html"nulltrue);
  837.                 echo "\"><a class=\"btn btn-ec-actionIcon\"
  838.                                                                                                        href=\"";
  839.                 // line 406
  840.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("product_detail", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue406)]), "html"nulltrue);
  841.                 echo "\"
  842.                                                                                                        target=\"_blank\"><i
  843.                                                                     class=\"fa fa-eye fa-lg text-secondary\"
  844.                                                                     aria-hidden=\"true\"></i></a></div>
  845.                                                     <div class=\"px-1 d-inline-block text-center\" data-bs-toggle=\"tooltip\"
  846.                                                          data-bs-placement=\"top\"
  847.                                                          title=\"";
  848.                 // line 412
  849.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.copy"), "html"nulltrue);
  850.                 echo "\">
  851.                                                         <a href=\"#\" class=\"btn btn-ec-actionIcon\"
  852.                                                            data-bs-toggle=\"modal\"
  853.                                                            data-bs-target=\"#confirmModal-";
  854.                 // line 415
  855.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue415), 415$this->source), "html"nulltrue);
  856.                 echo "\">
  857.                                                             <i class=\"fa fa-files-o fa-lg text-secondary\"
  858.                                                                aria-hidden=\"true\"></i></a>
  859.                                                         <div class=\"modal fade\" id=\"confirmModal-";
  860.                 // line 418
  861.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue418), 418$this->source), "html"nulltrue);
  862.                 echo "\" tabindex=\"-1\"
  863.                                                              role=\"dialog\"
  864.                                                              aria-labelledby=\"confirmModal-";
  865.                 // line 420
  866.                 echo twig_escape_filter($this->env$this->sandbox->ensureToStringAllowed(twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue420), 420$this->source), "html"nulltrue);
  867.                 echo "\" aria-hidden=\"true\">
  868.                                                             <div class=\"modal-dialog\" role=\"document\">
  869.                                                                 <div class=\"modal-content\">
  870.                                                                     <div class=\"modal-header\">
  871.                                                                         <h5 class=\"modal-title fw-bold\">
  872.                                                                             ";
  873.                 // line 425
  874.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.copy__confirm_title"), "html"nulltrue);
  875.                 echo "</h5>
  876.                                                                         <button class=\"btn-close\" type=\"button\"
  877.                                                                                 data-bs-dismiss=\"modal\"
  878.                                                                                 aria-label=\"Close\">
  879.                                                                         </button>
  880.                                                                     </div>
  881.                                                                     <div class=\"modal-body text-start\">
  882.                                                                         <p class=\"text-start\">
  883.                                                                             ";
  884.                 // line 433
  885.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.copy__confirm_message"), "html"nulltrue);
  886.                 echo "</p>
  887.                                                                     </div>
  888.                                                                     <div class=\"modal-footer\">
  889.                                                                         <button class=\"btn btn-ec-sub\" type=\"button\"
  890.                                                                                 data-bs-dismiss=\"modal\">";
  891.                 // line 437
  892.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.cancel"), "html"nulltrue);
  893.                 echo "
  894.                                                                         </button>
  895.                                                                         <a
  896.                                                                                 href=\"";
  897.                 // line 440
  898.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getUrl("admin_product_product_copy", ["id" => twig_get_attribute($this->env$this->source$context["Product"], "id", [], "any"falsefalsetrue440)]), "html"nulltrue);
  899.                 echo "\"
  900.                                                                                 class=\"btn btn-ec-conversion\"
  901.                                                                                 data-confirm=\"false\"
  902.                                                                                 ";
  903.                 // line 443
  904.                 echo $this->extensions['Eccube\Twig\Extension\CsrfExtension']->getCsrfTokenForAnchor();
  905.                 echo "
  906.                                                                                 data-method=\"post\">
  907.                                                                             ";
  908.                 // line 445
  909.                 echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.copy"), "html"nulltrue);
  910.                 echo "
  911.                                                                         </a>
  912.                                                                     </div>
  913.                                                                 </div>
  914.                                                             </div>
  915.                                                         </div>
  916.                                                     </div>
  917.                                                 </div>
  918.                                             </td>
  919.                                         </tr>
  920.                                     ";
  921.             }
  922.             $_parent $context['_parent'];
  923.             unset($context['_seq'], $context['_iterated'], $context['_key'], $context['Product'], $context['_parent'], $context['loop']);
  924.             $context array_intersect_key($context$_parent) + $_parent;
  925.             // line 456
  926.             echo "
  927.                                     </tbody>
  928.                                 </table>
  929.                             </div>
  930.                             ";
  931.             // line 460
  932.             if ((twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'460$this->source); })()), "totalItemCount", [], "any"falsefalsetrue460) > 0)) {
  933.                 // line 461
  934.                 echo "                                <div class=\"row justify-content-md-center mb-4 pb-4\">
  935.                                     ";
  936.                 // line 462
  937.                 $this->loadTemplate("@admin/pager.twig""@admin/Product/index.twig"462)->display(twig_array_merge($context, ["pages" => twig_get_attribute($this->env$this->source, (isset($context["pagination"]) || array_key_exists("pagination"$context) ? $context["pagination"] : (function () { throw new RuntimeError('Variable "pagination" does not exist.'462$this->source); })()), "paginationData", [], "any"falsefalsetrue462), "routes" => "admin_product_page"]));
  938.                 // line 463
  939.                 echo "                                </div>
  940.                             ";
  941.             }
  942.             // line 465
  943.             echo "                        </div>
  944.                     </form>
  945.                 ";
  946.         } elseif (        // line 467
  947. (isset($context["has_errors"]) || array_key_exists("has_errors"$context) ? $context["has_errors"] : (function () { throw new RuntimeError('Variable "has_errors" does not exist.'467$this->source); })())) {
  948.             // line 468
  949.             echo "                    <div class=\"card rounded border-0\">
  950.                         <div class=\"card-body p-4\">
  951.                             <div class=\"text-center text-muted mb-4 h5\">";
  952.             // line 470
  953.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_invalid_condition"), "html"nulltrue);
  954.             echo "</div>
  955.                             <div class=\"text-center text-muted\">";
  956.             // line 471
  957.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_try_change_condition"), "html"nulltrue);
  958.             echo "</div>
  959.                         </div>
  960.                     </div>
  961.                 ";
  962.         } else {
  963.             // line 475
  964.             echo "                    <div class=\"card rounded border-0\">
  965.                         <div class=\"card-body p-4\">
  966.                             <div class=\"text-center text-muted mb-4 h5\">";
  967.             // line 477
  968.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_no_result"), "html"nulltrue);
  969.             echo "</div>
  970.                             <div class=\"text-center text-muted\">";
  971.             // line 478
  972.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_try_change_condition"), "html"nulltrue);
  973.             echo "</div>
  974.                             <div class=\"text-center text-muted\">";
  975.             // line 479
  976.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.search_try_advanced_search"), "html"nulltrue);
  977.             echo "</div>
  978.                         </div>
  979.                     </div>
  980.                 ";
  981.         }
  982.         // line 483
  983.         echo "            </div>
  984.             <!-- 完全に削除の確認モーダル-->
  985.             <div class=\"modal fade\" id=\"bulkDeleteModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"discontinuance\" aria-hidden=\"true\" data-bs-keyboard=\"false\" data-bs-backdrop=\"static\">
  986.                 <div class=\"modal-dialog\" role=\"document\">
  987.                     <div class=\"modal-content\">
  988.                         <div class=\"modal-header\">
  989.                             <h5 class=\"modal-title fw-bold\">";
  990.         // line 490
  991.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__confirm_title"), "html"nulltrue);
  992.         echo "</h5>
  993.                             <button class=\"btn-close\" type=\"button\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>
  994.                         </div>
  995.                         <div class=\"modal-body text-start\">
  996.                             <p class=\"text-start\">";
  997.         // line 494
  998.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__confirm_message"), "html"nulltrue);
  999.         echo "</p>
  1000.                             <ul id=\"bulkErrors\"></ul>
  1001.                             <div class=\"progress\" style=\"display: none\">
  1002.                                 <div class=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" style=\"width: 0%\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>
  1003.                             </div>
  1004.                         </div>
  1005.                         <div class=\"modal-footer\">
  1006.                             <button class=\"btn btn-ec-sub\" type=\"button\" data-bs-dismiss=\"modal\">";
  1007.         // line 501
  1008.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.cancel"), "html"nulltrue);
  1009.         echo "</button>
  1010.                             <button class=\"btn btn-ec-delete\" type=\"button\" id=\"bulkDelete\">";
  1011.         // line 502
  1012.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete"), "html"nulltrue);
  1013.         echo "</button>
  1014.                             <button class=\"btn btn-ec-regular\" id=\"bulkDeleteDone\" style=\"display: none\" type=\"button\" data-bs-dismiss=\"modal\">";
  1015.         // line 503
  1016.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.permanently_delete__complete"), "html"nulltrue);
  1017.         echo "</button>
  1018.                         </div>
  1019.                     </div>
  1020.                 </div>
  1021.             </div>
  1022.         </div>
  1023.     </div>
  1024.     <div class=\"modal fade\" id=\"productClassesModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"productClassesModal\" aria-hidden=\"true\">
  1025.         <div class=\"modal-dialog\">
  1026.             <div class=\"modal-content\">
  1027.                 <div class=\"modal-header\">
  1028.                     <h5 class=\"modal-title fw-bold\">";
  1029.         // line 516
  1030.         echo "</h5>
  1031.                     <button class=\"btn-close\" type=\"button\" data-bs-dismiss=\"modal\" aria-label=\"Close\">
  1032.                     </button>
  1033.                 </div>
  1034.                 <div class=\"modal-body\">
  1035.                     ";
  1036.         // line 522
  1037.         echo "                </div>
  1038.                 <div class=\"modal-footer\">
  1039.                     <button class=\"btn btn-v-sub\" type=\"button\" data-bs-dismiss=\"modal\">
  1040.                         ";
  1041.         // line 525
  1042.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.common.cancel"), "html"nulltrue);
  1043.         echo "
  1044.                     </button>
  1045.                     <a class=\"btn btn-ec-conversion\"
  1046.                        href=\"#\">
  1047.                         ";
  1048.         // line 529
  1049.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("admin.product.move_to_product_class"), "html"nulltrue);
  1050.         echo "
  1051.                     </a>
  1052.                 </div>
  1053.             </div><!-- /.modal-content -->
  1054.         </div><!-- /.modal-dialog -->
  1055.     </div><!-- /#productClassesModal -->
  1056. ";
  1057.         
  1058.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  1059.         
  1060.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  1061.     }
  1062.     public function getTemplateName()
  1063.     {
  1064.         return "@admin/Product/index.twig";
  1065.     }
  1066.     public function isTraitable()
  1067.     {
  1068.         return false;
  1069.     }
  1070.     public function getDebugInfo()
  1071.     {
  1072.         return array (  1097 => 529,  1090 => 525,  1085 => 522,  1078 => 516,  1062 => 503,  1058 => 502,  1054 => 501,  1044 => 494,  1037 => 490,  1028 => 483,  1021 => 479,  1017 => 478,  1013 => 477,  1009 => 475,  1002 => 471,  998 => 470,  994 => 468,  992 => 467,  988 => 465,  984 => 463,  982 => 462,  979 => 461,  977 => 460,  971 => 456,  954 => 445,  949 => 443,  943 => 440,  937 => 437,  930 => 433,  919 => 425,  911 => 420,  906 => 418,  900 => 415,  894 => 412,  885 => 406,  881 => 405,  872 => 399,  866 => 396,  860 => 393,  856 => 391,  853 => 390,  847 => 388,  841 => 386,  838 => 385,  836 => 384,  830 => 381,  826 => 380,  822 => 379,  818 => 378,  814 => 377,  811 => 376,  809 => 375,  805 => 373,  798 => 371,  794 => 370,  790 => 368,  783 => 366,  779 => 365,  771 => 362,  763 => 359,  755 => 354,  751 => 353,  748 => 352,  744 => 350,  735 => 348,  729 => 346,  725 => 345,  717 => 340,  713 => 339,  709 => 338,  705 => 337,  701 => 336,  697 => 335,  693 => 334,  689 => 333,  685 => 332,  681 => 331,  664 => 317,  660 => 316,  655 => 314,  651 => 313,  644 => 308,  629 => 306,  625 => 305,  615 => 298,  610 => 296,  604 => 295,  598 => 292,  592 => 291,  587 => 289,  581 => 288,  576 => 286,  570 => 282,  568 => 281,  559 => 275,  555 => 274,  550 => 272,  546 => 270,  540 => 268,  538 => 267,  534 => 266,  530 => 264,  523 => 262,  516 => 258,  512 => 257,  508 => 256,  504 => 254,  498 => 252,  495 => 251,  493 => 250,  490 => 249,  488 => 248,  483 => 247,  479 => 244,  471 => 239,  467 => 238,  461 => 235,  458 => 234,  455 => 233,  448 => 228,  444 => 227,  439 => 225,  434 => 223,  429 => 222,  423 => 218,  415 => 213,  411 => 212,  405 => 209,  400 => 207,  395 => 206,  388 => 201,  380 => 196,  376 => 195,  372 => 194,  362 => 187,  358 => 186,  354 => 185,  346 => 180,  342 => 179,  338 => 178,  330 => 173,  326 => 172,  322 => 171,  314 => 166,  306 => 161,  298 => 156,  294 => 155,  288 => 154,  279 => 148,  275 => 147,  272 => 146,  262 => 145,  211 => 103,  205 => 99,  173 => 69,  166 => 65,  126 => 28,  116 => 20,  106 => 19,  87 => 16,  68 => 15,  57 => 11,  55 => 18,  53 => 13,  40 => 11,);
  1073.     }
  1074.     public function getSourceContext()
  1075.     {
  1076.         return new Source("{#
  1077. This file is part of EC-CUBE
  1078. Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  1079. http://www.ec-cube.co.jp/
  1080. For the full copyright and license information, please view the LICENSE
  1081. file that was distributed with this source code.
  1082. #}
  1083. {% extends '@admin/default_frame.twig' %}
  1084. {% set menus = ['product', 'product_master'] %}
  1085. {% block title %}{{ 'admin.product.product_list'|trans }}{% endblock %}
  1086. {% block sub_title %}{{ 'admin.product.product_management'|trans }}{% endblock %}
  1087. {% form_theme searchForm '@admin/Form/bootstrap_4_layout.html.twig' %}
  1088. {% block javascript %}
  1089.     <script>
  1090.         \$(function() {
  1091.             \$('#bulkDelete').on('click', function() {
  1092.                 var modal = \$('#bulkDeleteModal');
  1093.                 // 削除中のUI変更処理
  1094.                 modal.find('button').attr('disabled', 'disabled');
  1095.                 \$('.modal-body p', modal).text(\"{{ 'admin.product.permanently_delete__in_progress'|trans }}\");
  1096.                 \$('.progress', modal).show();
  1097.                 var checkedList = \$('input[type=checkbox][data-delete-url]:checked');
  1098.                 var totalCount = checkedList.length;
  1099.                 var currentCount = 0;
  1100.                 var promises = checkedList.map(function() {
  1101.                     return \$.ajax({
  1102.                         'url': \$(this).data('delete-url'),
  1103.                         'type': 'delete',
  1104.                         'data': {'_token': \$(this).attr('token-for-anchor')}
  1105.                     }).always(function() {
  1106.                         \$('.progress-bar', modal).css('width', (++currentCount / totalCount * 100) + '%');
  1107.                     });
  1108.                 });
  1109.                 var addError = function(errorMessage) {
  1110.                     \$('<li><span class=\"badge bg-danger\">ERROR</span> </li>')
  1111.                         .append(\$('<span></span>').text(errorMessage))
  1112.                         .appendTo('#bulkErrors');
  1113.                 };
  1114.                 \$.when.apply(\$, promises)
  1115.                     .done(function() {
  1116.                         // 削除できなかった場合はエラーメッセージを表示
  1117.                         var args = promises.length === 1 ? [arguments[0]] : [].slice.call(arguments).map(function(result) {
  1118.                             return result[0];
  1119.                         });
  1120.                         args.filter(function(result) {
  1121.                             return result.success === false;
  1122.                         }).forEach(function(result) {
  1123.                             addError(result.message);
  1124.                         });
  1125.                     })
  1126.                     .fail(function() {
  1127.                         // システムエラー
  1128.                         addError(\"{{ 'admin.product.permanently_delete__system_error'|trans }}\");
  1129.                     })
  1130.                     .always(function() {
  1131.                         \$('.progress', modal).hide();
  1132.                         \$('.modal-body p', modal).text(\"{{ 'admin.product.permanently_delete__complete_message'|trans }}\");
  1133.                         modal.find('button').removeAttr('disabled').toggle();
  1134.                     })
  1135.             });
  1136.             \$('#bulkDeleteDone').on('click', function() {
  1137.                 location.reload(true);
  1138.             });
  1139.             toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  1140.             \$('input[id^=\"check_\"]').on('change', function() {
  1141.                 \$('#trigger_check_all').prop('checked', false);
  1142.                 toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  1143.             });
  1144.             \$('#trigger_check_all').on('change', function() {
  1145.                 var checked = \$(this).prop('checked');
  1146.                 if (checked) {
  1147.                     \$('input[id^=\"check_\"]').prop('checked', true);
  1148.                 } else {
  1149.                     \$('input[id^=\"check_\"]').prop('checked', false);
  1150.                 }
  1151.                 toggleBtnBulk('input[id^=\"check_\"]', '#btn_bulk');
  1152.             });
  1153.             \$('#form_bulk').find('.action-submit').on('click', function(event) {
  1154.                 event.preventDefault();
  1155.                 var form = \$(this).closest('form');
  1156.                 if (!form.find('input:checkbox[name^=\"ids\"]:checked').length) {
  1157.                     {# TODO: should use modal instead of alert #}
  1158.                     alert('please check');
  1159.                     return false;
  1160.                 }
  1161.                 \$('<input />').attr('type', 'hidden').attr('name', '{{ constant('Eccube\\\\Common\\\\Constant::TOKEN_NAME') }}')
  1162.                     .val(\$(this).attr('token-for-anchor'))
  1163.                     .appendTo(form);
  1164.                 form.attr('action', \$(this).data('action')).submit();
  1165.                 return false;
  1166.             });
  1167.             var dataClass = [];
  1168.             var modalClass = \$('#productClassesModal');
  1169.             \$('form#form_bulk').on('click', 'table.table button[data-class-url]', function() {
  1170.                 var btnClass = \$(this);
  1171.                 btnClass.attr('disabled', true);
  1172.                 var productId = btnClass.data('product-id');
  1173.                 if (dataClass[productId] != undefined) {
  1174.                     renderClass(dataClass[productId], btnClass);
  1175.                     return;
  1176.                 }
  1177.                 \$.ajax({
  1178.                     url: btnClass.data('class-load'),
  1179.                     type: 'GET',
  1180.                 }).done(function(data) {
  1181.                     dataClass[productId] = data;
  1182.                     renderClass(dataClass[productId], btnClass);
  1183.                 }).fail(function() {
  1184.                     alert('Failed');
  1185.                 });
  1186.             });
  1187.             // Append html and show popup
  1188.             function renderClass(data, btnClass) {
  1189.                 \$('div.modal-body', modalClass).html(data);
  1190.                 \$('h5.modal-title', modalClass).text(btnClass.data('message'));
  1191.                 \$('a.btn-ec-conversion', modalClass).attr('href', btnClass.data('class-url'));
  1192.                 modalClass.modal('show');
  1193.                 btnClass.attr('disabled', false);
  1194.             }
  1195.         });
  1196.     </script>
  1197. {% endblock javascript %}
  1198. {% block main %}
  1199.     <div class=\"c-outsideBlock\">
  1200.         <form id='search_form' method=\"post\" action=\"{{ url('admin_product') }}\">
  1201.             {{ form_widget(searchForm._token) }}
  1202.             <div class=\"c-outsideBlock__contents\">
  1203.                 <div class=\"row justify-content-start\">
  1204.                     <div class=\"col-6\">
  1205.                         <div class=\"mb-2\">
  1206.                             <label class=\"col-form-label\" data-bs-toggle=\"tooltip\" data-bs-placement=\"top\" title=\"{{ 'tooltip.product.multi_search_label'|trans }}\">{{ 'admin.product.multi_search_label'|trans }}<i class=\"fa fa-question-circle fa-lg ms-1\"></i></label>
  1207.                             {{ form_widget(searchForm.id) }}
  1208.                             {{ form_errors(searchForm.id) }}
  1209.                         </div>
  1210.                         <div class=\"d-inline-block mb-3\" data-bs-toggle=\"collapse\" href=\"#searchDetail\"
  1211.                              aria-expanded=\"false\" aria-controls=\"searchDetail\"><a><i
  1212.                                         class=\"fa fa-plus-square-o fw-bold me-1\"></i><span
  1213.                                         class=\"fw-bold\">{{ 'admin.common.search_detail'|trans }}</span></a>
  1214.                         </div>
  1215.                     </div>
  1216.                 </div>
  1217.             </div>
  1218.             <div class=\"c-subContents collapse ec-collapse{{ has_errors ? ' show' }}\" id=\"searchDetail\">
  1219.                 <div class=\"row mb-2\">
  1220.                     <div class=\"col-6\">
  1221.                         <div class=\"row mb-2\">
  1222.                             <div class=\"col-6\">
  1223.                                 <label class=\"col-form-label\">{{ 'admin.product.category'|trans }}</label>
  1224.                                 {{ form_widget(searchForm.category_id) }}
  1225.                                 {{ form_errors(searchForm.category_id) }}
  1226.                             </div>
  1227.                         </div>
  1228.                         <div class=\"row mb-2\">
  1229.                             <div class=\"col-12\">
  1230.                                 <p class=\"col-form-label\">{{ 'admin.product.display_status'|trans }}</p>
  1231.                                 {{ form_widget(searchForm.status, {'label_attr': {'class': 'checkbox-inline'}}) }}
  1232.                                 {{ form_errors(searchForm.status, {'label_attr': {'class': 'checkbox-inline'}}) }}
  1233.                             </div>
  1234.                         </div>
  1235.                         <div class=\"row mb-2\">
  1236.                             <div class=\"col-12\">
  1237.                                 <p class=\"col-form-label\">{{ 'admin.product.stock__short'|trans }}</p>
  1238.                                 {{ form_widget(searchForm.stock, {'label_attr': {'class': 'checkbox-inline'}}) }}
  1239.                                 {{ form_errors(searchForm.stock) }}
  1240.                             </div>
  1241.                         </div>
  1242.                     </div>
  1243.                     <div class=\"col-6\">
  1244.                         <div class=\"row mb-2\">
  1245.                             <div class=\"col-6\">
  1246.                                 <label class=\"col-form-label\">{{ 'admin.product.tag'|trans }}</label>
  1247.                                 {{ form_widget(searchForm.tag_id) }}
  1248.                                 {{ form_errors(searchForm.tag_id) }}
  1249.                             </div>
  1250.                         </div>
  1251.                         <div class=\"mb-2\">
  1252.                             <label class=\"col-form-label\">
  1253.                                 {{ 'admin.common.create_date'|trans }}
  1254.                             </label>
  1255.                             <div class=\"row align-items-center\">
  1256.                                 <div class=\"col\">
  1257.                                     {# TODO: カレンダー表示の調整 #}
  1258.                                     {{ form_widget(searchForm.create_datetime_start) }}
  1259.                                     {{ form_errors(searchForm.create_datetime_start) }}
  1260.                                 </div>
  1261.                                 <div class=\"col-auto text-center\"><span>{{ 'admin.common.separator__range'|trans }}</span>
  1262.                                 </div>
  1263.                                 <div class=\"col\">
  1264.                                     {{ form_widget(searchForm.create_datetime_end) }}
  1265.                                     {{ form_errors(searchForm.create_datetime_end) }}
  1266.                                 </div>
  1267.                             </div>
  1268.                         </div>
  1269.                         <div class=\"mb-2\">
  1270.                             <label class=\"col-form-label\">{{ 'admin.common.update_date'|trans }}</label>
  1271.                             <div class=\"row align-items-center\">
  1272.                                 <div class=\"col\">
  1273.                                     {# TODO: カレンダー表示の調整 #}
  1274.                                     {{ form_widget(searchForm.update_datetime_start) }}
  1275.                                     {{ form_errors(searchForm.update_datetime_start) }}
  1276.                                 </div>
  1277.                                 <div class=\"col-auto\"><span>{{ 'admin.common.separator__range'|trans }}</span></div>
  1278.                                 <div class=\"col\">
  1279.                                     {{ form_widget(searchForm.update_datetime_end) }}
  1280.                                     {{ form_errors(searchForm.update_datetime_end) }}
  1281.                                 </div>
  1282.                             </div>
  1283.                         </div>
  1284.                         {# 出店者 #}
  1285.                         {% if app.user.getCustomizeRole() == 'ROLE_ADMIN' %}
  1286.                             <div class=\"mb-2\">
  1287.                                 <label class=\"col-form-label\">{{ 'admin.product.department'|trans }}</label>
  1288.                                 <div class=\"row align-items-center\">
  1289.                                     <div class=\"col\">
  1290.                                         {{ form_widget(searchForm.vendor_id) }}
  1291.                                         {{ form_errors(searchForm.vendor_id) }}
  1292.                                     </div>
  1293.                                 </div>
  1294.                             </div>
  1295.                         {% endif %}
  1296.                     </div>
  1297.                 </div>
  1298.                 {# エンティティ拡張の自動出力 #}
  1299.                 {% for f in searchForm|filter(f => f.vars.eccube_form_options.auto_render) %}
  1300.                     {# TODO 1項目1行になるのを改善 #}
  1301.                     <div class=\"row mb-2\">
  1302.                         {% if f.vars.eccube_form_options.form_theme %}
  1303.                             {% form_theme f f.vars.eccube_form_options.form_theme %}
  1304.                             {{ form_row(f) }}
  1305.                         {% else %}
  1306.                             <div class=\"col\">
  1307.                                 <div class=\"mb-3\">
  1308.                                     <label>{{ f.vars.label|trans }}</label>
  1309.                                     {{ form_widget(f) }}
  1310.                                     {{ form_errors(f) }}
  1311.                                 </div>
  1312.                             </div>
  1313.                         {% endif %}
  1314.                     </div>
  1315.                 {% endfor %}
  1316.             </div>
  1317.             <div class=\"c-outsideBlock__contents mb-5\">
  1318.                 <button class=\"btn btn-ec-conversion px-5\" type=\"submit\">{{ 'admin.common.search'|trans }}</button>
  1319.                 {% if pagination %}
  1320.                     <span class=\"fw-bold ms-2\">{{ 'admin.common.search_result'|trans({\"%count%\":pagination.totalItemCount})|raw }}</span>
  1321.                 {% endif %}
  1322.             </div>
  1323.             <div class=\"c-outsideBlock__contents mb-5\">
  1324.                 {{ include('@admin/search_items.twig', { 'form': searchForm }, ignore_missing = true) }}
  1325.             </div>
  1326.             {{ form_widget(searchForm.sortkey, {'attr': {'class': 'js-listSort-key'}}) }}
  1327.             {{ form_widget(searchForm.sorttype, {'attr': {'class': 'js-listSort-type'}}) }}
  1328.         </form>
  1329.     </div>
  1330.     <div class=\"c-contentsArea__cols\">
  1331.         <div class=\"c-contentsArea__primaryCol\">
  1332.             <div class=\"c-primaryCol\">
  1333.                 {% if pagination and pagination.totalItemCount %}
  1334.                     <form id=\"form_bulk\" method=\"POST\" action=\"\">
  1335.                         <div class=\"row justify-content-between mb-2\">
  1336.                             <div class=\"col-6\">
  1337.                                 <div id=\"btn_bulk\" class=\"d-none\">
  1338.                                     <label class=\"me-2\">{{ 'admin.common.bulk_actions'|trans }}</label>
  1339.                                     <div class=\"btn-group me-2\" role=\"group\">
  1340.                                         <button {{ csrf_token_for_anchor() }} data-action=\"{{ url('admin_product_bulk_product_status', {id: constant('Eccube\\\\Entity\\\\Master\\\\ProductStatus::DISPLAY_SHOW')}) }}\" class=\"btn btn-ec-regular action-submit\" type=\"button\">
  1341.                                             <span>{{ 'admin.product.display_status__show'|trans }}</span>
  1342.                                         </button>
  1343.                                         <button {{ csrf_token_for_anchor() }} data-action=\"{{ url('admin_product_bulk_product_status', {id: constant('Eccube\\\\Entity\\\\Master\\\\ProductStatus::DISPLAY_HIDE')}) }}\" class=\"btn btn-ec-regular action-submit\" type=\"button\">
  1344.                                             <span>{{ 'admin.product.display_status__hide'|trans }}</span>
  1345.                                         </button>
  1346.                                     </div>
  1347.                                     <button {{ csrf_token_for_anchor() }} data-action=\"{{ url('admin_product_bulk_product_status', {id: constant('Eccube\\\\Entity\\\\Master\\\\ProductStatus::DISPLAY_ABOLISHED')}) }}\" class=\"btn btn-ec-regular me-2 action-submit\">
  1348.                                         {{ 'admin.product.display_status__abolished'|trans }}
  1349.                                     </button>
  1350.                                     <button type=\"button\" data-bs-toggle=\"modal\" data-bs-target=\"#bulkDeleteModal\" class=\"btn btn-ec-delete\">{{ 'admin.product.permanently_delete'|trans }}</button>
  1351.                                 </div>
  1352.                             </div>
  1353.                             <div class=\"col-5 text-end\">
  1354.                                 <div class=\"d-inline-block me-2 align-bottom\">
  1355.                                     <div>
  1356.                                         <select class=\"form-select\" onchange=\"location = this.value;\">
  1357.                                             {% for pageMax in pageMaxis %}
  1358.                                                 <option {% if pageMax.name == page_count %}selected=\"\"{% endif %} value=\"{{ path('admin_product_page', {'page_no': 1, 'page_count': pageMax.name}) }}\">{{ 'admin.common.count'|trans({ '%count%': pageMax.name }) }}</option>
  1359.                                             {% endfor %}
  1360.                                         </select>
  1361.                                     </div>
  1362.                                 </div>
  1363.                                 <div class=\"d-inline-block\">
  1364.                                     <div class=\"btn-group\" role=\"group\">
  1365.                                         <a class=\"btn btn-ec-regular\" href=\"{{ url('admin_product_export') }}\">
  1366.                                             <i class=\"fa fa-cloud-download me-1 text-secondary\"></i><span>{{ 'admin.common.csv_download'|trans }}</span>
  1367.                                         </a>
  1368.                                         <a class=\"btn btn-ec-regular\" href=\"{{ url('admin_setting_shop_csv', { id : constant('\\\\Eccube\\\\Entity\\\\Master\\\\CsvType::CSV_TYPE_PRODUCT') }) }}\">
  1369.                                             <i class=\"fa fa-cog me-1 text-secondary\"></i><span>{{ 'admin.setting.shop.csv_setting'|trans }}</span>
  1370.                                         </a>
  1371.                                     </div>
  1372.                                 </div>
  1373.                             </div>
  1374.                         </div>
  1375.                         <div class=\"card rounded border-0 mb-4 d-block\">
  1376.                             <div class=\"card-body p-0\">
  1377.                                 <table class=\"table table-sm\">
  1378.                                     <thead>
  1379.                                     <tr>
  1380.                                         <th class=\"border-top-0 ps-3 pt-2 pb-2\">
  1381.                                             <input type=\"checkbox\" name=\"filter\" value=\"open\" id=\"trigger_check_all\">
  1382.                                         </th>
  1383.                                         <th class=\"border-top-0 pt-2 pb-2\" nowrap>{{ 'admin.product.product_id__short'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"product_id\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1384.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.image__short'|trans }}</th>
  1385.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.name'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"name\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1386.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.department'|trans }}</th>
  1387.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.product_code__short'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"product_code\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1388.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.price'|trans }}</th>
  1389.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.product.stock'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"stock\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1390.                                         <th class=\"border-top-0 pt-2 pb-2 text-nowrap\">{{ 'admin.product.display_status__short'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"status\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1391.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.common.create_date'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"create_date\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1392.                                         <th class=\"border-top-0 pt-2 pb-2\">{{ 'admin.common.update_date'|trans }}<a href=\"#\" class=\"js-listSort\" data-sortkey=\"update_date\"><i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i></a></th>
  1393.                                         <th class=\"border-top-0 pt-2 pb-2 pe-3\" colspan=\"3\"></th>
  1394.                                     </tr>
  1395.                                     </thead>
  1396.                                     <tbody>
  1397.                                     {% for Product in pagination %}
  1398.                                         <tr id=\"ex-product-{{ Product.id }}\">
  1399.                                             <td class=\"align-middle ps-3\">
  1400.                                                 <input type=\"checkbox\" name=\"ids[]\" value=\"{{ Product.id }}\" id=\"check_{{ Product.id }}\" data-delete-url=\"{{ url('admin_product_product_delete', { id: Product.id }) }}\">
  1401.                                             </td>
  1402.                                             <td class=\"align-middle\">{{ Product.id }}</td>
  1403.                                             {# TODO: 画像のサイズをベタ指定しているので、styleguide側を直す #}
  1404.                                             <td class=\"align-middle\">
  1405.                                                 <a href=\"{{ url('admin_product_product_edit', { id : Product.id }) }}\">
  1406.                                                     <img src=\"{{ asset(Product.mainFileName|no_image_product, 'save_image') }}\"
  1407.                                                          style=\"max-width: 50px\">
  1408.                                                 </a>
  1409.                                             </td>
  1410.                                             <td class=\"align-middle\"><a
  1411.                                                         href=\"{{ url('admin_product_product_edit', { id : Product.id }) }}\">{{ Product.name }}</a>
  1412.                                             </td>
  1413.                                             <td class=\"align-middle\"><a
  1414.                                                         href=\"{{ url('admin_product_product_edit', { id : Product.id }) }}\">{{ Product.vendor.department ?? '未設定' }}</a>
  1415.                                             </td>
  1416.                                             <td class=\"align-middle\">
  1417.                                                 {{ Product.code_min }}
  1418.                                                 {% if Product.code_min != Product.code_max %}{{ 'admin.common.separator__range'|trans }}{{ Product.code_max }}
  1419.                                                 {% endif %}
  1420.                                             </td>
  1421.                                             <td class=\"align-middle\">
  1422.                                                 {{ Product.price02_min|price }}
  1423.                                                 {% if Product.price02_min != Product.price02_max %}{{ 'admin.common.separator__range'|trans }}{{ Product.price02_max|price }}
  1424.                                                 {% endif %}
  1425.                                             </td>
  1426.                                             <td class=\"align-middle\">
  1427.                                                 {% if Product.hasProductClass %}
  1428.                                                     <button type=\"button\" class=\"btn page-link text-dark d-inline-block\"
  1429.                                                             data-product-id=\"{{ Product.id }}\"
  1430.                                                             data-message=\"{{ 'admin.product.move_to_product_class__confirm_title'|trans({'%name%': Product.name}) }}\"
  1431.                                                             data-class-load=\"{{ url('admin_product_classes_load', { 'id' : Product.id }) }}\"
  1432.                                                             data-class-url=\"{{ url('admin_product_product_class', { 'id' : Product.id, 'return_product_list' : true }) }}\">
  1433.                                                         {{ 'admin.product.product_class__confirm'|trans }}
  1434.                                                     </button>
  1435.                                                 {% else %}
  1436.                                                     {# 規格なし商品 は在庫数を表示 #}
  1437.                                                     {% if Product.stockunlimited_min %}
  1438.                                                         {{ 'admin.product.stock_unlimited__short'|trans }}
  1439.                                                     {% else %}
  1440.                                                         {{ Product.stock_min }}
  1441.                                                     {% endif %}
  1442.                                                 {% endif %}
  1443.                                             </td>
  1444.                                             <td class=\"align-middle\">
  1445.                                                 {{ Product.status.name }}
  1446.                                             </td>
  1447.                                             <td class=\"align-middle\">
  1448.                                                 {{ Product.create_date|date_min }}
  1449.                                             </td>
  1450.                                             <td class=\"align-middle\">
  1451.                                                 {{ Product.update_date|date_min }}
  1452.                                             </td>
  1453.                                             <td class=\"align-middle pe-3\" colspan=\"3\">
  1454.                                                 <div class=\"text-end\">
  1455.                                                     <div class=\"px-1 d-inline-block text-center\" data-bs-toggle=\"tooltip\"
  1456.                                                          data-bs-placement=\"top\"
  1457.                                                          title=\"{{ 'admin.common.display'|trans }}\"><a class=\"btn btn-ec-actionIcon\"
  1458.                                                                                                        href=\"{{ url('product_detail', {id:Product.id}) }}\"
  1459.                                                                                                        target=\"_blank\"><i
  1460.                                                                     class=\"fa fa-eye fa-lg text-secondary\"
  1461.                                                                     aria-hidden=\"true\"></i></a></div>
  1462.                                                     <div class=\"px-1 d-inline-block text-center\" data-bs-toggle=\"tooltip\"
  1463.                                                          data-bs-placement=\"top\"
  1464.                                                          title=\"{{ 'admin.common.copy'|trans }}\">
  1465.                                                         <a href=\"#\" class=\"btn btn-ec-actionIcon\"
  1466.                                                            data-bs-toggle=\"modal\"
  1467.                                                            data-bs-target=\"#confirmModal-{{ Product.id }}\">
  1468.                                                             <i class=\"fa fa-files-o fa-lg text-secondary\"
  1469.                                                                aria-hidden=\"true\"></i></a>
  1470.                                                         <div class=\"modal fade\" id=\"confirmModal-{{ Product.id }}\" tabindex=\"-1\"
  1471.                                                              role=\"dialog\"
  1472.                                                              aria-labelledby=\"confirmModal-{{ Product.id }}\" aria-hidden=\"true\">
  1473.                                                             <div class=\"modal-dialog\" role=\"document\">
  1474.                                                                 <div class=\"modal-content\">
  1475.                                                                     <div class=\"modal-header\">
  1476.                                                                         <h5 class=\"modal-title fw-bold\">
  1477.                                                                             {{ 'admin.product.copy__confirm_title'|trans }}</h5>
  1478.                                                                         <button class=\"btn-close\" type=\"button\"
  1479.                                                                                 data-bs-dismiss=\"modal\"
  1480.                                                                                 aria-label=\"Close\">
  1481.                                                                         </button>
  1482.                                                                     </div>
  1483.                                                                     <div class=\"modal-body text-start\">
  1484.                                                                         <p class=\"text-start\">
  1485.                                                                             {{ 'admin.product.copy__confirm_message'|trans }}</p>
  1486.                                                                     </div>
  1487.                                                                     <div class=\"modal-footer\">
  1488.                                                                         <button class=\"btn btn-ec-sub\" type=\"button\"
  1489.                                                                                 data-bs-dismiss=\"modal\">{{ 'admin.common.cancel'|trans }}
  1490.                                                                         </button>
  1491.                                                                         <a
  1492.                                                                                 href=\"{{ url('admin_product_product_copy', {'id' : Product.id}) }}\"
  1493.                                                                                 class=\"btn btn-ec-conversion\"
  1494.                                                                                 data-confirm=\"false\"
  1495.                                                                                 {{ csrf_token_for_anchor() }}
  1496.                                                                                 data-method=\"post\">
  1497.                                                                             {{ 'admin.common.copy'|trans }}
  1498.                                                                         </a>
  1499.                                                                     </div>
  1500.                                                                 </div>
  1501.                                                             </div>
  1502.                                                         </div>
  1503.                                                     </div>
  1504.                                                 </div>
  1505.                                             </td>
  1506.                                         </tr>
  1507.                                     {% endfor %}
  1508.                                     </tbody>
  1509.                                 </table>
  1510.                             </div>
  1511.                             {% if pagination.totalItemCount > 0 %}
  1512.                                 <div class=\"row justify-content-md-center mb-4 pb-4\">
  1513.                                     {% include \"@admin/pager.twig\" with { 'pages' : pagination.paginationData, 'routes' : 'admin_product_page' } %}
  1514.                                 </div>
  1515.                             {% endif %}
  1516.                         </div>
  1517.                     </form>
  1518.                 {% elseif has_errors %}
  1519.                     <div class=\"card rounded border-0\">
  1520.                         <div class=\"card-body p-4\">
  1521.                             <div class=\"text-center text-muted mb-4 h5\">{{ 'admin.common.search_invalid_condition'|trans }}</div>
  1522.                             <div class=\"text-center text-muted\">{{ 'admin.common.search_try_change_condition'|trans }}</div>
  1523.                         </div>
  1524.                     </div>
  1525.                 {% else %}
  1526.                     <div class=\"card rounded border-0\">
  1527.                         <div class=\"card-body p-4\">
  1528.                             <div class=\"text-center text-muted mb-4 h5\">{{ 'admin.common.search_no_result'|trans }}</div>
  1529.                             <div class=\"text-center text-muted\">{{ 'admin.common.search_try_change_condition'|trans }}</div>
  1530.                             <div class=\"text-center text-muted\">{{ 'admin.common.search_try_advanced_search'|trans }}</div>
  1531.                         </div>
  1532.                     </div>
  1533.                 {% endif %}
  1534.             </div>
  1535.             <!-- 完全に削除の確認モーダル-->
  1536.             <div class=\"modal fade\" id=\"bulkDeleteModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"discontinuance\" aria-hidden=\"true\" data-bs-keyboard=\"false\" data-bs-backdrop=\"static\">
  1537.                 <div class=\"modal-dialog\" role=\"document\">
  1538.                     <div class=\"modal-content\">
  1539.                         <div class=\"modal-header\">
  1540.                             <h5 class=\"modal-title fw-bold\">{{ 'admin.product.permanently_delete__confirm_title'|trans }}</h5>
  1541.                             <button class=\"btn-close\" type=\"button\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>
  1542.                         </div>
  1543.                         <div class=\"modal-body text-start\">
  1544.                             <p class=\"text-start\">{{ 'admin.product.permanently_delete__confirm_message'|trans }}</p>
  1545.                             <ul id=\"bulkErrors\"></ul>
  1546.                             <div class=\"progress\" style=\"display: none\">
  1547.                                 <div class=\"progress-bar progress-bar-striped progress-bar-animated\" role=\"progressbar\" style=\"width: 0%\" aria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>
  1548.                             </div>
  1549.                         </div>
  1550.                         <div class=\"modal-footer\">
  1551.                             <button class=\"btn btn-ec-sub\" type=\"button\" data-bs-dismiss=\"modal\">{{ 'admin.common.cancel'|trans }}</button>
  1552.                             <button class=\"btn btn-ec-delete\" type=\"button\" id=\"bulkDelete\">{{ 'admin.product.permanently_delete' | trans }}</button>
  1553.                             <button class=\"btn btn-ec-regular\" id=\"bulkDeleteDone\" style=\"display: none\" type=\"button\" data-bs-dismiss=\"modal\">{{ 'admin.product.permanently_delete__complete'|trans }}</button>
  1554.                         </div>
  1555.                     </div>
  1556.                 </div>
  1557.             </div>
  1558.         </div>
  1559.     </div>
  1560.     <div class=\"modal fade\" id=\"productClassesModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"productClassesModal\" aria-hidden=\"true\">
  1561.         <div class=\"modal-dialog\">
  1562.             <div class=\"modal-content\">
  1563.                 <div class=\"modal-header\">
  1564.                     <h5 class=\"modal-title fw-bold\">{# Title #}</h5>
  1565.                     <button class=\"btn-close\" type=\"button\" data-bs-dismiss=\"modal\" aria-label=\"Close\">
  1566.                     </button>
  1567.                 </div>
  1568.                 <div class=\"modal-body\">
  1569.                     {# Append data list #}
  1570.                 </div>
  1571.                 <div class=\"modal-footer\">
  1572.                     <button class=\"btn btn-v-sub\" type=\"button\" data-bs-dismiss=\"modal\">
  1573.                         {{ 'admin.common.cancel'|trans }}
  1574.                     </button>
  1575.                     <a class=\"btn btn-ec-conversion\"
  1576.                        href=\"#\">
  1577.                         {{ 'admin.product.move_to_product_class'|trans }}
  1578.                     </a>
  1579.                 </div>
  1580.             </div><!-- /.modal-content -->
  1581.         </div><!-- /.modal-dialog -->
  1582.     </div><!-- /#productClassesModal -->
  1583. {% endblock %}
  1584. ""@admin/Product/index.twig""/home/bluehippo91/www/bluehippo91.sakura.ne.jp/app/template/admin/Product/index.twig");
  1585.     }
  1586.     
  1587.     public function checkSecurity()
  1588.     {
  1589.         static $tags = array("set" => 13"form_theme" => 18"if" => 233"for" => 247"include" => 462);
  1590.         static $filters = array("escape" => 15"trans" => 15"filter" => 247"raw" => 268"no_image_product" => 354"price" => 370"date_min" => 396);
  1591.         static $functions = array("constant" => 103"url" => 147"form_widget" => 148"form_errors" => 156"form_row" => 252"include" => 272"csrf_token_for_anchor" => 288"path" => 306"asset" => 354);
  1592.         try {
  1593.             $this->sandbox->checkSecurity(
  1594.                 ['set''form_theme''if''for''include'],
  1595.                 ['escape''trans''filter''raw''no_image_product''price''date_min'],
  1596.                 ['constant''url''form_widget''form_errors''form_row''include''csrf_token_for_anchor''path''asset']
  1597.             );
  1598.         } catch (SecurityError $e) {
  1599.             $e->setSourceContext($this->source);
  1600.             if ($e instanceof SecurityNotAllowedTagError && isset($tags[$e->getTagName()])) {
  1601.                 $e->setTemplateLine($tags[$e->getTagName()]);
  1602.             } elseif ($e instanceof SecurityNotAllowedFilterError && isset($filters[$e->getFilterName()])) {
  1603.                 $e->setTemplateLine($filters[$e->getFilterName()]);
  1604.             } elseif ($e instanceof SecurityNotAllowedFunctionError && isset($functions[$e->getFunctionName()])) {
  1605.                 $e->setTemplateLine($functions[$e->getFunctionName()]);
  1606.             }
  1607.             throw $e;
  1608.         }
  1609.     }
  1610. }