1$(function() { 2 var $productForm = $('form[name="product_form"]'); 3 4 var $cartViewLink = $('.cart_view_with_async'); 5 var $cartViewForm = $('form[name="cart_view_with_async"]'); 6 var $succeedModal = $('.cart_in_modal'); 7 var $amazonPaySucceedModal = $('#amazon-pay-buy-now-modal'); 8 var $amazonPayBuyNowViewCartForm = $('form[name="amazon_pay_buy_now_view_cart_form"]'); 9 var $closingModalButton = $('.cart_modal__close'); 10 var $notBubblingElements = $('.not_bubbling'); 11 var $cartCountElement = $('.cart_count'); 12 var $cartInTotalPriceElements = $('.cart_in_total_price'); 13 var $showConnectingElements = $('.show_while_cart_in_connecting'); 14 var $hideConnectingElements = $('.hide_while_cart_in_connecting'); 15 var $isCartInAsyncMode = $('input[name="is_async_cart_in"]'); 16 var $needsBasketToken = $('input[name="needs_basket_token"]'); 17 18 var $cartInErrorModal = $('.cart_in_error_modal'); 19 var $cartInErrorMessage = $('.cart_in_error_message'); 20 var $closingErrorModalButton = $('.cart_in_error__close'); 21 22 var $amazonPayBuyNowErrorModal = $('#amazon-pay-buy-now-error-modal'); 23 var $amazonPayBuyNowErrorMessage = $('.amazon_pay_buy_now_error_message'); 24 25 $cartViewLink.on('click', function() { 26 if (typeof ga !== "undefined") { 27 ga(function() { 28 var trackers = ga.getAll(); 29 var linkerParams = []; 30 trackers.forEach(function(tracker) { 31 linkerParams.push(tracker.get('linkerParam')); 32 }); 33 var action = $cartViewForm.attr('action'); 34 if (action.indexOf('?') == -1) { 35 $cartViewForm.attr('action', action + '?' + linkerParams.join('&')); 36 } else { 37 $cartViewForm.attr('action', action + '&' + linkerParams.join('&')); 38 } 39 }); 40 } 41 $cartViewForm.trigger('submit'); 42 return false; 43 }); 44 45 $closingModalButton.on('click', function() { 46 $succeedModal.hide(); 47 $amazonPaySucceedModal.css({visibility: 'hidden'}); 48 $amazonPaySucceedModal.find('*').css({visibility: 'hidden'}); 49 return false; 50 }); 51 52 $closingErrorModalButton.on('click', function() { 53 $cartInErrorModal.hide(); 54 $amazonPayBuyNowErrorModal.css({visibility: 'hidden'}); 55 $amazonPayBuyNowErrorModal.find('*').css({visibility: 'hidden'}); 56 return false; 57 }); 58 59 $notBubblingElements.on('click', function(e) { 60 e.stopPropagation(); 61 }); 62 63 // ¥«¡¼¥ÈÆâ¤Î¾¦Éʹç·×¶â³Û¤ò¡¢¥«¡¼¥ÈÅêÆþ¸å¤ÎÃͤ˹¹¿·¤¹¤ë¡£ 64 // ¥¯¥¤¥Ã¥¯¥«¡¼¥È¥¤¥ó¤Ï¥Ú¡¼¥¸Á«°Ü¤·¤Ê¤¤¤¿¤á¡¢¥Ú¡¼¥¸ÉÁ²è»þ¤ËËä¤á¹þ¤Þ¤ì¤¿ Colorme.basket.total_price ¤È 65 // <{$incart_total_price}> ¤ÏÅêÆþÁ°¤Î¶â³Û¤Î¤Þ¤Þ»Ä¤Ã¤Æ¤·¤Þ¤¦¡£ 66 // ɽ¼¨¹Ô¤ò»ý¤¿¤Ê¤¤¥Æ¥ó¥×¥ì¡¼¥È¤ä¡¢api ¤¬¤Þ¤À¶â³Û¤òÊÖ¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï²¿¤â¤·¤Ê¤¤¡£ 67 function updateTotalPrice(totalPrice) { 68 if (typeof totalPrice !== 'number') { 69 return; 70 } 71 72 $cartInTotalPriceElements.text(formatPrice(totalPrice)); 73 74 if (window.Colorme && Colorme.basket) { 75 Colorme.basket.total_price = totalPrice; 76 } 77 } 78 79 // ¥Æ¥ó¥×¥ì¡¼¥È¤Î <{$incart_total_price}> ¤Ï PHP ¤Î number_format ¤ÇÁȤßΩ¤Æ¤é¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ 80 // Ʊ¤¸3·å¶èÀÚ¤ê¤Ë·¤¨¤ë¡ÊtoLocaleString ¤Ï¥Ö¥é¥¦¥¶¤Ë¤è¤Ã¤Æ¶èÀÚ¤êÊý¤¬ÊѤï¤ë¤¿¤á»È¤ï¤Ê¤¤¡Ë¡£ 81 function formatPrice(price) { 82 return String(price).replace(/\B(?=(\d{3})+(?!\d))/g, ','); 83 } 84 85 // ¥«¡¼¥È¥Ú¡¼¥¸¤Ø¤Ï cart-proxy ¤ò·Ðͳ¤·¤ÆÁ«°Ü¤µ¤»¤ë¡£ 86 // /cart/ ¤ØÄ¾ÀÜÁ«°Ü¤¹¤ë¤È cart-proxy ¤¬Ìá¤êÀè¤Î Cookie¡Êreferer¡Ë¤ò¹¹¿·¤·¤Ê¤¤¤¿¤á¡¢ 87 // ¥«¡¼¥È¤Î¡Ö¥·¥ç¥Ã¥Ô¥ó¥°¤ò³¤±¤ë¡×¤¬Á°²ó¤ÎÌá¤êÀè¤Î¤Þ¤Þ¸ÇÄꤵ¤ì¤ë¡£ 88 // https://git.pepabo.com/colorme/elephant/issues/84574 89 // Á«°Ü¤Ë¤Ï Buy Now ¥â¡¼¥À¥ë¤Î¡Ö¥«¡¼¥È¤ò¸«¤ë¡×¤ÈƱ¤¸¡¢reference_token ¤ò POST ¤¹¤ë¥Õ¥©¡¼¥à¤ò»È¤¦¡£ 90 // basket_token ¤Î Cookie ¤ËÍê¤ë GET ¤À¤È¡¢¥«¡¼¥È¤¬¥Ú¡¼¥¸¤ÈÊÌ¥Û¥¹¥È¤Î¤È¤¤Ï XHR ¤Ç Cookie ¤¬ 91 // Êݸ¤µ¤ì¤º¡¢¥«¡¼¥È¤ò°ú¤·Ñ¤²¤Ê¤¤¤ª¤½¤ì¤¬¤¢¤ë¤¿¤á¡£ 92 function goToBasketViaCartProxy() { 93 if ($amazonPayBuyNowViewCartForm.length === 0) { 94 window.location.href = '/cart/'; 95 return; 96 } 97 98 $amazonPayBuyNowViewCartForm.get(0).submit(); 99 } 100 101 $productForm.on('submit', function(e) { 102 var isBuyNowDisabled = $needsBasketToken.length === 0; 103 var isQuickCartDisabled = $isCartInAsyncMode.length === 0; 104 105 if (isBuyNowDisabled && isQuickCartDisabled) return; 106 107 if(!$productForm.attr('action').match(/\/add(\?.*=.*)*$/)) { 108 return; 109 } 110 111 if (isBuyNowDisabled && (($succeedModal.length === 0) || ($cartInErrorModal.length === 0))) return; 112 113 e.preventDefault(); 114 var cartInUrl = $(this).attr('action').replace(/\/add(\?.*=.*)*$/, '/add_async'); 115 116 $showConnectingElements.show(); 117 $hideConnectingElements.hide(); 118 119 $.ajax({ 120 type: 'POST', 121 url: cartInUrl, 122 data: $(this).serialize(), 123 success: function(response) { 124 var isSingleItem = response.is_single_item; 125 126 updateTotalPrice(response.total_price); 127 128 if (!isBuyNowDisabled) { 129 if (isSingleItem) { 130 $amazonPaySucceedModal.css({visibility: 'visible'}); 131 $amazonPaySucceedModal.find('*').css({visibility: 'visible'}); 132 $cartCountElement.text(response.total_quantity); 133 } else { 134 if (!isQuickCartDisabled) { 135 $succeedModal.show(); 136 $cartCountElement.text(response.total_quantity); 137 } else { 138 goToBasketViaCartProxy(); 139 } 140 } 141 } else { 142 if (!isQuickCartDisabled) { 143 $succeedModal.show(); 144 $cartCountElement.text(response.total_quantity); 145 } else { 146 window.location.href = '/cart/'; 147 } 148 } 149 }, 150 error: function(e) { 151 var responseJSON = JSON.parse(e.responseText); 152 var errorMessage = ''; 153 if(responseJSON.errors) {
154 responseJSON.errors.forEach(function(error) { 155 errorMessage += error.message + ' '; 156 }); 157 } else { 158 errorMessage = '¥«¡¼¥È¤Ë¾¦ÉʤòÆþ¤ì¤ë½èÍý¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£'; 159 } 160 161 if (isBuyNowDisabled) { 162 $cartInErrorMessage.text(errorMessage); 163 $cartInErrorModal.show(); 164 } else { 165 $amazonPayBuyNowErrorMessage.text(errorMessage); 166 $amazonPayBuyNowErrorModal.css({visibility: 'visible'}); 167 $amazonPayBuyNowErrorModal.find('*').css({visibility: 'visible'}); 168 } 169 }, 170 complete: function() { 171 $showConnectingElements.hide(); 172 $hideConnectingElements.show(); 173 } 174 }); 175 }); 176});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.