app/Plugin/RestockMail/Resource/template/default/index.twig line 1

Open in your IDE?
  1. {#
  2. This file is part of EC-CUBE
  3. Copyright(c) LOCKON CO.,LTD. All Rights Reserved.
  4. http://www.lockon.co.jp/
  5. For the full copyright and license information, please view the LICENSE
  6. file that was distributed with this source code.
  7. #}
  8. {% block javascript %}
  9. <script type="text/javascript">
  10. {% if is_granted('ROLE_USER') %}
  11.     var logon = true;
  12. {% else %}
  13.     var logon =false;
  14. {% endif %}
  15. var oldcid = "";
  16. function Restock(){
  17.     if(oldcid != document.querySelector("input[name=ProductClass]").value){
  18.        oldcid = document.querySelector("input[name=ProductClass]").value
  19.     if(typeof stock_data == "undefined"){
  20.        if(
  21.            document.querySelector("#form1 > div.ec-productRole__btn > button").innerText == "ただいま品切れ中です"  ||
  22.            document.querySelector("#form1 > div.ec-productRole__btn > button").innerText == "ただいま品切れ中です。"
  23.        ){
  24.             if(logon == false){
  25.                 document.getElementById("RestockInfo").style.display = "";
  26.                 document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  27.             }else{
  28.                 document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "";
  29.                 $.ajax({
  30.                 dataType:"json",
  31.                    type: "POST",
  32.                    url: "{{ url('restock_mail_get') }}",
  33.                    data: "cid="+document.querySelector("input[name=ProductClass]").value,
  34.                    success: function(msg){
  35.                     if(msg.status == "OK"){
  36.                         if(msg.count == 0){
  37.                             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  38.                                 document.getElementById("RestockButton").style.display = "";
  39.                                 document.getElementById("RestockButton").removeAttribute("disabled")
  40.                                 document.getElementById('RestockButton').textContent = '再入荷のお知らせ登録';
  41.                         }else{
  42.                             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  43.                                 document.getElementById("RestockButton").style.display = "";
  44.                                 document.getElementById("RestockButton").setAttribute("disabled","disabled")
  45.                                 document.getElementById('RestockButton').textContent = '再入荷のお知らせ登録済み';
  46.                         }
  47.                     }
  48.                     }
  49.                 });
  50.             }
  51.         }else{
  52.             document.getElementById("RestockInfo").style.display = "none";
  53.             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "";
  54.             document.getElementById("RestockButton").style.display = "none";
  55.         }
  56.     }else{
  57.           if(
  58.   (document.getElementById("stockview") == null && stock_data[0] == "×")
  59.   || document.getElementById("stockview").innerHTML == "在庫: ×"
  60.   ){
  61.       if(logon == false){
  62.               document.getElementById("RestockInfo").style.display = "";
  63.          document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  64.   //                                   document.getElementById("RestockButton").setAttribute("disabled","disabled")
  65.     //    document.getElementById("RestockButton").style.display = "";
  66.       }else{
  67.             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "";
  68.         $.ajax({
  69. dataType:"json",
  70.    type: "POST",
  71.    url: "{{ url('restock_mail_get') }}",
  72.    data: "cid="+document.querySelector("input[name=ProductClass]").value,
  73.    success: function(msg){
  74.     if(msg.status == "OK"){
  75.         if(msg.count == 0){
  76.             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  77.                 document.getElementById("RestockButton").style.display = "";
  78.                 document.getElementById("RestockButton").removeAttribute("disabled")
  79.         }else{
  80.             document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "none";
  81.                 document.getElementById("RestockButton").style.display = "";
  82.                 document.getElementById("RestockButton").setAttribute("disabled","disabled")
  83.         }
  84.     }
  85.    }
  86.  });
  87.       }
  88.   }else{
  89.        document.getElementById("RestockInfo").style.display = "none";
  90.          document.querySelector(".ec-productRole__btn").querySelector("button").style.display = "";
  91.         document.getElementById("RestockButton").style.display = "none";
  92.   }
  93.     }
  94.     }
  95. }
  96. function RestockAdd(){
  97.                 document.getElementById("RestockButton").setAttribute("disabled","disabled")
  98.         $.ajax({
  99. dataType:"json",
  100.    type: "POST",
  101.    url: "{{ url('restock_mail_set') }}",
  102.    data: "pid=" +document.querySelector("input[name=product_id]").value + "&classid="+document.querySelector("input[name=ProductClass]").value +"&code=" + document.querySelector(".product-code-default").innerText,
  103.    success: function(msg){
  104.     if(msg.status == "OK"){
  105.         window.location.reload();
  106.     }
  107.    }
  108.  });
  109. }
  110. $(function() {
  111. $(document.querySelector(".ec-productRole__btn")).after('<div id="RestockInfo" class="ec-productRole__btn"><button id="openModal" class="ec-blockBtn--action " type="button">再入荷お知らせ登録</button>' +
  112. '<section id="modalArea" class="modalArea">'+
  113. '<div id="modalBg" class="modalBg"></div>'+
  114. '  <div class="modalWrapper">'+
  115. '    <div class="modalContents">'+
  116. '      <h3>再入荷お知らせ登録</h3>'+
  117. '<p>ログインしますと再入荷のお知らせメールを受信できます。<br><a href="{{ url("mypage_login") }}">⇨こちらからログイン</a></p>' +
  118. '<p>会員登録がお済でない方は会員登録をお願いいたします。<br><a href="{{ url("entry") }}">⇨こちらから会員登録</a></p>\n'+
  119. '    </div>\n'+
  120. '<div id="closeModal" class="closeModal">×</div>'+
  121. '</div>'+
  122. '</section></div>');
  123. $(document.querySelector(".ec-productRole__btn")).after('<div class="ec-productRole__btn"><button type="button" class="ec-blockBtn--action " onclick="RestockAdd()" id="RestockButton">再入荷お知らせ登録</button></div>');
  124. document.getElementById("RestockButton").style.display = "none";
  125. document.getElementById("RestockInfo").style.display = "none";
  126. if(logon == false){
  127.       const modalArea = document.getElementById('modalArea');
  128.   const openModal = document.getElementById('openModal');
  129.   const closeModal = document.getElementById('closeModal');
  130.   const modalBg = document.getElementById('modalBg');
  131.   const toggle = [openModal,closeModal,modalBg];
  132.   for(let i=0, len=toggle.length ; i<len ; i++){
  133.     toggle[i].addEventListener('click',function(){
  134.       modalArea.classList.toggle('is-show');
  135.     },false);
  136.   }
  137. }
  138. setInterval(function(){
  139.     Restock();
  140. },100);
  141. });
  142. </script>
  143. {% endblock %}
  144. {% block stylesheet %}
  145.     <style>
  146.         #restock_mail_recommend_level {
  147.             display: flex;
  148.             flex-direction: column;
  149.             flex-wrap: wrap;
  150.         }
  151.         #restock_mail_recommend_level label {
  152.             position: relative;
  153.             bottom: 18px;
  154.             left: 20px;
  155.             line-height: 0;
  156.         }
  157.         /* モーダルCSSここから */
  158.         .modalArea {
  159.             visibility: hidden; /* displayではなくvisibility */
  160.             opacity : 0;
  161.             position: fixed;
  162.             z-index: 9999; /* サイトによってここの数値は調整 */
  163.             top: 0;
  164.             left: 0;
  165.             width: 100%;
  166.             height: 100%;
  167.             transition: .4s;
  168.             font-size: small;
  169.         }
  170.         .modalBg {
  171.             width: 100%;
  172.             height: 100%;
  173.             background-color: rgba(30,30,30,0.9);
  174.         }
  175.         .modalWrapper {
  176.             position: absolute;
  177.             top: 50%;
  178.             left: 50%;
  179.             transform:translate(-50%,-50%);
  180.             width: 70%;
  181.             max-width: 500px;
  182.             padding: 10px 30px;
  183.             background-color: #fff;
  184.         }
  185.         .closeModal {
  186.             position: absolute;
  187.             top: 0.5rem;
  188.             right: 1rem;
  189.             cursor: pointer;
  190.         }
  191.         .is-show { /* モーダル表示用クラス */
  192.             visibility: visible;
  193.             opacity : 1;
  194.         }
  195.         /* モーダルCSSここまで */
  196.         /* 以下ボタンスタイル */
  197.         button {
  198.             padding: 10px;
  199.             background-color: #fff;
  200.             border: 1px solid #282828;
  201.             border-radius: 2px;
  202.             cursor: pointer;
  203.         }
  204.     </style>
  205. {% endblock %}
  206. {% block main %}
  207. {% endblock %}