1/** 2 * 2007-2017 Leotheme 3 * 4 * NOTICE OF LICENSE 5 * 6 * Leo feature for prestashop 1.7: ajax cart, review, compare, wishlist at product list 7 * 8 * DISCLAIMER 9 * 10 * @Module Name: Leo Feature 11 * @author leotheme <[email protected]> 12 * @copyright 2007-2018 Leotheme 13 * @license http://leotheme.com - prestashop template provider 14 */ 15$(document).ready(function(){ 16 //DONGND:: check safari on window 17 var is_safari = false; 18 if (navigator.userAgent.toLowerCase().indexOf("chrome/") !== -1) 19 { 20 is_safari = false; 21 } 22 else if (navigator.userAgent.toLowerCase().indexOf("safari/") !== -1) 23 { 24 is_safari = true; 25 } 26 if (navigator.appVersion.indexOf("Win")!=-1 && is_safari) 27 { 28 $('html').addClass('safari-win'); 29 } 30 //DONGND:: clone blockcart when turn off show popup 31 if (typeof show_popup != 'undefined' && !show_popup) 32 { 33 $(".blockcart.cart-preview").addClass('leo-blockcart').removeClass('blockcart'); 34 } 35 36 createModalAndDropdown(0, 0); 37 38 leoSelectAttr(); 39 leoBtCart(); 40 41 prestashop.on('updateProductList', function() { 42 leoSelectAttr(); 43 leoBtCart(); 44 }); 45 46 // prestashop.on('updatedCart', function (event) { 47 // console.log('aaa111'); 48 // console.log($('#blockcart-modal')); 49 // $('#blockcart-modal').on('hidden.bs.modal', function (e) { 50 51 // $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 52 // $('.leo-bt-cart.active').find('.leo-loading').hide(); 53 // $('.leo-bt-cart.active').removeClass('active reset'); 54 // }); 55 // }); 56 prestashop.on('updatedCart', function (event) { 57 // console.log(event); 58 // var scrollToElement = false; 59 60 // console.log('bbb'); 61 // console.log(event); 62 63 if ($('.leo-dropdown-cart-item.deleting').length) 64 { 65 $('.leo-dropdown-cart-item.deleting .leo-dropdown-overlay').hide(); 66 $('.leo-dropdown-cart-item.deleting .leo-dropdown-cssload-speeding-wheel').hide(); 67 $('.leo-dropdown-cart-item.deleting').fadeOut(function(){ 68 $('.leo-dropdown-cart-item.deleting').remove(); 69 updateClassCartItem(); 70 }) 71 showLeoNotification('success','delete', false); 72 } 73 74 if ($('.leo-dropdown-cart-item.updating').length) 75 { 76 $('.leo-dropdown-cart-item.updating .leo-dropdown-overlay').hide(); 77 $('.leo-dropdown-cart-item.updating .leo-dropdown-cssload-speeding-wheel').hide(); 78 $('.leo-dropdown-cart-item.updating').removeClass('updating'); 79 showLeoNotification('success','update', false); 80 } 81 82 // if ($('.leo-dropdown-cart-item.deleting').length || $('.leo-dropdown-cart-item.updating').length) 83 // { 84 85 // createModalAndDropdown(1, 1); 86 // } 87 // else 88 // { 89 // if (typeof show_popup && show_popup) 90 // { 91 //DONGND:: remove do not close dropdown-dropup when delete at page cart 92 $('.leo-dropdown-cart.dropdown').removeClass('disable-close'); 93 $('.leo-dropdown-cart.dropup').removeClass('disable-close'); 94 createModalAndDropdown(1, 0); 95 // } 96 97 // } 98 99 }); 100 // $('.blockcart.cart-preview').data('refresh-url',''); 101 // $('.blockcart.cart-preview').removeAttr('refresh-url'); 102 // $('.blockcart.cart-preview').wrap('<div class="leo-blockcart-wapper"></div>'); 103 prestashop.on('updateCart', function (event) { 104 105 // console.log('aaa'); 106 // console.log(event); 107 //DONGND:: refresh cart if turn off show popup 108 if (typeof show_popup != 'undefined' && !show_popup) 109 { 110 //DONGND:: loading default cart 111 if ($('.leo-blockcart.cart-preview .cssload-piano').length) 112 { 113 $('.leo-blockcart.cart-preview .cssload-piano').show(); 114 } 115 // console.log('test'); 116 var refresh_url = $('.leo-blockcart').data('refresh-url'); 117 $.ajax({ 118 type: 'POST', 119 headers: {"cache-control": "no-cache"}, 120 url: refresh_url, 121 async: true, 122 cache: false, 123 success: function (resp) 124 { 125 $('.leo-blockcart').replaceWith($(resp.preview).find('.blockcart')); 126 $(".blockcart.cart-preview").addClass('leo-blockcart').removeClass('blockcart'); 127 // createModalAndDropdown(1, 0); 128 //DONGND:: refresh at product page with cart button default 129 if (event.reason.linkAction == 'add-to-cart' && event.resp.success) 130 { 131 // console.log('test'); 132 prestashop.emit('updateProduct', { 133 reason: '' 134 }); 135 } 136 }, 137 error: function (XMLHttpRequest, textStatus, errorThrown) { 138 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 139 } 140 }); 141 } 142 //DONGND:: show notification if add cart success 143 if (event.reason.linkAction == 'add-to-cart' && event.resp.success) 144 { 145 // console.log($('.leo-bt-cart.active')); 146 147 //DONGND:: run fly cart 148 if (typeof enable_flycart_effect != 'undefined' && enable_flycart_effect) 149 { 150 if ($('.leo-bt-cart.active').length) 151 { 152 //DONGND:: product list 153 flyCartEffect($('.leo-bt-cart.active')); 154 } 155 else if (prestashop.page.page_name == 'product' || $('.product-add-to-cart .add-to-cart').length) 156 { 157 //DONGND:: product page or quickview 158 flyCartEffect($('.product-add-to-cart .add-to-cart')); 159 } 160 } 161 162 if ($('.leo-notification').length && typeof enable_notification != 'undefined' && enable_notification) 163 { 164 //DONGND:: show notification 165 var id_product = event.resp.id_product; 166 var product_name = false;
167 $.each(event.resp.cart.products, function(key, value){ 168 // console.log(value); 169 // console.log(value.id_product); 170 // console.log(value.name); 171 if (id_product == value.id_product) 172 { 173 product_name = value.name; 174 return false; 175 } 176 }) 177 showLeoNotification('success', 'add', product_name); 178 } 179 } 180 181 //DONGND:: hide cart item has been deleted from page cart 182 // if ($('.leo-dropdown-cart-item.deleting').length) 183 // { 184 // if (event.reason.idProduct) 185 // { 186 // var id_product = event.reason.idProduct; 187 // var id_product_attribute = event.reason.idProductAttribute; 188 // var id_customization = event.reason.idCustomization; 189 190 // var object_parent = $('.leo-remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').parents('.leo-dropdown-cart-item'); 191 // object_parent.find('.leo-dropdown-overlay').hide(); 192 // object_parent.find('.leo-dropdown-cssload-speeding-wheel').hide(); 193 // object_parent.fadeOut(function(){ 194 195 // object_parent.remove(); 196 // updateClassCartItem(); 197 // }); 198 199 // showLeoNotification('success','delete', false); 200 // } 201 // else 202 // { 203 // showLeoNotification('error','delete', false); 204 // } 205 // } 206 207 //DONGND:: update cart item has been updated from page cart 208 // if ($('.leo-dropdown-cart-item.updating').length) 209 // { 210 // if (event.reason.success) 211 // { 212 // var id_product = event.reason.id_product; 213 // var id_product_attribute = ''; 214 // if (event.reason.id_product_attribute) 215 // { 216 // id_product_attribute = event.reason.id_product_attribute; 217 // } 218 // var object_element = $('.leo-input-product-quantity[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"]'); 219 // var object_parent = object_element.parents('.leo-dropdown-cart-item'); 220 // if (object_parent.hasClass('updating')) 221 // { 222 // object_parent.find('.leo-dropdown-overlay').hide(); 223 // object_parent.find('.leo-dropdown-cssload-speeding-wheel').hide(); 224 // object_parent.removeClass('updating'); 225 226 // object_parent.find('.leo-input-product-quantity').data('product-quantity', object_parent.find('.leo-input-product-quantity').val()); 227 // var id_customization = object_parent.find('.leo-input-product-quantity').data('id-customization'); 228 // $('.leo-input-product-quantity[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').val(object_parent.find('.leo-input-product-quantity').val()).data('product-quantity', object_parent.find('.leo-input-product-quantity').val()); 229 // } 230 231 // showLeoNotification('success','update', false); 232 // } 233 // else 234 // { 235 // showLeoNotification('error','update', false); 236 // } 237 // $('.leo-dropdown-cart-item.updating').removeClass('updating'); 238 239 // } 240 241 // console.log('test1'); 242 if (typeof show_popup != 'undefined' && show_popup) 243 { 244 // console.log('test'); 245 check_active_modal_cart = setInterval(function(){ 246 247 if ($('.leo-bt-cart.active').length && $('#blockcart-modal').length && $('#blockcart-modal').hasClass('modal fade in')) 248 { 249 250 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 251 $('.leo-bt-cart.active').find('.leo-loading').hide(); 252 $('.leo-bt-cart.active').removeClass('active reset'); 253 254 clearInterval(check_active_modal_cart); 255 } 256 257 }, 200); 258 } 259 260 if (typeof show_popup != 'undefined' && !show_popup) 261 { 262 if ($('.leo-bt-cart.active').length) 263 { 264 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 265 $('.leo-bt-cart.active').find('.leo-loading').hide(); 266 $('.leo-bt-cart.active').removeClass('active reset'); 267 } 268 } 269 270 // createModalAndDropdown(1, 0); 271 //DONGND:: loading fly cart 272 if ($('.leo-fly-cart .leo-fly-cart-cssload-loader').length) 273 { 274 $('.leo-fly-cart .leo-fly-cart-cssload-loader').show(); 275 } 276 }); 277 278 //DONGND:: call event for fly cart slide bar 279 activeEventFlyCartSlideBar(); 280 $('.leo-fly-cart.enable-slidebar .leo-fly-cart-icon-wrapper').click(function(){ 281 $('.leo-fly-cart.enable-slidebar .leo-fly-cart-icon').trigger('click'); 282 }); 283 $('.leo-fly-cart.enable-slidebar .leo-fly-cart-icon').click(function(){ 284 showSlideBarCart($(this)); 285 return false;
286 }); 287 288 $('.leo-fly-cart.enable-dropdown .leo-fly-cart-icon-wrapper , .leo-fly-cart.enable-dropdown .leo-fly-cart-icon').click(function(){ 289 showDropDownCart($(this), 'flycart'); 290 return false; 291 }); 292 293 //DONGND:: click out to close dropdown-dropup cart 294 $(document).click(function (e) { 295 e.stopPropagation(); 296 var container = $(".leo-dropdown-cart.dropdown.show"); 297 298 //check if the clicked area is dropDown or not 299 if (container.length && container.has(e.target).length === 0) { 300 if (!container.hasClass('disable-close')) 301 { 302 container.removeClass('show'); 303 } 304 305 } 306 var container1 = $(".leo-dropdown-cart.dropup.show"); 307 308 //check if the clicked area is dropDown or not 309 if (container1.length && container1.has(e.target).length === 0) { 310 if (!container1.hasClass('disable-close')) 311 { 312 container1.removeClass('show'); 313 } 314 315 } 316 }) 317 318 getOffsetFlycartIcon(); 319 320 //DONGND:: resize update scroll bar of fly cart slide bar 321 $(window).resize(function(){ 322 //DONGND:: active scroll bar 323 $('.leo-dropdown-list-item').each(function(){ 324 325 //DONGND:: scroll bar for slidebar 326 if ($(this).parents('.leo-fly-cart-slidebar').length) 327 { 328 checkFlyCartScrollBar($(this)); 329 } 330 //DONGND:: scroll bar for dropup/dropdown 331 if ($(this).parents('.leo-fly-cart.type-fixed.enable-dropdown').length) 332 { 333 checkFlyCartScrollBarDropDown($(this)); 334 } 335 336 }) 337 getOffsetFlycartIcon(); 338 }) 339}); 340 341//DONGND:: event for button add cart 342function leoBtCart() 343{ 344 $('.leo-bt-cart').each(function(){ 345 if (!$(this).hasClass('leo-enable')) 346 { 347 $(this).addClass('leo-enable'); 348 $(this).click(function(event){ 349 if ($(this).hasClass('active') || $(this).hasClass('reset') || $('.leo-bt-cart.active').length || $(this).hasClass('disabled')) 350 { 351 return false; 352 } 353 354 $(this).find('.leo-bt-cart-content').hide(); 355 $(this).find('.leo-loading').css({'display':'block'}); 356 $(this).addClass('active'); 357 // console.log('aaa'); 358 // return false; 359 // var object_button_container = $(this).parents('.button-container'); 360 var object_button_container = $(this).parents('.product-miniature'); 361 if (object_button_container.find('.leo_cart_quantity').length) 362 { 363 object_button_container.find('.qty_product').val(object_button_container.find('.leo_cart_quantity').val()); 364 } 365 366 var qty_product = object_button_container.find('.qty_product').val(); 367 var min_qty = object_button_container.find('.minimal_quantity').val(); 368 var quantity_product = object_button_container.find('.quantity_product').val(); 369 // console.log(qty_product); 370 // console.log(min_qty); 371 // console.log(quantity_product); 372 if(Math.floor(qty_product) == qty_product && $.isNumeric(qty_product) && qty_product > 0) 373 { 374 // return true; 375 } 376 else 377 { 378 $(this).addClass('reset'); 379 // $(this).siblings('.qty_product').val(min_qty); 380 $('.leo-modal-cart .modal-header').addClass('warning-mess'); 381 $('.leo-modal-cart .leo-warning').show(); 382 $('.leo-modal-cart').modal('show'); 383 return false; 384 } 385 // $('.leo-modal-cart .modal-header').addClass('block-mess'); 386 // $('.leo-modal-cart .leo-block').show(); 387 // $('.leo-modal-cart').modal('show'); 388 if (parseInt(qty_product) < parseInt(min_qty)) 389 { 390 $(this).addClass('reset'); 391 $('.leo-modal-cart .modal-header').addClass('info-mess'); 392 $('.leo-modal-cart .leo-info .alert-min-qty').text(min_qty); 393 $('.leo-modal-cart .leo-info').show(); 394 $('.leo-modal-cart').modal('show'); 395 return false; 396 } 397 398 //DONGND:: check product out stock 399 var id_product = object_button_container.find('.id_product').val(); 400 var id_product_attribute = object_button_container.find('.id_product_attribute').val(); 401 var id_customization = object_button_container.find('.id_customization').val(); 402 // var check_product_outstock = checkProductOutStock(id_product, id_product_attribute, qty_product); 403 // console.log(check_product_outstock); 404 // if (parseInt(qty_product) > parseInt(quantity_product)) 405 // { 406 // $(this).addClass('reset'); 407 // $('.leo-modal-cart .modal-header').addClass('block-mess'); 408 // $('.leo-modal-cart .leo-block').show(); 409 // $('.leo-modal-cart').modal('show'); 410 // return false;
411 // } 412 // return false; 413 // console.log(check_product_outstock); 414 var $element = $(this); 415 $(this).removeData('check-outstock'); 416 417 // $.when(checkProductOutStock(id_product, id_product_attribute, id_customization, qty_product, $element, true)).done(function(data){ 418 checkProductOutStock(id_product, id_product_attribute, id_customization, qty_product, $element, true); 419 check_data_outstock = setInterval(function(){ 420 if (typeof $element.data('check-outstock') != 'undefined') 421 { 422 clearInterval(check_data_outstock); 423 if (!$element.data('check-outstock')) 424 { 425 // console.log('bbbb'); 426 $element.addClass('reset'); 427 $('.leo-modal-cart .modal-header').addClass('block-mess'); 428 $('.leo-modal-cart .leo-block').show(); 429 $('.leo-modal-cart').modal('show'); 430 // return false; 431 event.preventDefault(); 432 event.stopPropagation(); 433 // check_product_outstock = false; 434 } 435 else 436 { 437 var $form = $element.closest('form'); 438 var query = $form.serialize() + '&add=1&action=update'; 439 var actionURL = $form.attr('action'); 440 441 //DONGND:: run add to cart 442 $.ajax({ 443 type: 'POST', 444 headers: {"cache-control": "no-cache"}, 445 url: actionURL, 446 async: true, 447 cache: false, 448 data: query, 449 dataType: 'json', 450 success: function (result) 451 { 452 if(result.success) 453 { 454 if ($('.leo-notification').length && typeof enable_notification != 'undefined' && enable_notification) 455 { 456 //DONGND:: show notification 457 var id_product = result.id_product; 458 var product_name = false; 459 $.each(result.cart.products, function(key, value){ 460 // console.log(value); 461 // console.log(value.id_product); 462 // console.log(value.name); 463 if (id_product == value.id_product) 464 { 465 product_name = value.name; 466 return false; 467 } 468 }) 469 showLeoNotification('success', 'add', product_name); 470 } 471 472 //DONGND:: run fly cart 473 if (typeof enable_flycart_effect != 'undefined' && enable_flycart_effect) 474 { 475 if ($('.leo-bt-cart.active').length) 476 { 477 //DONGND:: product list 478 flyCartEffect($('.leo-bt-cart.active')); 479 } 480 } 481 482 //DONGND:: loading fly cart 483 if ($('.leo-fly-cart .leo-fly-cart-cssload-loader').length) 484 { 485 $('.leo-fly-cart .leo-fly-cart-cssload-loader').show(); 486 } 487 488 //DONGND:: loading default cart 489 if ($('.leo-blockcart.cart-preview .cssload-piano').length) 490 { 491 $('.leo-blockcart.cart-preview .cssload-piano').show(); 492 } 493 494 //DONGND:: reset button add cart 495 if (typeof show_popup != 'undefined' && !show_popup) 496 { 497 if ($('.leo-bt-cart.active').length) 498 { 499 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 500 $('.leo-bt-cart.active').find('.leo-loading').hide(); 501 $('.leo-bt-cart.active').removeClass('active reset'); 502 } 503 504 //DONGND:: refresh default cart 505 var refresh_url = $('.leo-blockcart').data('refresh-url'); 506 $.ajax({ 507 type: 'POST', 508 headers: {"cache-control": "no-cache"}, 509 url: refresh_url, 510 async: true, 511 cache: false, 512 success: function (resp) 513 { 514 $('.leo-blockcart').replaceWith($(resp.preview).find('.blockcart')); 515 $(".blockcart.cart-preview").addClass('leo-blockcart').removeClass('blockcart'); 516 //DONGND:: refresh default cart 517 createModalAndDropdown(1, 0); 518 519 }, 520 error: function (XMLHttpRequest, textStatus, errorThrown) { 521 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 522 } 523 }); 524 } 525 526 if (typeof show_popup != 'undefined' && show_popup) 527 { 528 var refreshURL = $('.blockcart').data('refresh-url'); 529 var requestData = {}; 530 531 requestData = { 532 id_product_attribute: result.id_product_attribute, 533 id_product: result.id_product, 534 action: 'add-to-cart' 535 }; 536 537 $.ajax({ 538 type: 'POST', 539 headers: {"cache-control": "no-cache"}, 540 url: refreshURL, 541 async: true, 542 cache: false, 543 data: requestData, 544 dataType: 'json', 545 success: function (resp) 546 { 547 if ($('.leo-bt-cart.active').length) 548 { 549 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 550 $('.leo-bt-cart.active').find('.leo-loading').hide(); 551 $('.leo-bt-cart.active').removeClass('active reset'); 552 } 553 554 //DONGND:: refresh default cart 555 $('.blockcart').replaceWith($(resp.preview).find('.blockcart')); 556 //DONGND:: show modal popup 557 if (resp.modal) { 558 showModalPopupCart(resp.modal); 559 } 560 561 //DONGND:: refresh dropdown cart 562 createModalAndDropdown(1, 0); 563 }, 564 error: function (XMLHttpRequest, textStatus, errorThrown) { 565 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 566 } 567 }); 568 569 } 570 571 } 572 else 573 { 574 //DONGND:: show notification 575 showLeoNotification('error','add', false); 576 } 577 }, 578 error: function (XMLHttpRequest, textStatus, errorThrown) { 579 // alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 580 showLeoNotification('error','add', false); 581 } 582 }); 583 } 584 } 585 }, 10); 586 // console.log($element); 587 // console.log($element.data('check-outstock')); 588 589 // }); 590 591 592 return false;
593 }); 594 }; 595 }); 596 597 $('.leo_cart_quantity').each(function(){ 598 //DONGND:: hide input quantity when cart buton does not show 599 if ($(this).parents('.product-miniature').find('.qty_product').val()) 600 { 601 $(this).val($(this).parents('.product-miniature').find('.qty_product').val()); 602 } 603 else 604 { 605 $(this).hide(); 606 } 607 }) 608 // $('.leo_cart_quantity').change(function(){ 609 // console.log($(this).val()); 610 // $(this).parents('.product-miniature').find('.qty_product').val($(this).val()); 611 // }) 612} 613 614//DONGND:: event for button add cart 615function leoSelectAttr() 616{ 617 $('.leo-select-attr').click(function(e){ 618 e.preventDefault(); 619 var id_product = $(this).data('id-product'); 620 var attr_txt = $(this).text(); 621 var id_attr = $(this).data('id-attr'); 622 var qty_attr = $(this).data('qty-attr'); 623 var min_qty_attr = $(this).data('min-qty-attr'); 624 // var parent_e = $(this).parents('.button-container'); 625 var parent_e = $(this).parents('.product-miniature'); 626 627 // console.log(attr_txt); 628 if (!$(this).hasClass('selected')) 629 { 630 $(this).siblings().removeClass('selected'); 631 $(this).addClass('selected'); 632 parent_e.find('.dropdownListAttrButton_'+id_product).text(attr_txt); 633 if($(this).hasClass('disable')) 634 { 635 if(!parent_e.find('.leo-bt-cart_'+id_product).hasClass('disabled')) 636 { 637 parent_e.find('.leo-bt-cart_'+id_product).addClass('disabled'); 638 } 639 } 640 else 641 { 642 if(parent_e.find('.leo-bt-cart_'+id_product).hasClass('disabled')) 643 { 644 parent_e.find('.leo-bt-cart_'+id_product).removeClass('disabled'); 645 } 646 }; 647 648 var $product_article_e = $(this).parents('.product-miniature[data-id-product=' + id_product+']'); 649 // console.log($product_article_e); 650 $product_article_e.find('.leo-bt-cart .leo-bt-cart-content').hide(); 651 $product_article_e.find('.leo-bt-cart .leo-loading').css({'display':'block'}); 652 $product_article_e.find('.leo-bt-cart').addClass('active'); 653 654 $.ajax({ 655 type: 'POST', 656 headers: {"cache-control": "no-cache"}, 657 url: prestashop.urls.base_url + 'modules/leofeature/psajax.php?rand=' + new Date().getTime(), 658 async: true, 659 cache: false, 660 data: { 661 "action": "get-attribute-data", 662 "id_product": id_product, 663 "id_product_attribute": id_attr, 664 "token": leo_token 665 }, 666 success: function (result) 667 { 668 if(result != '') 669 { 670 var obj = $.parseJSON(result); 671 // console.log($(this)); 672 // console.log($('.product-miniature[data-id-product=' + id_product+']')); 673 674 $product_article_e.find('.product-thumbnail img').attr('src', obj.product_cover.bySize.home_default.url).attr('alt', obj.product_cover.legend); 675 $product_article_e.find('.product-thumbnail').attr('href', obj.product_url); 676 $product_article_e.find('.product-price-and-shipping').empty().append(obj.price_attribute); 677 // if (typeof enable_product_label != 'undefined' && enable_product_label) 678 // { 679 // updatePostionLabel($product_article_e); 680 // } 681 } 682 else 683 { 684 alert(add_cart_error); 685 } 686 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 687 $('.leo-bt-cart.active').find('.leo-loading').hide(); 688 $('.leo-bt-cart.active').removeClass('active reset'); 689 }, 690 error: function (XMLHttpRequest, textStatus, errorThrown) { 691 alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 692 } 693 }); 694 } 695 696 // $('#quantity_product_'+id_product).val(qty_attr); 697 // $('#id_product_attribute_'+id_product).val(id_attr); 698 // $('#minimal_quantity_'+id_product).val(min_qty_attr); 699 // $('#qty_product_'+id_product).val(min_qty_attr).attr('min',min_qty_attr); 700 701 parent_e.find('.quantity_product_'+id_product).val(qty_attr); 702 parent_e.find('.id_product_attribute_'+id_product).val(id_attr); 703 parent_e.find('.minimal_quantity_'+id_product).val(min_qty_attr); 704 parent_e.find('.qty_product_'+id_product).val(min_qty_attr).data('min',min_qty_attr); 705 706 parent_e.find('.leo_cart_quantity').val(min_qty_attr); 707 // $('#dropdownListAttrButton_'+id_product).trigger('click'); 708 parent_e.find('.dropdownListAttrButton_'+id_product).trigger('click'); 709 710 // leoBtCart(); 711 // return false;
712 713 }); 714 715 // leoBtCart(); 716} 717 718//DONGND:: event for module popup after add cart 719function activeEventModal() 720{ 721 $('.leo-modal-cart').on('hide.bs.modal', function (e) { 722 // console.log('test'); 723 $('.leo-modal-cart .modal-header').removeClass('block-mess info-mess warning-mess'); 724 $('.leo-modal-cart .modal-title').hide(); 725 var min_qty = $('.leo-bt-cart.reset').parents('.button-container').find('.minimal_quantity').val(); 726 $('.leo-bt-cart.reset').parents('.button-container').find('.qty_product').val(min_qty); 727 $('.leo-bt-cart.reset').parents('.product-miniature').find('.leo_cart_quantity').val(min_qty); 728 $('.leo-bt-cart.active').find('.leo-bt-cart-content').fadeIn('fast'); 729 $('.leo-bt-cart.active').find('.leo-loading').hide(); 730 $('.leo-bt-cart.active').removeClass('active reset'); 731 732 // do something... 733 }); 734 735 // $('.leo-modal-cart').on('show.bs.modal', function (e) { 736 // $('.leo-bt-cart.active').find('.leo-bt-cart-content').show(); 737 // $('.leo-bt-cart.active').find('.leo-loading').hide(); 738 // }) 739} 740 741//DONGND:: update position label 742function updatePostionLabel($parent) 743{ 744 var FLAG_MARGIN = 10; 745 var $percent = $parent.find('.discount-percentage'); 746 var $onsale = $parent.find('.on-sale'); 747 var $new = $parent.find('.new'); 748 if($percent.length){ 749 $new.css('top', $percent.height() * 2 + FLAG_MARGIN); 750 $percent.css('top',-$parent.find('.thumbnail-container').height() + $parent.find('.product-description').height() + FLAG_MARGIN); 751 } 752 if($onsale.length){ 753 $percent.css('top', parseFloat($percent.css('top')) + $onsale.height() + FLAG_MARGIN); 754 $new.css('top', ($percent.height() * 2 + $onsale.height()) + FLAG_MARGIN * 2); 755 } 756} 757 758//DONGND:: show dropdown cart 759function showDropDownCart($element, $type) 760{ 761 var object_element = ''; 762 if ($type == 'defaultcart') 763 { 764 object_element = $element.siblings('.leo-dropdown-cart'); 765 } 766 if ($type == 'flycart') 767 { 768 object_element = $element.parents('.leo-fly-cart').find('.leo-dropdown-cart'); 769 } 770 771 if (!object_element.hasClass('show')) 772 { 773 object_element.addClass('show'); 774 } 775 else 776 { 777 object_element.removeClass('show'); 778 } 779 780} 781 782//DONGND:: show dropdown cart 783function showSlideBarCart($element) 784{ 785 if (!$('.leo-fly-cart-slidebar.disable').length) 786 { 787 if (!$element.hasClass('active-slidebarcart')) 788 { 789 var type = $element.data('type'); 790 var pusheffect = $element.data('pusheffect'); 791 $element.addClass('active-slidebarcart'); 792 793 $('.leo-fly-cart-slidebar.'+type).addClass('active'); 794 if ($('.leo-fly-cart-mask').length) 795 { 796 $('.leo-fly-cart-mask').first().addClass('active'); 797 $('body').addClass('leoflycart-active-slidebar'); 798 } 799 //DONGND:: update scrollbar of slidebar cart for safari win 800 if ($('html').hasClass('safari-win')) 801 { 802 $('.leo-fly-cart-slidebar .leo-dropdown-list-item').each(function(){ 803 //DONGND:: scroll bar for slidebar 804 checkFlyCartScrollBar($(this)); 805 }) 806 }; 807 808 if (pusheffect) 809 { 810 $('.leo-fly-cart-slidebar.'+type).addClass('push'); 811 $('body').addClass('leoflycart-active-push'); 812 var push_value; 813 var push_type; 814 if (type == 'slidebar_top' || type == 'slidebar_bottom') 815 { 816 push_type = "Y"; 817 if (type == 'slidebar_top') 818 { 819 // push_value = $('.leo-fly-cart-slidebar.push.'+type).outerHeight()+$('.leo-fly-cart-slidebar.push.'+type+' .leo-fly-cart').outerHeight(); 820 push_value = $('.leo-fly-cart-slidebar.push.'+type).outerHeight(); 821 } 822 if (type == 'slidebar_bottom') 823 { 824 // push_value = -($('.leo-fly-cart-slidebar.push.'+type).outerHeight()+$('.leo-fly-cart-slidebar.push.'+type+' .leo-fly-cart').outerHeight()); 825 push_value = -$('.leo-fly-cart-slidebar.push.'+type).outerHeight(); 826 } 827 828 } 829 if (type == 'slidebar_right' || type == 'slidebar_left') 830 { 831 push_type = "X"; 832 if (type == 'slidebar_left') 833 { 834 // push_value = $('.leo-fly-cart-slidebar.push.'+type).outerWidth()+$('.leo-fly-cart-slidebar.push.'+type+' .leo-fly-cart').outerWidth(); 835 push_value = $('.leo-fly-cart-slidebar.push.'+type).outerWidth(); 836 } 837 if (type == 'slidebar_right') 838 { 839 // push_value = -($('.leo-fly-cart-slidebar.push.'+type).outerWidth()+$('.leo-fly-cart-slidebar.push.'+type+' .leo-fly-cart').outerWidth()); 840 push_value = -$('.leo-fly-cart-slidebar.push.'+type).outerWidth(); 841 } 842 843 } 844 $('body.leoflycart-active-push main').css({ 845 "-moz-transform": "translate"+push_type+"("+push_value+"px)", 846 "-webkit-transform": "translate"+push_type+"("+push_value+"px)", 847 "-o-transform": "translate"+push_type+"("+push_value+"px)", 848 "-ms-transform": "translate"+push_type+"("+push_value+"px)", 849 "transform": "translate"+push_type+"("+push_value+"px)", 850 }) 851 } 852 853 } 854 else 855 { 856 $('.leo-fly-cart-slidebar .leo-fly-cart-icon').trigger('click'); 857 } 858 } 859} 860 861//DONGND:: event for dropdown cart 862function activeDropdownEvent() 863{ 864 //DONGND:: active scroll bar 865 $('.leo-dropdown-list-item').each(function(){ 866 // console.log($(this).parents('.leo-fly-cart-slidebar')); 867 var check_number_cartitem = 3; 868 if (typeof number_cartitem_display != 'undefined') 869 { 870 check_number_cartitem = number_cartitem_display; 871 } 872 //DONGND:: scroll bar for dropdown 873 // checkFlyCartScrollBarDropDown($(this)); 874 // if (!$(this).parents('.leo-fly-cart-slidebar').length && $(this).find('.leo-dropdown-cart-item').length > check_number_cartitem) 875 // { 876 if (!$(this).parents('.leo-fly-cart-slidebar').length) 877 { 878 // if (typeof height_cart_item != 'undefined') 879 // { 880 // $(this).addClass('active-scrollbar').css({'max-height': height_cart_item*number_cartitem_display}); 881 // } 882 // else 883 // { 884 // $(this).addClass('active-scrollbar').css({'max-height': $(this).find('.leo-dropdown-cart-item').outerHeight()*check_number_cartitem}); 885 // } 886 887 888 // $(this).mCustomScrollbar({ 889 // theme:"dark", 890 // scrollInertia: 200, 891 // callbacks:{ 892 // onInit:function(){ 893 894 // } 895 // }, 896 // keyboard:{ 897 // enable:true, 898 // } 899 // }); 900 901 // $(this).mCustomScrollbar('update'); 902 // console.log('test'); 903 checkFlyCartScrollBarDropDown($(this)); 904 // if ($scrollToElement != false) 905 // { 906 // $(this).mCustomScrollbar('scrollTo',$(this).find('.mCSB_container').find('.leo-dropdown-cart-item:eq('+$scrollToElement+')'),{scrollInertia:0}); 907 // } 908 909 // $(this).scrollbar(); 910 } 911 912 //DONGND:: scroll bar for slidebar 913 if ($(this).parents('.leo-fly-cart-slidebar').length) 914 { 915 checkFlyCartScrollBar($(this)); 916 917 } 918 }) 919 920 //DONGND:: highlight dropdown cart item 921 $('.leo-remove-from-cart, .view-leo-dropdown-additional').hover(function(){ 922 923 if ($(this).hasClass('leo-remove-from-cart')) 924 { 925 $(this).parents('.leo-dropdown-cart-item').addClass('high-light'); 926 } 927 928 },function(){ 929 if ($(this).hasClass('leo-remove-from-cart')) 930 { 931 $(this).parents('.leo-dropdown-cart-item').removeClass('high-light'); 932 } 933 }) 934 935 //DONGND:: show additional info 936 $('.view-leo-dropdown-additional').click(function(){ 937 var parent_obj = $(this).parents('.leo-dropdown-cart-item'); 938 939 var wrapper_parent_obj = $(this).parents('.leo-dropdown-list-item'); 940 941 if (!$(this).hasClass('show')) 942 { 943 if (wrapper_parent_obj.find('.leo-dropdown-cart-item.show-additional')) 944 { 945 wrapper_parent_obj.find('.leo-dropdown-cart-item.show-additional').removeClass('show-additional'); 946 wrapper_parent_obj.find('.view-leo-dropdown-additional.show').removeClass('show'); 947 wrapper_parent_obj.find('.fake-element').fadeOut('200',function(){ 948 $(this).remove(); 949 }); 950 wrapper_parent_obj.mCustomScrollbar("update"); 951 952 setTimeout(function() { 953 wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').mCustomScrollbar("update"); 954 },500); 955 } 956 $(this).addClass('show'); 957 958 if (wrapper_parent_obj.hasClass('active-scrollbar') && parent_obj.hasClass('last')) 959 { 960 // if ($(this).parents('.leo-fly-cart-slidebar.push_slidebar_top').length || $(this).parents('.leo-fly-cart-slidebar.
960slidebar_top').length || $(this).parents('.leo-fly-cart-slidebar.push_slidebar_bottom').length || $(this).parents('.leo-fly-cart-slidebar.slidebar_bottom').length) 961 // { 962 // var width_clone_obj = parent_obj.width(); 963 // wrapper_parent_obj.find('.leo-dropdown-list-item').append('<li class="fake-element" style="width:'+width_clone_obj+'px"></li>'); 964 // wrapper_parent_obj.mCustomScrollbar("update"); 965 // wrapper_parent_obj.mCustomScrollbar("scrollTo","100%",{ 966 // callbacks: parent_obj.addClass('show-additional') 967 // }); 968 // } 969 // else 970 // { 971 var height_clone_obj = parent_obj.find('.leo-dropdown-additional').height(); 972 wrapper_parent_obj.find('.mCSB_container').append('<p class="fake-element" style="height:'+height_clone_obj+'px"></p>'); 973 wrapper_parent_obj.mCustomScrollbar("update"); 974 wrapper_parent_obj.mCustomScrollbar("scrollTo","bottom",{ 975 callbacks: parent_obj.addClass('show-additional') 976 }); 977 // } 978 979 } else if(wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').hasClass('active-scrollbar') && parent_obj.hasClass('last') && parent_obj.hasClass('first')) 980 { 981 wrapper_parent_obj.append('<li class="leo-dropdown-cart-item clearfix has-view-additional fake-element" style="width:'+width_cart_item+'px; height:'+height_cart_item+'px"></p>'); 982 wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').mCustomScrollbar("update"); 983 wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').mCustomScrollbar("scrollTo","last",{ 984 callbacks: parent_obj.addClass('show-additional') 985 }); 986 } 987 else 988 { 989 parent_obj.addClass('show-additional'); 990 } 991 //DONGND:: disable scrollbar with fly cart slide bar top 992 // if ($(this).parents('.leo-fly-cart-slidebar.push_slidebar_top.active-scroll').length || $(this).parents('.leo-fly-cart-slidebar.slidebar_top.active-scroll').length) 993 // { 994 // $(this).parents('.leo-fly-cart-slidebar').find('.leo-dropdown-list-item-warpper.active-scrollbar').mCustomScrollbar("destroy"); 995 // $(this).parents('.leo-fly-cart-slidebar').addClass('disable-scrollbar'); 996 // } 997 } 998 else 999 { 1000 parent_obj.removeClass('show-additional'); 1001 if (wrapper_parent_obj.hasClass('active-scrollbar') && parent_obj.hasClass('last')) 1002 { 1003 wrapper_parent_obj.find('.fake-element').fadeOut('200',function(){ 1004 $(this).remove(); 1005 }); 1006 wrapper_parent_obj.mCustomScrollbar("update"); 1007 1008 } 1009 else if(wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').hasClass('active-scrollbar') && parent_obj.hasClass('last') && parent_obj.hasClass('first')) 1010 { 1011 wrapper_parent_obj.find('.fake-element').fadeOut('200',function(){ 1012 $(this).remove(); 1013 }); 1014 parent_obj.removeClass('show-additional'); 1015 $(this).removeClass('show'); 1016 // wrapper_parent_obj.find('.fake-element').remove(); 1017 setTimeout(function() { 1018 wrapper_parent_obj.parents('.leo-dropdown-list-item-warpper').mCustomScrollbar("update"); 1019 },500); 1020 1021 } 1022 parent_obj.removeClass('show-additional'); 1023 $(this).removeClass('show'); 1024 //DONGND:: disable scrollbar with fly cart slide bar top 1025 // if ($(this).parents('.leo-fly-cart-slidebar.push_slidebar_top.active-scroll').length || $(this).parents('.leo-fly-cart-slidebar.slidebar_top.active-scroll').length) 1026 // { 1027 // if ($(this).parents('.leo-fly-cart-slidebar').hasClass('disable-scrollbar')) 1028 // { 1029 // $(this).parents('.leo-fly-cart-slidebar').removeClass('disable-scrollbar'); 1030 // $(this).parents('.leo-fly-cart-slidebar').find('.leo-dropdown-list-item-warpper.active-scrollbar').mCustomScrollbar("update"); 1031 // } 1032 1033 // } 1034 } 1035 return false; 1036 }) 1037 1038 //DONGND:: remove dropdown cart item 1039 $('.leo-remove-from-cart').click(function(){ 1040 var id_product = $(this).data('id-product'); 1041 var id_product_attribute = $(this).data('id-product-attribute'); 1042 var id_customization = $(this).data('id-customization'); 1043 1044 var parent_obj = $(this).parents('.leo-dropdown-cart-item'); 1045 1046 parent_obj.addClass('deleting'); 1047 if (parent_obj.hasClass('show-additional')) 1048 { 1049 parent_obj.find('.view-leo-dropdown-additional').trigger('click'); 1050 } 1051 parent_obj.find('.leo-dropdown-overlay').show(); 1052 parent_obj.find('.leo-dropdown-cssload-speeding-wheel').show(); 1053 if ($('.remove-from-cart').length) 1054 { 1055 //DONGND:: do not close dropdown-dropup when delete at page cart 1056 $('.leo-dropdown-cart.dropdown').addClass('disable-close'); 1057 $('.leo-dropdown-cart.dropup').addClass('disable-close'); 1058 //DONGND:: page cart 1059 // console.log($('.remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]')); 1060 $('.remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').trigger('click'); 1061 } 1062 else 1063 { 1064 var link_url = $(this).data('link-url'); 1065 var refresh_url = $('.leo-blockcart.cart-preview').data('refresh-url'); 1066 // var scrollToElement = parent_obj.index()-1; 1067 1068 $.ajax({ 1069 type: 'POST', 1070 headers: {"cache-control": "no-cache"}, 1071 url: link_url, 1072 async: true, 1073 cache: false, 1074 data: { 1075 "ajax": 1, 1076 "action": "update", 1077 }, 1078 success: function (result) 1079 { 1080 var obj = $.parseJSON(result); 1081 parent_obj.find('.leo-dropdown-overlay').hide(); 1082 parent_obj.find('.leo-dropdown-cssload-speeding-wheel').hide(); 1083 1084 // console.log(obj); 1085 if(obj.success) 1086 { 1087 parent_obj.fadeOut(function(){ 1088 // if (parent_obj.hasClass('last')) 1089 // { 1090 // parent_obj.prev().addClass('last'); 1091 // } 1092 // if (parent_obj.hasClass('first')) 1093 // { 1094 // parent_obj.next().addClass('first'); 1095 // } 1096 parent_obj.remove(); 1097 $('.leo-remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').parents('.leo-dropdown-cart-item').remove();
1098 updateClassCartItem(); 1099 1100 }); 1101 //DONGND:: show notification 1102 showLeoNotification('success','delete', false); 1103 1104 //DONGND:: refresh cart 1105 $.ajax({ 1106 type: 'POST', 1107 headers: {"cache-control": "no-cache"}, 1108 url: refresh_url, 1109 async: true, 1110 cache: false, 1111 success: function (resp) 1112 { 1113 $('.leo-blockcart').replaceWith($(resp.preview).find('.blockcart')); 1114 $(".blockcart.cart-preview").addClass('leo-blockcart'); 1115 if (typeof show_popup != 'undefined' && !show_popup) 1116 { 1117 $(".blockcart.cart-preview").removeClass('blockcart') 1118 } 1119 createModalAndDropdown(1, 1); 1120 1121 }, 1122 error: function (XMLHttpRequest, textStatus, errorThrown) { 1123 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1124 } 1125 }); 1126 1127 } 1128 else 1129 { 1130 //DONGND:: show notification 1131 showLeoNotification('error','delete', false); 1132 } 1133 1134 }, 1135 error: function (XMLHttpRequest, textStatus, errorThrown) { 1136 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1137 } 1138 }); 1139 } 1140 1141 return false; 1142 }) 1143 1144 //DONGND:: change quantity product dropdown with input 1145 // $("body").on('focusout','.leo-input-product-quantity',function (event) { 1146 // updateQuantityProductDropDown(event.currentTarget); 1147 1148 // }); 1149 // $("body").on('keyup','.leo-input-product-quantity',function (event) { 1150 // if (event.keyCode == 13) { 1151 // updateQuantityProductDropDown(event.currentTarget); 1152 // } 1153 // }); 1154 $('.leo-input-product-quantity').focusout(function(){ 1155 updateQuantityProductDropDown($(this)); 1156 }) 1157 $('.leo-input-product-quantity').keyup(function(event){ 1158 if (event.keyCode == 13) { 1159 updateQuantityProductDropDown($(this)); 1160 } 1161 }) 1162 1163 // var update_quantity = false; 1164 var timer; 1165 var flag = false; 1166 1167 //DONGND:: change quantity product dropdown with button up-down 1168 $('.leo-bt-product-quantity-down, .leo-bt-product-quantity-up').on('touchstart click', function(){ 1169 if(flag == true) 1170 { 1171 flag = false; 1172 clearTimeout(timer); 1173 } 1174 flag = true; 1175 // console.log('test'); 1176 var action = 'up'; 1177 var input_target = $(this).parents('.leo-dropdown-cart-item').find('.leo-input-product-quantity'); 1178 var input_quantity = parseInt(input_target.val()); 1179 var quantity_update; 1180 if ($(this).hasClass('leo-bt-product-quantity-down')) 1181 { 1182 action = 'down'; 1183 } 1184 1185 if (action == 'up') 1186 { 1187 quantity_update = input_quantity+1; 1188 } 1189 if (action == 'down') 1190 { 1191 quantity_update = input_quantity-1; 1192 } 1193 input_target.val(quantity_update); 1194 // updateQuantityProductDropDown(input_target); 1195 // console.log(update_quantity); 1196 1197 timer = setTimeout( 1198 function() 1199 { 1200 flag = false; 1201 // update_quantity = true; 1202 // if (update_quantity) 1203 // { 1204 // console.log(update_quantity); 1205 updateQuantityProductDropDown(input_target); 1206 // } 1207 }, 800); 1208 1209 return false; 1210 }) 1211} 1212 1213function updateQuantityProductDropDown($element) 1214{ 1215 // var $this = $(event.currentTarget); 1216 // if (obj instanceof jQuery) 1217 var $this = $element; 1218 var product_quantity = $this.data('product-quantity'); 1219 var min_quantity = $this.data('min-quantity'); 1220 var max_quantity = $this.data('quantity-available'); 1221 var input_quantity = $this.val(); 1222 // console.log(product_quantity); 1223 // console.log(input_quantity); 1224 1225 // if (input_quantity != parseInt(input_quantity) || input_quantity < 0 || isNaN(input_quantity)) { 1226 // console.log('test'); 1227 // showLeoNotification('normal','check'); 1228 // $this.val(product_quantity); 1229 // return; 1230 // } 1231 1232 //DONGND:: validate input 1233 if(Math.floor(input_quantity) == input_quantity && $.isNumeric(input_quantity) && input_quantity > 0) 1234 { 1235 // return true; 1236 } 1237 else 1238 { 1239 showLeoNotification('normal', 'check', false); 1240 $this.val(product_quantity); 1241 return; 1242 } 1243 1244 //DONGND:: check min quantity 1245 if (parseInt(input_quantity) < parseInt(min_quantity)) 1246 { 1247 showLeoNotification('warning', 'min', min_quantity); 1248 $this.val(product_quantity); 1249 return false;
1250 } 1251 1252 //DONGND:: do not change 1253 var qty = parseInt(input_quantity) - parseInt(product_quantity); 1254 // console.log(qty); 1255 // console.log(product_quantity); 1256 1257 if (qty == 0) { 1258 return; 1259 } 1260 1261 //DONGND:: check stock 1262 // if (parseInt(input_quantity) > parseInt(max_quantity)) 1263 // { 1264 // showLeoNotification('warning', 'max', false); 1265 // $this.val(product_quantity); 1266 // return false; 1267 // } 1268 var id_product = $this.data('id-product'); 1269 var id_product_attribute = $this.data('id-product-attribute'); 1270 var id_customization = $this.data('id-customization'); 1271 1272 $this.removeData('check-outstock'); 1273 1274 var check_product_outstock = true; 1275 var parent_obj = $this.parents('.leo-dropdown-cart-item'); 1276 1277 parent_obj.addClass('updating'); 1278 1279 parent_obj.find('.leo-dropdown-overlay').show(); 1280 parent_obj.find('.leo-dropdown-cssload-speeding-wheel').show(); 1281 // $.when(checkProductOutStock(id_product, id_product_attribute, id_customization, input_quantity, $this, false)).done(function(data){ 1282 checkProductOutStock(id_product, id_product_attribute, id_customization, input_quantity, $this, false); 1283 // console.log($element); 1284 // console.log($this.data('check-outstock')); 1285 check_data_outstock = setInterval(function(){ 1286 if (typeof $element.data('check-outstock') != 'undefined') 1287 { 1288 clearInterval(check_data_outstock); 1289 if (!$this.data('check-outstock')) 1290 { 1291 // console.log('bbbb'); 1292 showLeoNotification('warning', 'max', false); 1293 $this.val(product_quantity); 1294 // console.log(event); 1295 // return false; 1296 // return; 1297 // break; 1298 // event.preventDefault(); 1299 // event.stopPropagation(); 1300 check_product_outstock = false; 1301 parent_obj.find('.leo-dropdown-overlay').hide(); 1302 parent_obj.find('.leo-dropdown-cssload-speeding-wheel').hide(); 1303 parent_obj.removeClass('updating'); 1304 } 1305 if (!check_product_outstock) 1306 { 1307 return false; 1308 } 1309 1310 if ($('.js-cart-line-product-quantity').length) 1311 { 1312 //DONGND:: page cart 1313 var e = $.Event("keyup"); 1314 e.keyCode = 13; // # Some key code value 1315 // console.log($('.remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]')); 1316 $('.remove-from-cart[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').parents('.cart-item').find('.js-cart-line-product-quantity').val(input_quantity).trigger(e); 1317 } 1318 else 1319 { 1320 var link_url = $this.data('update-url'); 1321 var refresh_url = $('.leo-blockcart.cart-preview').data('refresh-url'); 1322 var op = ''; 1323 if (qty > 0) 1324 { 1325 op = 'up'; 1326 } 1327 else 1328 { 1329 op = 'down'; 1330 } 1331 // var scrollToElement = parent_obj.index()-1; 1332 1333 $.ajax({ 1334 type: 'POST', 1335 headers: {"cache-control": "no-cache"}, 1336 url: link_url, 1337 async: true, 1338 cache: false, 1339 data: { 1340 "ajax": 1, 1341 "action": "update", 1342 "qty": Math.abs(qty), 1343 "op": op, 1344 }, 1345 success: function (result) 1346 { 1347 var obj = $.parseJSON(result); 1348 parent_obj.find('.leo-dropdown-overlay').hide(); 1349 parent_obj.find('.leo-dropdown-cssload-speeding-wheel').hide(); 1350 parent_obj.removeClass('updating'); 1351 1352 // console.log(obj); 1353 if(obj.success) 1354 { 1355 // $this.data('product-quantity', input_quantity); 1356 $('.leo-input-product-quantity[data-id-product="'+id_product+'"][data-id-product-attribute="'+id_product_attribute+'"][data-id-customization="'+id_customization+'"]').val(input_quantity).data('product-quantity', input_quantity); 1357 //DONGND:: show notification 1358 showLeoNotification('success','update', false); 1359 1360 //DONGND:: refresh cart 1361 $.ajax({ 1362 type: 'POST', 1363 headers: {"cache-control": "no-cache"}, 1364 url: refresh_url, 1365 async: true, 1366 cache: false, 1367 success: function (resp) 1368 { 1369 $('.leo-blockcart').replaceWith($(resp.preview).find('.blockcart')); 1370 $(".blockcart.cart-preview").addClass('leo-blockcart'); 1371 if (typeof show_popup != 'undefined' && !show_popup) 1372 { 1373 $(".blockcart.cart-preview").removeClass('blockcart') 1374 } 1375 createModalAndDropdown(1, 1); 1376 1377 }, 1378 error: function (XMLHttpRequest, textStatus, errorThrown) { 1379 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1380 } 1381 }); 1382 1383 } 1384 else 1385 { 1386 //DONGND:: show notification 1387 showLeoNotification('error','update', false); 1388 } 1389 1390 }, 1391 error: function (XMLHttpRequest, textStatus, errorThrown) { 1392 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1393 } 1394 }); 1395 } 1396 } 1397 }, 10); 1398 1399 // }); 1400 1401} 1402 1403function createModalAndDropdown($only_dropdown, $only_total) 1404{ 1405 1406 //DONGD:: add loading 1407 // $('.blockcart.cart-preview .header').append('<span class="leo-dropdown-cssload-speeding-wheel"></span>'); 1408 // $('.blockcart.cart-preview .leo-dropdown-cssload-speeding-wheel').css({'display':'inline-block'}); 1409 // console.log(enable_dropdown_defaultcart); 1410 if (typeof enable_dropdown_defaultcart != 'undefined') 1411 { 1412 // console.log(enable_dropdown_defaultcart); 1413 if (enable_dropdown_defaultcart) 1414 { 1415 if ($('.blockcart.cart-preview').length) 1416 { 1417 $('.blockcart.cart-preview').addClass('leo-blockcart show-leo-loading').append('<div class="cssload-piano"><div class="cssload-rect1"></div><div class="cssload-rect2"></div><div class="cssload-rect3"></div></div>'); 1418 } 1419 else 1420 {
1421 $('.leo-blockcart.cart-preview').addClass('show-leo-loading').append('<div class="cssload-piano"><div class="cssload-rect1"></div><div class="cssload-rect2"></div><div class="cssload-rect3"></div></div>'); 1422 } 1423 1424 $('.leo-blockcart.cart-preview .cssload-piano').show(); 1425 // $('.blockcart.cart-preview a').attr('href', 'javascript:void(0)'); 1426 // $('.blockcart.cart-preview').addClass('dropdown-toggle').data('toggle','dropdown').attr('aria-haspopup','true').attr('aria-expanded','false').attr('id','dropdownCartNormal'); 1427 // $('.blockcart.cart-preview').parent().addClass('dropdown'); 1428 $('.leo-blockcart.cart-preview.show-leo-loading').data('type',type_dropdown_defaultcart); 1429 // if (typeof enable_dropdown_defaultcart != 'undefined') 1430 // { 1431 // $('.leo-blockcart.cart-preview.show-leo-loading').data('pusheffect', enable_pusheffect_defaultcart); 1432 // } 1433 //DONGND:: action dropdown 1434 if (typeof type_dropdown_defaultcart != 'undefined') 1435 { 1436 if (type_dropdown_defaultcart == 'dropdown' || type_dropdown_defaultcart == 'dropup') 1437 { 1438 $('.leo-blockcart.cart-preview.show-leo-loading').click(function(){ 1439 // console.log('test'); 1440 showDropDownCart($(this), 'defaultcart'); 1441 return false; 1442 }) 1443 } 1444 if (type_dropdown_defaultcart == 'slidebar_left' || type_dropdown_defaultcart == 'slidebar_right' || type_dropdown_defaultcart == 'slidebar_top' || type_dropdown_defaultcart == 'slidebar_bottom') 1445 { 1446 $('.leo-blockcart.cart-preview.show-leo-loading').click(function(){ 1447 showSlideBarCart($(this)); 1448 return false; 1449 }) 1450 } 1451 } 1452 } 1453 else 1454 { 1455 // console.log('test'); 1456 $('.blockcart.cart-preview').addClass('leo-blockcart'); 1457 } 1458 } 1459 1460 //DONGND:: loading fly cart 1461 if ($('.leo-fly-cart .leo-fly-cart-cssload-loader').length) 1462 { 1463 $('.leo-fly-cart .leo-fly-cart-cssload-loader').show(); 1464 } 1465 $.ajax({ 1466 type: 'POST', 1467 headers: {"cache-control": "no-cache"}, 1468 url: prestashop.urls.base_url + 'modules/leofeature/psajax.php?rand=' + new Date().getTime(), 1469 async: true, 1470 cache: false, 1471 data: { 1472 "action": "render-modal", 1473 "only_dropdown": $only_dropdown, 1474 "only_total": $only_total, 1475 "token": leo_token 1476 }, 1477 success: function (result) 1478 { 1479 if (result != '') 1480 { 1481 // $('.blockcart.cart-preview .leo-dropdown-cssload-speeding-wheel').hide(); 1482 $('.leo-blockcart.cart-preview .cssload-piano').hide(); 1483 if ($('.leo-fly-cart .leo-fly-cart-cssload-loader').length) 1484 { 1485 $('.leo-fly-cart .leo-fly-cart-cssload-loader').hide(); 1486 } 1487 if(result.dropdown != '') 1488 { 1489 if ($('.leo-fly-cart-slidebar.disable').length) 1490 { 1491 $('.leo-fly-cart-slidebar').removeClass('disable'); 1492 } 1493 if (!$('.leo-dropdown-cart').length) 1494 { 1495 if (typeof type_dropdown_defaultcart != 'undefined' && (type_dropdown_defaultcart == 'dropdown' || type_dropdown_defaultcart == 'dropup')) 1496 { 1497 $('.leo-blockcart.cart-preview.show-leo-loading').after('<div class="leo-dropdown-cart defaultcart '+type_dropdown_defaultcart+'"></div>'); 1498 } 1499 1500 //DONGND:: add dropdown to flycart 1501 if ($('.leo-fly-cart.enable-dropdown').length) 1502 { 1503 $('.leo-fly-cart.enable-dropdown').append('<div class="leo-dropdown-cart flycart '+$('.leo-fly-cart.enable-dropdown').data('type')+'"></div>'); 1504 } 1505 1506 //DONGND:: add dropdown to flycart slide bar 1507 if ($('.leo-fly-cart-slidebar').length) 1508 { 1509 1510 $('.leo-fly-cart-slidebar').append('<div class="leo-dropdown-cart"></div>'); 1511 } 1512 } 1513 else 1514 { 1515 $('.leo-dropdown-cart').addClass('update'); 1516 } 1517 1518 if ($('.leo-dropdown-cart-content').length) 1519 { 1520 // console.log('test'); 1521 // $('.leo-dropdown-cart-content').remove(); 1522 // $('.leo-dropdown-cart-content').replaceWith(result.dropdown); 1523 1524 if ($only_total == 1) 1525 { 1526 $('.leo-dropdown-cart-content .leo-dropdown-total').replaceWith(result.dropdown); 1527 var check_number_cartitem = 3; 1528 if (typeof number_cartitem_display != 'undefined') 1529 { 1530 check_number_cartitem = number_cartitem_display; 1531 } 1532 //DONGND:: turn off scroll bar 1533 $('.leo-dropdown-list-item').each(function(){ 1534 // if (!$(this).parents('.leo-fly-cart-slidebar').length && $(this).find('.leo-dropdown-cart-item').length <= check_number_cartitem && $(this).hasClass('active-scrollbar')) 1535 // { 1536 if (!$(this).parents('.leo-fly-cart-slidebar').length) 1537 { 1538 // $(this).removeClass("active-scrollbar").css({'max-height': 'none'}); 1539 // $(this).mCustomScrollbar("destroy"); 1540 // $(this).mCustomScrollbar("disable",true); 1541 checkFlyCartScrollBarDropDown($(this)); 1542 } 1543 //DONGND:: scroll bar for slidebar 1544 if ($(this).parents('.leo-fly-cart-slidebar').length && $(this).parents('.leo-fly-cart-slidebar').find('.active-scrollbar')) 1545 { 1546 // console.log('test'); 1547 checkFlyCartScrollBar($(this)); 1548 } 1549 }) 1550 } 1551 else 1552 { 1553 $('.leo-dropdown-cart-content').replaceWith(result.dropdown); 1554 activeDropdownEvent(); 1555 } 1556 1557 } 1558 else 1559 { 1560 // console.log('test1'); 1561 $('.leo-dropdown-cart').append(result.dropdown); 1562 activeDropdownEvent(); 1563 } 1564 1565 1566 } 1567 else 1568 { 1569 //DONGND:: clear cart 1570 if ($('.leo-dropdown-cart').length) 1571 { 1572 $('.leo-dropdown-cart').remove(); 1573 } 1574 $('.leo-fly-cart-slidebar').addClass('disable'); 1575 if ($('.leo-fly-cart-slidebar.active').length) 1576 { 1577 $('.leo-fly-cart-slidebar.active').find('.leo-fly-cart-icon').trigger('click'); 1578 } 1579 } 1580 1581 //DONGND:: create modal popup 1582 if(result.modal != '') 1583 { 1584 $('body').append(result.modal); 1585 activeEventModal(); 1586 } 1587 //DONGND:: create notification 1588 if(result.notification != '') 1589 { 1590 $('body').append(result.notification); 1591 } 1592 1593 //DONGND:: update cart total for fly cart 1594 if ($('.leo-fly-cart-total').length) 1595 { 1596 if ($('.leo-dropdown-total').length) 1597 { 1598 $('.leo-fly-cart-total').text($('.leo-dropdown-total').data('cart-total')); 1599 } 1600 else 1601 { 1602 $('.leo-fly-cart-total').text("0"); 1603 } 1604 1605 } 1606 } 1607 else 1608 {
1609 alert(add_cart_error); 1610 } 1611 1612 }, 1613 error: function (XMLHttpRequest, textStatus, errorThrown) { 1614 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1615 // alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1616 } 1617 }); 1618} 1619 1620//DONGND:: event for notification 1621function activeEventNotification() 1622{ 1623 $(".leo-notification .notification").click(function(){ 1624 $(this).removeClass('show').addClass("closed").parent().addClass('disable'); 1625 // var obj = $(this); 1626 // setTimeout( 1627 // function() 1628 // { 1629 // obj.parent().addClass('disable'); 1630 // }, 700); 1631 // if (!$(".leo-notification .notification.show").length) 1632 // { 1633 // setTimeout( 1634 // function() 1635 // { 1636 // $(".leo-notification").removeClass('active'); 1637 // }, 700); 1638 1639 // } 1640 }) 1641} 1642 1643function showLeoNotification($status, $action, $special_parameter) 1644{ 1645 if (!$('.leo-notification').hasClass('active')) 1646 { 1647 $('.leo-notification').addClass('active'); 1648 } 1649 var clone_obj = ''; 1650 1651 clone_obj = $('.leo-temp-'+$status+'>div').clone(); 1652 clone_obj.find('.noti-'+$action).addClass('active'); 1653 if ($special_parameter && $special_parameter != '') 1654 { 1655 clone_obj.find('.noti-'+$action).find('.noti-special').text($special_parameter); 1656 } 1657 // clone_obj.height(clone_obj.find('.notification').height()); 1658 // clone_obj.find('.notification').addClass('show'); 1659 $('.leo-notification').append(clone_obj); 1660 setTimeout( 1661 function() 1662 { 1663 // $('.leo-notification .notification').last().addClass('show'); 1664 clone_obj.find('.notification').addClass('show'); 1665 // var height_wrapper = $('.leo-notification .notification').last().height(); 1666 // $('.leo-notification .notification-wrapper').last().height(height_wrapper); 1667 }, 100); 1668 1669 activeEventNotification(); 1670 setTimeout( 1671 function() 1672 { 1673 // clone_obj.find('.notification').trigger('click'); 1674 clone_obj.find('.notification').removeClass('show').addClass("closed").parent().addClass('disable'); 1675 }, 5000); 1676} 1677 1678//DONGND:: check product out stock 1679function checkProductOutStock($id_product, $id_product_attribute, $id_customization, $quantity, $element, $check_product_in_cart) 1680{ 1681 // console.log($element); 1682 // return $.ajax({ 1683 $.ajax({ 1684 type: 'POST', 1685 headers: {"cache-control": "no-cache"}, 1686 url: prestashop.urls.base_url + 'modules/leofeature/psajax.php?rand=' + new Date().getTime(), 1687 async: true, 1688 cache: false, 1689 data: { 1690 "action": "check-product-outstock", 1691 "id_product": $id_product, 1692 "id_product_attribute": $id_product_attribute, 1693 "id_customization": $id_customization, 1694 "quantity": $quantity, 1695 "check_product_in_cart": $check_product_in_cart, 1696 "token": leo_token 1697 }, 1698 success: function (result) 1699 { 1700 if (result != '') 1701 { 1702 var obj = $.parseJSON(result); 1703 // console.log('bbb'); 1704 // console.log(obj.success); 1705 1706 $element.data('check-outstock', obj.success) 1707 // console.log($element.data('check-outstock')); 1708 } 1709 else 1710 { 1711 alert(add_cart_error); 1712 } 1713 1714 }, 1715 error: function (XMLHttpRequest, textStatus, errorThrown) { 1716 console.log("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1717 // alert("TECHNICAL ERROR: \n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus); 1718 } 1719 }); 1720} 1721 1722//DONGND:: update class first last of cart item 1723function updateClassCartItem() 1724{ 1725 $('.leo-dropdown-list-item').each(function(){ 1726 $(this).find('.leo-dropdown-cart-item').first().addClass('first'); 1727 $(this).find('.leo-dropdown-cart-item').last().addClass('last'); 1728 }) 1729} 1730 1731//DONGND:: create fly cart effect 1732function flyCartEffect($element) 1733{ 1734 if ($element.hasClass('leo-bt-cart')) 1735 { 1736 var parent_e = $element.parents('.product-miniature'); 1737 var product_img = parent_e.find('.product-thumbnail').find("img").eq(0); 1738 } 1739 else 1740 { 1741 var product_img = ''; 1742 if ($('.quickview .product-cover').length) 1743 { 1744 //DONGND:: quickview in produc page 1745 product_img = $('.quickview .product-cover').find("img").eq(0); 1746 } 1747 else 1748 { 1749 //DONGND:: product page 1750 product_img = $('.product-cover').find("img").eq(0); 1751 } 1752 } 1753 if (typeof product_img != 'undefined' && product_img.length) 1754 { 1755 var obj_element = ''; 1756 if ($('.leo-fly-cart-slidebar.active .leo-fly-cart-icon').length) 1757 { 1758 obj_element = $('.leo-fly-cart-slidebar.active .leo-fly-cart-icon'); 1759 } 1760 else if ($('.leo-fly-cart.solo .leo-fly-cart-icon').length) 1761 { 1762 obj_element = $('.leo-fly-cart.solo .leo-fly-cart-icon'); 1763 } 1764 else if ($('.leo-blockcart.cart-preview').length) 1765 { 1766 obj_element = $('.leo-blockcart.cart-preview'); 1767 } 1768 else if ($('.blockcart.cart-preview').length) 1769 { 1770 obj_element = $('.blockcart.cart-preview'); 1771 } 1772 $('body').addClass('enable-leo-fly-cart'); 1773 var divider = 4; 1774 var flyerClone = product_img.clone(); 1775 1776 var clone_offset_top = product_img.offset().top; 1777 var clone_offset_left = product_img.offset().left; 1778 //DONGND:: update for body boxed 1779 if ($('body').offset().left != 0) 1780 { 1781 clone_offset_left = clone_offset_left - $('body').offset().left; 1782 } 1783 flyerClone.css({position: 'absolute', top: clone_offset_top + "px", left: clone_offset_left + "px", opacity: 1, 'z-index': 1000, width: product_img.width(), height: product_img.height()}); 1784 1785 $('body').append(flyerClone); 1786 var gotoX = obj_element.offset().left + (obj_element.width() / 2) - (product_img.width()/divider)/2; 1787 //DONGND:: update for body boxed 1788 if ($('body').offset().left != 0) 1789 { 1790 gotoX = gotoX - $('body').offset().left; 1791 } 1792 if ($('html').hasClass('safari-win') && $('.leo-fly-cart-slidebar.active .leo-fly-cart-icon').length) 1793 { 1794 //DONGND:: update position of fly cart icon on slidebar cart for safari win 1795 var gotoY = $(window).scrollTop()+obj_element.offset().top + (obj_element.height() / 2) - (product_img.height()/divider)/2; 1796 } 1797 else 1798 { 1799 var gotoY = obj_element.offset().top + (obj_element.height() / 2) - (product_img.height()/divider)/2; 1800 } 1801 1802 flyerClone.animate({ 1803 opacity: 0.4, 1804 left: gotoX, 1805 top: gotoY, 1806 width: product_img.width()/divider, 1807 height: product_img.height()/divider 1808 }, 1000, 1809 function () { 1810 flyerClone.fadeOut('fast', function () { 1811 flyerClone.remove(); 1812 $('body').removeClass('enable-leo-fly-cart'); 1813 }); 1814 if (typeof type_flycart_effect != 'undefined') 1815 { 1816 if (type_flycart_effect == 'shake') 1817 { 1818 obj_element.parents('.leo-fly-cart').find('.leo-fly-cart-total').css({'opacity':0}); 1819 setTimeout(function () { 1820 obj_element.effect("shake", { 1821 times: 2 1822 }, 200, function(){ 1823 obj_element.parents('.leo-fly-cart').find('.leo-fly-cart-total').css({'opacity':1}); 1824 }); 1825 }, 500); 1826 } 1827 if (type_flycart_effect == 'fade') 1828 { 1829 obj_element.fadeOut('fast', function () { 1830 obj_element.fadeIn('fast', function () { 1831 }); 1832 }); 1833 } 1834 } 1835 // obj_element.fadeOut('fast', function () { 1836 // obj_element.fadeIn('fast', function () { 1837 // flyerClone.fadeOut('fast', function () { 1838 // flyerClone.remove(); 1839 // }); 1840 // }); 1841 // }); 1842 }); 1843 1844 // var divider = 1; 1845 // var imgclone = product_img.clone() 1846 // .offset({ 1847 // top: product_img.offset().top, 1848 // left: product_img.offset().left 1849 // }) 1850 // .css({ 1851 // 'opacity': '0.5', 1852 // 'position': 'absolute', 1853 // 'height': product_img.width()/divider, 1854 // 'width': product_img.height()/divider, 1855 // 'z-index': '100' 1856 // }) 1857 // .appendTo($('body')) 1858 // .animate({ 1859 // 'top': obj_element.offset().top + 10, 1860 // 'left': obj_element.offset().left + 10, 1861 // 'width': product_img.width()/divider/2, 1862 // 'height': product_img.height()/divider/2 1863 // }, 1000, 'easeInOutExpo'); 1864 1865 // setTimeout(function () { 1866 // obj_element.effect("shake", { 1867 // times: 2 1868 // }, 200); 1869 // }, 1500); 1870 1871 // imgclone.animate({ 1872 // 'width': 0, 1873 // 'height': 0 1874 // }, function () { 1875 // $(this).detach() 1876 // }); 1877 } 1878} 1879 1880//DONGND:: event for fly cart slidebar 1881function activeEventFlyCartSlideBar() 1882{ 1883 $('.leo-fly-cart-mask, .leo-fly-cart-slidebar .leo-fly-cart-icon, .leo-fly-cart-slidebar .leo-fly-cart-icon-wrapper').click(function(){ 1884 // console.log('test'); 1885 $('.leo-fly-cart-mask.active').removeClass('active'); 1886 $('.leo-fly-cart-icon.active-slidebarcart').removeClass('active-slidebarcart'); 1887 $('.leo-blockcart.cart-preview.active-slidebarcart').removeClass('active-slidebarcart'); 1888 $('body.leoflycart-active-push main').css({ 1889 "-moz-transform": "translateX(0px)", 1890 "-webkit-transform": "translateX(0px)", 1891 "-o-transform": "translateX(0px)", 1892 "-ms-transform": "translateX(0px)", 1893 "transform": "translateX(0px)", 1894 "-moz-transform": "translateY(0px)", 1895 "-webkit-transform": "translateY(0px)", 1896 "-o-transform": "translateY(0px)", 1897 "-ms-transform": "translateY(0px)", 1898 "transform": "translateY(0px)", 1899 }); 1900 setTimeout(function(){ 1901 $('body').removeClass('leoflycart-active-slidebar leoflycart-active-push'); 1902 },300); 1903 1904 $('.leo-fly-cart-slidebar.active').removeClass('active'); 1905 }); 1906 1907 $(document).keyup(function(e) { 1908 //DONGND:: press esc 1909 if (e.keyCode == 27) { 1910 if ($('.leo-fly-cart-mask').hasClass('active')) 1911 { 1912 $('.leo-fly-cart-mask.active').trigger('click'); 1913 } 1914 else if ($('.leo-fly-cart-slidebar.active .leo-fly-cart-icon').length) 1915 { 1916 $('.leo-fly-cart-slidebar .leo-fly-cart-icon').trigger('click'); 1917 } 1918 } 1919 }); 1920} 1921 1922//DONGND:: update scroll bar for slidebar cart 1923function checkFlyCartScrollBar($element) 1924{ 1925 var object_parent = $element.parents('.leo-fly-cart-slidebar'); 1926 if (object_parent.hasClass('slidebar_top') || object_parent.hasClass('slidebar_bottom')) 1927 { 1928 // console.log('test'); 1929 var width_bottom = object_parent.find('.leo-dropdown-bottom').outerWidth(); 1930 var window_width = $(window).width(); 1931 var element_width = ''; 1932 if (typeof width_cart_item != 'undefined') 1933 { 1934 element_width = $element.find('.leo-dropdown-cart-item').length * width_cart_item; 1935 } 1936 else 1937 { 1938 element_width = $element.find('.leo-dropdown-cart-item').length * $element.find('.leo-dropdown-cart-item').outerWidth(); 1939 } 1940 // console.log(width_bottom); 1941 // console.log(element_width); 1942 // console.log(window_width); 1943 if (element_width+width_bottom > window_width) 1944 { 1945 object_parent.addClass('active-scroll'); 1946 object_parent.find('.leo-dropdown-list-item-warpper').addClass('active-scrollbar'); 1947 object_parent.find('.leo-dropdown-list-item-warpper').css({'width': window_width-width_bottom}); 1948 object_parent.find('.leo-dropdown-list-item-warpper').mCustomScrollbar({ 1949 theme:"dark", 1950 axis: "x", 1951 scrollInertia: 200, 1952 callbacks:{ 1953 onInit:function(){ 1954 1955 } 1956 }, 1957 advanced:{ 1958 autoExpandHorizontalScroll:true 1959 }, 1960 keyboard:{ 1961 enable:true, 1962 // scrollType:"stepless", 1963 // scrollAmount:"auto" 1964 } 1965 }); 1966 object_parent.find('.leo-dropdown-list-item-warpper').mCustomScrollbar('update'); 1967 } 1968 else 1969 { 1970 object_parent.removeClass('active-scroll'); 1971 object_parent.find('.leo-dropdown-list-item-warpper').removeClass("active-scrollbar").css({'width': 'auto'}); 1972 object_parent.find('.leo-dropdown-list-item-warpper').mCustomScrollbar("destroy"); 1973 } 1974 } 1975 1976 if (object_parent.hasClass('slidebar_left') || object_parent.hasClass('slidebar_right')) 1977 { 1978 var height_bottom = object_parent.find('.leo-dropdown-bottom').outerHeight(); 1979 var window_height = $(window).height(); 1980 var element_height = ''; 1981 if (typeof height_cart_item != 'undefined') 1982 { 1983 element_height = $element.find('.leo-dropdown-cart-item').length * height_cart_item; 1984 } 1985 else 1986 { 1987 element_height = $element.find('.leo-dropdown-cart-item').length * $element.find('.leo-dropdown-cart-item').outerHeight(); 1988 } 1989 if (element_height+height_bottom > window_height) 1990 { 1991 object_parent.addClass('active-scroll'); 1992 $element.addClass('active-scrollbar'); 1993 $element.css({'max-height': window_height-height_bottom}); 1994 $element.mCustomScrollbar({ 1995 theme:"dark", 1996 scrollInertia: 200, 1997 callbacks:{ 1998 onInit:function(){ 1999 2000 } 2001 }, 2002 keyboard:{ 2003 enable:true, 2004 // scrollType:"stepless", 2005 // scrollAmount:"auto" 2006 } 2007 2008 }); 2009 $element.mCustomScrollbar('update'); 2010 } 2011 else 2012 { 2013 object_parent.removeClass('active-scroll'); 2014 $element.removeClass("active-scrollbar").css({'max-height': 'none'}); 2015 $element.mCustomScrollbar("destroy"); 2016 } 2017 } 2018 2019} 2020 2021//DONGND:: update scroll bar for dropdown/dropup 2022function checkFlyCartScrollBarDropDown($element) 2023{ 2024 var object_parent = $element.parents('.leo-fly-cart.type-fixed.enable-dropdown'); 2025 var type = object_parent.data('type'); 2026 var height_bottom = object_parent.find('.leo-dropdown-bottom').outerHeight(); 2027 2028 var height_real = height_cart_item*$element.find('.leo-dropdown-cart-item').length; 2029 var height_icon = object_parent.find('.leo-fly-cart-icon-wrapper').outerHeight(); 2030 var window_height = $(window).height(); 2031 var check_number_cartitem = 3; 2032 if (typeof number_cartitem_display != 'undefined') 2033 { 2034 check_number_cartitem = number_cartitem_display; 2035 } 2036 var height_default = height_cart_item*number_cartitem_display; 2037 2038 if (object_parent.length > 0 && type == 'dropup' && height_real+height_bottom > object_parent.position().top && height_default+height_bottom > object_parent.position().top) 2039 { 2040 // console.log('test0'); 2041 $element.addClass('active-scrollbar').css({'max-height': object_parent.position().top-height_icon-height_bottom}); 2042 $element.mCustomScrollbar({ 2043 theme:"dark", 2044 scrollInertia: 200, 2045 callbacks:{ 2046 onInit:function(){ 2047 2048 } 2049 }, 2050 keyboard:{ 2051 enable:true, 2052 } 2053 2054 }); 2055 $element.mCustomScrollbar('update'); 2056 } 2057 else if (object_parent.length > 0 && type == 'dropdown' && height_real+height_bottom > $(window).height()-object_parent.position().top && height_default+height_bottom > $(window).height()-object_parent.position().top) 2058 { 2059 // console.log('test1'); 2060 $element.addClass('active-scrollbar').css({'max-height': $(window).height()-object_parent.position().top-height_icon-height_bottom}); 2061 $element.mCustomScrollbar({ 2062 theme:"dark", 2063 scrollInertia: 200, 2064 callbacks:{ 2065 onInit:function(){ 2066 2067 } 2068 }, 2069 keyboard:{ 2070 enable:true, 2071 } 2072 2073 }); 2074 $element.mCustomScrollbar('update'); 2075 } 2076 else if ($element.find('.leo-dropdown-cart-item').length > check_number_cartitem) 2077 { 2078 // console.log('test2'); 2079 // console.log($(this).find('.leo-dropdown-cart-item').innerHeight()); 2080 if (typeof height_cart_item != 'undefined') 2081 { 2082 $element.addClass('active-scrollbar').css({'max-height': height_cart_item*number_cartitem_display}); 2083 } 2084 else 2085 { 2086 $element.addClass('active-scrollbar').css({'max-height': $element.find('.leo-dropdown-cart-item').outerHeight()*check_number_cartitem}); 2087 } 2088 2089 $element.mCustomScrollbar({ 2090 theme:"dark", 2091 scrollInertia: 200, 2092 callbacks:{ 2093 onInit:function(){ 2094 2095 } 2096 }, 2097 keyboard:{ 2098 enable:true, 2099 // scrollType:"stepless", 2100 // scrollAmount:"auto" 2101 } 2102 }); 2103 // $(this).mCustomScrollbar('update'); 2104 2105 // if ($scrollToElement != false) 2106 // { 2107 // $(this).mCustomScrollbar('scrollTo',$(this).find('.mCSB_container').find('.leo-dropdown-cart-item:eq('+$scrollToElement+')'),{scrollInertia:0}); 2108 // } 2109 2110 // $(this).scrollbar(); 2111 } 2112 else 2113 { 2114 // console.log('test3'); 2115 // object_parent.removeClass('active-scroll'); 2116 $element.removeClass("active-scrollbar").css({'max-height': 'none'}); 2117 $element.mCustomScrollbar("destroy"); 2118 } 2119} 2120 2121//DONGND:: set class by position of fly cart icon 2122function getOffsetFlycartIcon() 2123{ 2124 if ($('.leo-fly-cart.solo .leo-fly-cart-icon').length) 2125 { 2126 var offset_top = $('.leo-fly-cart.solo .leo-fly-cart-icon').offset().top; 2127 var offset_left = $('.leo-fly-cart.solo .leo-fly-cart-icon').offset().left; 2128 var window_width = $(window).width(); 2129 2130 if (offset_left <= window_width/2) 2131 { 2132 $('.leo-fly-cart.solo').removeClass('offset-right').addClass('offset-left'); 2133 } 2134 else 2135 { 2136 $('.leo-fly-cart.solo').removeClass('offset-left').addClass('offset-right'); 2137 } 2138 2139 //DONGND:: update rtl 2140 if (lf_is_gen_rtl
2140 && prestashop.language.is_rtl == 1) 2141 { 2142 if ($('.leo-fly-cart.solo').hasClass('offset-right')) 2143 { 2144 $('.leo-fly-cart.solo').removeClass('offset-right').addClass('offset-left'); 2145 } 2146 else if ($('.leo-fly-cart.solo').hasClass('offset-left')) 2147 { 2148 $('.leo-fly-cart.solo').removeClass('offset-left').addClass('offset-right'); 2149 } 2150 } 2151 } 2152} 2153 2154//DONGND:: show modal popup cart 2155function showModalPopupCart(modal) 2156{ 2157 if ($('#blockcart-modal').length) 2158 { 2159 $('#blockcart-modal').remove(); 2160 } 2161 2162 $('body').append(modal); 2163 2164 $('#blockcart-modal').modal('show'); 2165}
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.