%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 18.222.168.192 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/install/components/bitrix/sale.basket.basket/templates/bootstrap_v4/js/ |
Upload File : |
;(function(){ 'use strict'; BX.namespace('BX.Sale.BasketActionPool'); BX.Sale.BasketActionPool = function(component) { this.component = component; this.requestProcessing = false; this.updateTimer = null; this.isBasketRefreshed = this.component.params.DEFERRED_REFRESH !== 'Y'; this.needFullRecalculation = this.component.params.DEFERRED_REFRESH === 'Y'; this.pool = {}; this.lastActualPool = {}; this.approvedAction = ['QUANTITY', 'DELETE', 'RESTORE', 'DELAY', 'OFFER', 'MERGE_OFFER']; this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.setRefreshStatus = function(status) { this.isBasketRefreshed = !!status; }; BX.Sale.BasketActionPool.prototype.getRefreshStatus = function() { return this.isBasketRefreshed; }; BX.Sale.BasketActionPool.prototype.isItemInPool = function(itemId) { return !!this.pool[itemId]; }; BX.Sale.BasketActionPool.prototype.clearLastActualQuantityPool = function(itemId) { this.lastActualPool[itemId] && delete this.lastActualPool[itemId].QUANTITY; }; BX.Sale.BasketActionPool.prototype.checkItemPoolBefore = function(itemId) { if (!itemId) return; this.pool[itemId] = this.pool[itemId] || {}; }; BX.Sale.BasketActionPool.prototype.checkItemPoolAfter = function(itemId) { if (!itemId || !this.pool[itemId]) return; if (Object.keys(this.pool[itemId]).length === 0) { delete this.pool[itemId]; } }; BX.Sale.BasketActionPool.prototype.addCoupon = function(coupon) { this.pool.COUPON = coupon; this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.removeCoupon = function(coupon) { this.checkItemPoolBefore('REMOVE_COUPON'); this.pool.REMOVE_COUPON[coupon] = coupon; this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.changeQuantity = function(itemId, quantity, oldQuantity) { this.checkItemPoolBefore(itemId); if ( (this.lastActualPool[itemId] && this.lastActualPool[itemId].QUANTITY !== quantity) || (!this.lastActualPool[itemId] && quantity !== oldQuantity) ) { this.pool[itemId].QUANTITY = quantity; } else { this.pool[itemId] && delete this.pool[itemId].QUANTITY; } this.checkItemPoolAfter(itemId); this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.deleteItem = function(itemId) { this.checkItemPoolBefore(itemId); if (this.pool[itemId].RESTORE) { delete this.pool[itemId].RESTORE; } else { this.pool[itemId].DELETE = 'Y'; } this.checkItemPoolAfter(itemId); this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.restoreItem = function(itemId, itemData) { this.checkItemPoolBefore(itemId); if (this.pool[itemId].DELETE === 'Y') { delete this.pool[itemId].DELETE; } else { this.pool[itemId].RESTORE = itemData; } this.checkItemPoolAfter(itemId); this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.addDelayed = function(itemId) { this.checkItemPoolBefore(itemId); this.pool[itemId].DELAY = 'Y'; this.checkItemPoolAfter(itemId); this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.removeDelayed = function(itemId) { this.checkItemPoolBefore(itemId); this.pool[itemId].DELAY = 'N'; this.checkItemPoolAfter(itemId); this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.changeSku = function(itemId, props, oldProps) { if (JSON.stringify(props) !== JSON.stringify(oldProps)) { this.checkItemPoolBefore(itemId); this.pool[itemId].OFFER = props; } else { this.pool[itemId] && delete this.pool[itemId].OFFER; this.checkItemPoolAfter(itemId); } this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.mergeSku = function(itemId) { this.checkItemPoolBefore(itemId); this.pool[itemId].MERGE_OFFER = 'Y'; this.switchTimer(); }; BX.Sale.BasketActionPool.prototype.switchTimer = function() { clearTimeout(this.updateTimer); if (this.isProcessing()) { return; } if (this.isPoolEmpty()) { this.component.editPostponedBasketItems(); this.component.fireCustomEvents(); } if (!this.isPoolEmpty()) { this.updateTimer = setTimeout(BX.proxy(this.trySendPool, this), 300); } else if (!this.getRefreshStatus()) { this.trySendPool(); } }; BX.Sale.BasketActionPool.prototype.trySendPool = function() { if (this.isPoolEmpty() && this.getRefreshStatus()) { return; } this.doProcessing(true); if (!this.isPoolEmpty()) { this.component.sendRequest('recalculateAjax', { basket: this.getPoolData() }); this.lastActualPool = this.pool; this.pool = {}; } else if (!this.getRefreshStatus()) { this.component.sendRequest('refreshAjax', { fullRecalculation: this.needFullRecalculation ? 'Y' : 'N' }); this.needFullRecalculation = false; } }; BX.Sale.BasketActionPool.prototype.getPoolData = function() { var poolData = {}, currentPool = this.pool; if (currentPool.COUPON) { poolData.coupon = currentPool.COUPON; delete currentPool.COUPON; } if (currentPool.REMOVE_COUPON) { poolData.delete_coupon = currentPool.REMOVE_COUPON; delete currentPool.REMOVE_COUPON; } for (var id in currentPool) { if (currentPool.hasOwnProperty(id)) { for (var action in currentPool[id]) { if (currentPool[id].hasOwnProperty(action) && BX.util.in_array(action, this.approvedAction)) { poolData[action + '_' + id] = currentPool[id][action]; } } } } return poolData; }; BX.Sale.BasketActionPool.prototype.isPoolEmpty = function() { return Object.keys(this.pool).length === 0; }; BX.Sale.BasketActionPool.prototype.doProcessing = function(state) { this.requestProcessing = state === true; if (this.requestProcessing) { this.component.startLoader(); } else { this.component.endLoader(); } }; BX.Sale.BasketActionPool.prototype.isProcessing = function() { return this.requestProcessing === true; }; })();