app/template/default/Product/option_detailclass_script.twig line 1

Open in your IDE?
  1. {# ▼商品設定 #}
  2. {% if Product.option_class == "0" and form.classcategory_id1 is defined %}
  3. {% elseif (Product.option_class == 1 or Product.option_class == 2) and form.classcategory_id1 is defined %}
  4.     {# ▼設定[1] and 規格1が存在する場合 #}
  5.     {% if Product.option_class == 1 and form.classcategory_id1 is defined %}
  6.     <script type="text/javascript">
  7.     $(function () {
  8.         $('[data-classcategory-id1]')
  9.             .click(function(event) {
  10.                 var $form = $('#form1');
  11.                 var product_id = $form.find('input[name=product_id]').val();
  12.                 var classcategory_id1 = $(this).attr('data-classcategory-id1');
  13.                 var classcategory_id2 = $(this).attr('data-classcategory-id2');
  14.                 var $sele1 = $('select[name=classcategory_id1]');
  15.                 var $sele2 = $('select[name=classcategory_id2]');
  16.                 $sele1.val(classcategory_id1);
  17.                 if ($sele2.length) {
  18.                     eccube.setClassCategories($form, product_id, $sele1, $sele2);
  19.                 }
  20.                 $sele2.val(classcategory_id2);
  21.                 eccube.checkStock($form, product_id, classcategory_id1, classcategory_id2);
  22.                 
  23.                 event.preventDefault();
  24.                 $.ajax({
  25.                     url: $form.attr('action'),
  26.                     type: $form.attr('method'),
  27.                     data: $form.serialize(),
  28.                     dataType: 'json',
  29.                     beforeSend: function(xhr, settings) {
  30.                         // Buttonを無効にする
  31.                         $('.add-cart').prop('disabled', true);
  32.                     }
  33.                 }).done(function(data) {
  34.                     // レスポンス内のメッセージをalertで表示
  35.                     $.each(data.messages, function() {
  36.                         $('#ec-modal-header').html(this);
  37.                     });
  38.                     $('.ec-modal').show()
  39.                     // カートブロックを更新する
  40.                     $.ajax({
  41.                         url: "{{ url('block_cart') }}",
  42.                         type: 'GET',
  43.                         dataType: 'html'
  44.                     }).done(function(html) {
  45.                         $('.ec-headerRole__cart').html(html);
  46.                     });
  47.                 }).fail(function(data) {
  48.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  49.                 }).always(function(data) {
  50.                     // Buttonを有効にする
  51.                     $('.add-cart').prop('disabled', false);
  52.                 });
  53.             });
  54.     });
  55.         
  56.     $('.ec-modal-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
  57.         $('.ec-modal').hide()
  58.     });
  59.     </script>
  60.     {% endif %}
  61.     
  62.     {# ▼設定[2] and 規格1が存在する場合 #}
  63.     {% if Product.option_class == 2 and form.classcategory_id1 is defined %}
  64.     <style type="text/css">
  65.     .ec-productRole__actions .ec-select {
  66.         display: none;
  67.     }
  68.     </style>
  69.     <script type="text/javascript">
  70.     $(function () {
  71.         $('input:radio[data-classcategory-id1]')
  72.             .click(function() {
  73.                 var $radio = $(this).filter(':checked');
  74.                 if ($radio.length > 0) {
  75.                     var $form = $('#form1');
  76.                     var product_id = $form.find('input[name=product_id]').val();
  77.                     var classcategory_id1 = $radio.attr('data-classcategory-id1');
  78.                     var classcategory_id2 = $radio.attr('data-classcategory-id2');
  79.                     var $sele1 = $('select[name=classcategory_id1]');
  80.                     var $sele2 = $('select[name=classcategory_id2]');
  81.                     $sele1.val(classcategory_id1);
  82.                     if ($sele2.length) {
  83.                         eccube.setClassCategories($form, product_id, $sele1, $sele2);
  84.                     }
  85.                     $sele2.val(classcategory_id2);
  86.                     eccube.checkStock($form, product_id, classcategory_id1, classcategory_id2);
  87.                 }
  88.             });
  89.     });
  90.     </script>
  91.     {% endif %}
  92.     
  93. {# ▼店舗設定 #}
  94. {% else %}
  95.     {# ▼設定[1] and 規格1が存在する場合 #}
  96.     {% if BaseInfo.option_detailclass == 1 and form.classcategory_id1 is defined %}
  97.     <script type="text/javascript">
  98.     $(function () {
  99.         $('[data-classcategory-id1]')
  100.             .click(function(event) {
  101.                 var $form = $('#form1');
  102.                 var product_id = $form.find('input[name=product_id]').val();
  103.                 var classcategory_id1 = $(this).attr('data-classcategory-id1');
  104.                 var classcategory_id2 = $(this).attr('data-classcategory-id2');
  105.                 var $sele1 = $('select[name=classcategory_id1]');
  106.                 var $sele2 = $('select[name=classcategory_id2]');
  107.                 $sele1.val(classcategory_id1);
  108.                 if ($sele2.length) {
  109.                     eccube.setClassCategories($form, product_id, $sele1, $sele2);
  110.                 }
  111.                 $sele2.val(classcategory_id2);
  112.                 eccube.checkStock($form, product_id, classcategory_id1, classcategory_id2);
  113.                 
  114.                 event.preventDefault();
  115.                 $.ajax({
  116.                     url: $form.attr('action'),
  117.                     type: $form.attr('method'),
  118.                     data: $form.serialize(),
  119.                     dataType: 'json',
  120.                     beforeSend: function(xhr, settings) {
  121.                         // Buttonを無効にする
  122.                         $('.add-cart').prop('disabled', true);
  123.                     }
  124.                 }).done(function(data) {
  125.                     // レスポンス内のメッセージをalertで表示
  126.                     $.each(data.messages, function() {
  127.                         $('#ec-modal-header').html(this);
  128.                     });
  129.                     $('.ec-modal').show()
  130.                     // カートブロックを更新する
  131.                     $.ajax({
  132.                         url: "{{ url('block_cart') }}",
  133.                         type: 'GET',
  134.                         dataType: 'html'
  135.                     }).done(function(html) {
  136.                         $('.ec-headerRole__cart').html(html);
  137.                     });
  138.                 }).fail(function(data) {
  139.                     alert('{{ 'カートへの追加に失敗しました。'|trans }}');
  140.                 }).always(function(data) {
  141.                     // Buttonを有効にする
  142.                     $('.add-cart').prop('disabled', false);
  143.                 });
  144.             });
  145.     });
  146.     $('.ec-modal-overlay, .ec-modal .ec-inlineBtn--cancel').on('click', function() {
  147.         $('.ec-modal').hide()
  148.     });
  149.     </script>
  150.     {% endif %}
  151.     
  152.     {# ▼設定[2] and 規格1が存在する場合 #}
  153.     {% if BaseInfo.option_detailclass == 2 and form.classcategory_id1 is defined %}
  154.     <style type="text/css">
  155.     .ec-productRole__actions .ec-select {
  156.         display: none;
  157.     }
  158.     </style>
  159.     <script type="text/javascript">
  160.     $(function () {
  161.         $('input:radio[data-classcategory-id1]')
  162.             .click(function() {
  163.                 var $radio = $(this).filter(':checked');
  164.                 if ($radio.length > 0) {
  165.                     var $form = $('#form1');
  166.                     var product_id = $form.find('input[name=product_id]').val();
  167.                     var classcategory_id1 = $radio.attr('data-classcategory-id1');
  168.                     var classcategory_id2 = $radio.attr('data-classcategory-id2');
  169.                     var $sele1 = $('select[name=classcategory_id1]');
  170.                     var $sele2 = $('select[name=classcategory_id2]');
  171.                     $sele1.val(classcategory_id1);
  172.                     if ($sele2.length) {
  173.                         eccube.setClassCategories($form, product_id, $sele1, $sele2);
  174.                     }
  175.                     $sele2.val(classcategory_id2);
  176.                     eccube.checkStock($form, product_id, classcategory_id1, classcategory_id2);
  177.                 }
  178.             });
  179.     });
  180.     </script>
  181.     {% endif %}
  182.     
  183. {% endif %}