1 2document.addEventListener('DOMContentLoaded', function() 3{ 4 document.addEventListener('submit', function(e) 5 { 6 // Package add form submitted 7 if(e.target.matches('.package-add-form')) { 8 9 // Stop default form event, we're going to send it asynchronously 10 e.preventDefault(); 11 12 // Serialise the form data 13 let formData = new FormData(e.target); 14 15 var shop_identifier = formData.get('shop_identifier'); 16 var plan_type = formData.get('generic') !== undefined ? formData.get('generic') : null; 17 var package_identifier = formData.get('package_identifier'); 18 var package_version = formData.get('package_version'); 19 var contract_number = formData.get('contract_number') !== undefined ? formData.get('contract_number') : null; 20 var auth = formData.get('auth') !== undefined ? formData.get('auth') : null; 21 var csrfToken = formData.get('_csrfToken') !== undefined ? formData.get('_csrfToken') : null; 22 const loadingBsModal = document.getElementById('loadingBsModal'); 23 const loadingModalInstance = bootstrap.Modal.getInstance(loadingBsModal); 24 25 // Start a promise to get the basket key, either from the cookie, or by creating a new one 26 let basketKeyPromise = new Promise((resolve, reject) => { 27 if (cookies.check('basket_key')) { 28 // Yes, read it from the cookie and check with Mobapi it is still valid 29 post(mobapi.url + '/baskets/check', { 30 basket_key: cookies.read('basket_key'), 31 shop_identifier: shop_identifier 32 }) 33 .then(response => { 34 if (response.status==='success') { 35 resolve(cookies.read('basket_key')); 36 } else { 37 // No, create a new basket with Mobapi 38 let basketData = {shop_identifier: shop_identifier} 39 40 // Is there a source code to add to the basket? 41 if (cookies.check('source')) { 42 basketData.source_code = cookies.read('source'); 43 //$.removeCookie('source'); 44 } 45 46 // get basket_key 47 post(mobapi.url + '/baskets/add', basketData) 48 .then(response => { 49 if (response.status==='success') { 50 // Success, write the basket key to the cookie and resolve the promise 51 cookies.write('basket_key', response.data.basket_key, 10080); 52 53 // Is there a referral code to add to the basket? 54 referalCode = cookies.read('referal_code'); 55 if (referalCode!==undefined && referalCode.length > 0) { 56 post(mobapi.url + '/baskets/edit/', { 57 basket_key: response.data.basket_key, 58 referal_code: referalCode 59 }) 60 .then(response => { 61 //cookies.remove('referal_code'); 62 }); 63 } 64 resolve(response.data.basket_key); 65 } else if (response.status==='fail') { 66 // Fail, show an error and reject the promise 67 //errorModalShow(errorModal,(response.data.shop_url !== undefined) ? '<p>'+response.data.shop_url+'</p>' : ''); 68 reject(); 69 } else if (response.status==='error') { 70 // Error, something has gone really wrong here, show error and reject the promise 71 //errorModalShow(errorModal, (response.data !== undefined) ? '<p>'+response.data+'</p>' : ''); 72 reject(); 73 } 74 }); 75 } 76 }); 77 } else { 78 // No, create a new basket with Mobapi 79 let basketData = {shop_identifier: shop_identifier} 80 81 // Is there a source code to add to the basket?
82 if (cookies.check('source')) { 83 basketData.source_code = cookies.read('source'); 84 //cookies.remove('source'); 85 } 86 87 // get basket_key 88 post(mobapi.url + '/baskets/add', basketData) 89 .then(response => { 90 if (response.status==='success') { 91 // Success, write the basket key to the cookie and resolve the promise 92 cookies.write('basket_key', response.data.basket_key, 10080); 93 94 // Is there a referrak code to add to the basket? 95 referalCode = cookies.read('referal_code'); 96 if (referalCode!==undefined && referalCode.length > 0) { 97 post(mobapi.url + '/baskets/edit/', { 98 basket_key: cookies.read('basket_key'), 99 referal_code: referalCode 100 }) 101 .then(response => { 102 //cookies.remove('referal_code'); 103 }); 104 } 105 106 resolve(response.data.basket_key); 107 } else if (response.status==='fail') { 108 // Fail, show an error and reject the promise 109 //errorModalShow(errorModal,(response.data.shop_url !== undefined) ? '<p>'+response.data.shop_url+'</p>' : ''); 110 reject(); 111 } else if (response.status==='error') { 112 // Error, something has gone really wrong here, show error and reject the promise 113 //rrorModalShow(errorModal, (response.data !== undefined) ? '<p>'+response.data+'</p>' : ''); 114 reject(); 115 } 116 }); 117 } 118 }); 119 120 try { 121 // Basket key promise has been resolved 122 basketKeyPromise.then(basketKey => { 123 data = { 124 basket_key: basketKey, 125 package_identifier: package_identifier, 126 package_version: package_version 127 } 128 if (plan_type!==undefined && plan_type !== null) { 129 data.selected = {PLAN_LIST: plan_type}; 130 } 131 132 // Is it from MyHanacell? 133 if ((contract_number ? contract_number.length:0) > 1) { 134 data.upsell_contract_number = contract_number; 135 } 136 137 // Convert the form data to a JSON object and send it to Mobapi 138 post(mobapi.url + '/basket-packages/add', data) 139 .then(response => { 140 //loaderModal.hide(); 141 if (response.status==='success' || (response.data.package_count!==undefined && response.data.package_count==='maximum reached')) { // ignore maximum restriction 142 if (response.data.package_count!==undefined && response.data.package_count==='maximum reached') { 143 //setTimeout(() => loadingModalInstance.hide(), 10); 144 if (confirm("ååã追å ã§ãã¾ããã§ãããåä¸å義ã®ãå¥ç´ã¯ãæå¤§5åç·ã¾ã§ã¨ãªãã¾ãã")) { 145 window.location.href = '/basket/checkout' 146 } else { 147 return false; 148 } 149 } 150 151 // Create a checkout form 152 const checkoutForm = document.createElement('form'); 153 const inputToken = document.createElement('input'); 154 const inputBasketKey = document.createElement('input'); 155 const inputShopIdentifier = document.createElement('input'); 156 const inputContractNumber = document.createElement('input'); 157 const inputAuth = document.createElement('input'); 158 159 checkoutForm.id = 'frmCheckout'; 160 checkoutForm.action = '/basket/checkout'; 161 checkoutForm.method = 'post'; 162 163 inputToken.type = 'hidden'; 164 inputToken.name = '_csrfToken'; 165 inputToken.value = csrfToken; 166 checkoutForm.appendChild(inputToken); 167 168 inputBasketKey.type = 'hidden'; 169 inputBasketKey.name = 'basket_key'; 170 inputBasketKey.value = cookies.read('basket_key'); 171 checkoutForm.appendChild(inputBasketKey); 172 173 if (shop_identifier !== null) { 174 inputShopIdentifier.type = 'hidden'; 175 inputShopIdentifier.name = 'shopIdentifier'; 176 inputShopIdentifier.value = shop_identifier; 177 checkoutForm.appendChild(inputShopIdentifier); 178 } 179 180 if (contract_number !== null) { 181 inputContractNumber.type = 'hidden'; 182 inputContractNumber.name = 'contract_number'; 183 inputContractNumber.value = contract_number; 184 checkoutForm.appendChild(inputContractNumber); 185 186 inputAuth.type = 'hidden'; 187 inputAuth.name = 'auth'; 188 inputAuth.value = auth; 189 checkoutForm.appendChild(inputAuth); 190 } 191 192 document.body.appendChild(checkoutForm); 193 checkoutForm.submit(); 194 } else if (response.status==='fail') {
195 //basketPopperUpdate(cookies.read('basket_key'), ['alert-package-limit']); 196 reject(); 197 } else if (response.status==='error') { 198 // Error, something has gone really wrong here, show error and reject the promise 199 //errorModalShow(errorModal,(response.data !== undefined) ? '<p>' + response.data + '</p>' : ''); 200 reject(); 201 } 202 203 }); 204 }); 205 206 } catch (e) { 207 // Display an errors 208 alert(e); 209 } 210 } 211 }); 212});
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.