1if (typeof jQuery == 'undefined') 2 throw new Error("jQuery must be loaded."); 3 4var basket = function() 5{ 6 function init(initBasketKey = null) { 7 var self = this; 8 basket_key = (initBasketKey!==null) ? initBasketKey:cookies.read('basket_key'); 9 10 emptyBasketCheck() 11 $('#overMaxQuantity').hide(); 12 13 // Collapsable groups 14 $('#basket').on('click', '.group-header', function() 15 { 16 var basketPackageGroupId = $(this).data('group-id'); 17 var collapsableElement = $(this).siblings('.group-body'); 18 collapsableElement.toggle(400); 19 20 var collapsed = collapsableElement.is(':hidden'); 21 22 var collapsableElementIcon = $(this).find('span.collapse-icon i'); 23 24 collapsableElementIcon.toggleClass('fi-minus'); 25 collapsableElementIcon.toggleClass('fi-plus'); 26 27 cartApi.collapseGroup(basketPackageGroupId, collapsed, 28 { 29 success: function(response) 30 { 31 } 32 }); 33 }); 34 35 // Any inputs or selects change 36 $('#basket').on('change', 'input, select', function(e) 37 { 38 var elementId = e.target.id; 39 var elementIdParts = elementId.split('-'); 40 41 switch (elementIdParts[0]) 42 { 43 // Update the package quantity 44 case 'packageqty': 45 var quantity = $(e.target).val(); 46 var basketPackageId = parseInt(elementIdParts[1]); 47 48 if (!isNaN(quantity) && !isNaN(basketPackageId)) 49 { 50 // Send request to Mobapi 51 post(mobapi.url+'/basket-packages/edit/'+basketPackageId, {basket_key: basket_key, quantity: quantity}) 52 .then(response => 53 { 54 if (response.status === 'success' || (response.data.package_category_count !== undefined && response.data.package_category_count["max_quantity"] === 5)) 55 { 56 if(response.data.package_category_count !== undefined && response.data.package_category_count["max_quantity"] === 5) { 57 const orverMaxModal = document.getElementById('overMaxQuantityModal'); 58 const overMaxModalInstance = bootstrap.Modal.getOrCreateInstance(orverMaxModal); 59 overMaxModalInstance.show(); 60 } 61 62 self.redrawBasket(basket_key); 63 64 // ãªãã·ã§ã³ååã®quantity䏿¸ã 65 elem = $("[id^=productselect-"+basketPackageId+"]"); 66 elem.each(function(i, elem){ 67 elemId = $(elem).attr("id"); 68 69 if( $('#'+elemId).prop('checked')) { 70 pckgVal = elemId.split('-'); 71 productId = pckgVal[2]; 72 window.sessionStorage.setItem('Package-'+basketPackageId+'-'+productId+'-quantity', quantity); 73 } 74 });
75 } 76 else 77 { 78 // Fail, show an error and reject the promise 79 _error(options, 'Update quantity is failed'); 80 } 81 }); 82 } 83 else 84 { 85 $('#loadingModal').hide(); 86 //$('#overMaxQuantity').hide(); 87 alert('Please enter a number.'); 88 $(e.target).val(''); 89 $(e.target).focus(); 90 } 91 break; 92 93 // A product is selected in a group, either via checkbox, radio, or dropdown 94 case 'productselect': 95 $('#loadingModal').show(); 96 var groupId = elementIdParts[1]; 97 var productId = elementIdParts[2]; 98 var packageId = $(e.target).val(); 99 var productAdded = document.getElementById(elementId); 100 if(productAdded.checked){ 101 removed = false; 102 selected = true; 103 }else{ 104 removed = true; 105 selected = false; 106 } 107 108 // Send request to Mobapi 109 post(mobapi.url+'/basket-packages-package-version-products/edit/'+productId, {basket_key: basket_key, removed: removed, selected: selected}) 110 .then(response => 111 { 112 if (response.status === 'success') 113 { 114 // Success 115 if(removed){ 116 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-name', 'null'); 117 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-identifier', 'null'); 118 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-type', 'null'); 119 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-quantity', 'null'); 120 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-price', 'null'); 121 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-tax', 'null'); 122 }else{ 123 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-name', $('#hiddenpackage-'+packageId+'-'+productId+'-name').val()); 124 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-identifier', $('#hiddenpackage-'+packageId+'-'+productId+'-identifier').val()); 125 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-type', $('#hiddenpackage-'+packageId+'-'+productId+'-type').val()); 126 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-quantity', $('#hiddenpackage-'+packageId+'-'+productId+'-quantity').val()); 127 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-price', $('#hiddenpackage-'+packageId+'-'+productId+'-price').val()); 128 window.sessionStorage.setItem('Package-'+packageId+'-'+productId+'-tax', $('#hiddenpackage-'+packageId+'-'+productId+'-tax').val()); 129 } 130 self.redrawBasket(basket_key); 131 } 132 }); 133 $('#loadingModal').hide(); 134 break; 135 136 // add Number Portability 137 case 'numberport': 138 139 e.preventDefault(); 140 $('#loadingModal').show(); 141 var basketPackageId = parseInt(elementIdParts[1]); 142 var nmpAdded = document.getElementById(elementId); 143 if(nmpAdded.checked){ 144 nmp = true; 145 }else{ 146 nmp = false; 147 } 148 149 // Send request to Mobapi 150 post(mobapi.url+'/basket-packages/edit/'+basketPackageId, {basket_key: basket_key, numberport: nmp}) 151 .then(response => 152 { 153 if (response.status === 'success') 154 { 155 // Success 156 self.redrawBasket(basket_key) 157 } 158 }); 159 $('#loadingModal').hide(); 160 break; 161 } 162 }); 163 164 165 // Any buttons or links are clicked 166 $('#basket').on('click', 'button, a, input', function(e) 167 { 168 var elementId = e.target.id; 169 var elementIdParts = elementId.split('-'); 170 171 // What was clicked 172 switch (elementIdParts[0]) 173 { 174 // Remove a package 175 case 'removepackage': 176 e.preventDefault(); 177 178 $('#loadingModal').show(); 179 180 var basketPackageId = parseInt(elementIdParts[1]); 181 182 // Send request to Mobapi 183 post(mobapi.url+'/basket-packages/edit/'+basketPackageId, {basket_key: basket_key, quantity: 0}) 184 .then(response => 185 { 186 if (response.status === 'success') 187 { 188/* 189 var country_id = $('#shipping_country option:selected').val(); 190 if(country_id == '1000'){ 191 var zone_id = $('[id^=shipping_zone_jp] option:selected').val() !== '' ? $('[id^=shipping_zone_jp] option:selected').val() : 0; 192 }else{ 193 var zone_id = $('[id^=shipping_zone_us] option:selected').val() !== '' ? $('[id^=shipping_zone_us] option:selected').val() : 0; 194 } 195 self.load(basket_key, country_id, zone_id); 196 $('#loadingModal').hide(); 197*/ 198 location.reload(); 199 } 200 });
201 202 break; 203 204 205 // Show a modal containing whatever is in the data-info field of the link 206 case 'shippinginfo': case 'productinfo': case 'groupinfo': case 'packageinfo': 207 208 e.preventDefault(); 209 210 $('#infoModalTitle').html($(this).data('name')); 211 $('#infoModalBody').html($(this).data('description')); 212 //s$('#infoModal').foundation('reveal', 'open'); 213 break; 214 } 215 }); 216 217//add 218 $('.greymain').on('click', 'button, a, input', function(e) 219 { 220 var elementId = e.target.id; 221 var elementIdParts = elementId.split('-'); 222 223 // What was clicked 224 switch (elementIdParts[0]) 225 { 226 227 // Show a modal containing whatever is in the data-info field of the link 228 case 'shippinginfo': case 'productinfo': case 'groupinfo': case 'packageinfo': 229 230 e.preventDefault(); 231 232 $('#infoModalTitle').html($(this).data('name')); 233 $('#infoModalBody').html($(this).data('description')); 234 $('#loadingModal').show(); 235 break; 236 237 } 238 }); 239//add 240 241 } 242 243 /** 244 * Check if basket is empty 245 */ 246 function emptyBasketCheck() { 247 if ($('#basketPackageCount').val() == 0) { 248 $("#btn_basket_edit").css("display", "none"); 249 $("#sectionBasket").addClass("review").removeClass("editing"); 250 $('#shipping_section').addClass("disable"); 251 252 $('#empty-cart').hide(); 253 $('#divNextStep').hide(); 254 $('#divBasketEmpty').show(); 255 } else { 256 $('#divNextStep').show(); 257 $('#divBasketEmpty').hide(); 258 } 259 } 260 261 /** 262 * Removes a shipping option from the dom for a specific basket package 263 */ 264 function reloadShippingSelectList(basketKey, country_id, zone_id) { 265 var deferred = $.Deferred(); 266 $('#shippingselectlist').load('/basket/shippingselectlist/'+basketKey+'/'+country_id+'/'+zone_id+'/'+(new Date).getTime(), function() { 267 deferred.resolve(); 268 }); 269 270 return deferred; 271 } 272 273 274 /** 275 * Reloads basket 276 */ 277 function redrawBasket(basketKey) { 278 var self = this; 279 var deferred = $.Deferred(); 280 281 $('#basket').load('/basket/view/'+basketKey+'/'+(new Date).getTime(), function() { 282 emptyBasketCheck(); 283 284 // Show Source CD, Referral and Upsell Message 285 if (cookies.check('source')) { 286 var trackingInfo = sourceCodeObject(cookies.read('source')); 287 } 288 289 // If quantity is more than 1 290 var totalQntty = 0; 291 post(mobapi.url + '/baskets/get', {basket_key: cookies.read('basket_key')}) 292 .then(response => { 293 if (response.status==='success') { 294 basketData = response.data; 295 basketData.basket_packages.forEach((basketPackage, index) => { 296 totalQntty = totalQntty + parseInt(basketPackage.quantity); 297 }); 298 } 299 300 var message = null; 301 if (cookies.check('referal_code')) { 302 message = "ãåã ã¡ç´¹ä»ç¹å ¸ã$5ã®HanaCellã¯ã¬ã¸ããããã¬ã¼ã³ã"; 303 } else if (trackingInfo !== undefined && trackingInfo['message'] != null) { 304 message = trackingInfo['message'] ?? null; 305 } else if (totalQntty >= 2) { 306 message = "åæè³¼å ¥ç¹å ¸ã$5ã®HanaCellã¯ã¬ã¸ããããã¬ã¼ã³ã"; 307 } 308 309 if (message) { 310 document.querySelectorAll('.insert-message').forEach(messageDiv => { 311 messageDiv.innerHTML = message; 312 }); 313 314 document.querySelectorAll('.custom-insert-freecall-allowance').forEach(customMessage => { 315 customMessage.value = message; 316 }); 317 318 document.querySelectorAll('.message-row').forEach(messageRow => { 319 messageRow.classList.remove('hide'); 320 }); 321 } else { 322 document.querySelectorAll('.message-row').forEach(messageRow => { 323 messageRow.classList.add('hide'); 324 }); 325 } 326 }); 327 //$('#overMaxQuantity').hide(); 328 deferred.resolve(); 329 }); 330 } 331 332 /** 333 * Load basket into checkout 334 */ 335 function load(basketKey, country_id, zone_id) { 336 var deferred = $.Deferred(); 337 338 $.when(reloadShippingSelectList(basketKey, country_id, zone_id)).then(function() { 339 redrawBasket(basketKey); 340 deferred.resolve(); 341 }); 342 343 return deferred; 344 } 345 346 // Connection to Mobapi 347 async function post(url = '', data = null) 348 { 349 // It's easier to serialise a form as FormData, but also want to supp
349ort standard Objects for more complex data calls, so will convert FormData objects as they are passed in 350 if(data instanceof FormData) 351 { 352 data = await formDataToObject(data); 353 } 354 355 const response = fetch(url+'?t='+mobapi.key, { 356 method: 'POST', 357 cache: 'no-cache', 358 redirect: 'follow', 359 body: JSON.stringify(data) 360 }).then(response => response.json()); 361 362 return response; 363 364 } 365 366 367 var publicFunctions = 368 { 369 init: init, 370 load: load, 371 redrawBasket: redrawBasket, 372 emptyBasketCheck: emptyBasketCheck 373 }; 374 375 return publicFunctions; 376 377}();
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.