uawdijnntqw1x1x1
IP : 18.225.56.185
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
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,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
axolotl.ru
/
www
/
bitrix
/
js
/
crm
/
kanban
/
js
/
..
/
src
/
pullmanager.js
/
/
import {Event, Type, Loc} from 'main.core'; import PullQueue from "./pullqueue"; import {EventEmitter} from "main.core.events"; export default class PullManager { grid: BX.CRM.Kanban.Grid; queue: PullQueue; notifier: BX.UI.Notification.Balloon; openedSlidersCount: Number; constructor(grid) { this.grid = grid; this.queue = new PullQueue(this.grid); this.openedSlidersCount = 0; if (Type.isString(grid.getData().moduleId) && grid.getData().userId > 0) { this.init(); } this.bindEvents(); } init() { Event.ready(() => { const Pull = BX.PULL; if (!Pull) { console.error('pull is not initialized'); return; } Pull.subscribe({ moduleId: this.grid.getData().moduleId, command: this.grid.getData().pullTag, callback: (params) => { if (Type.isString(params.eventName)) { if(this.queue.isOverflow()) { return; } if (params.eventName === 'ITEMUPDATED') { this.onPullItemUpdated(params); } else if (params.eventName === 'ITEMADDED') { this.onPullItemAdded(params); } else if (params.eventName === 'ITEMDELETED') { this.onPullItemDeleted(params); } else if (params.eventName === 'STAGEADDED') { this.onPullStageAdded(params); } else if (params.eventName === 'STAGEDELETED') { this.onPullStageDeleted(params); } else if (params.eventName === 'STAGEUPDATED') { this.onPullStageUpdated(params); } } }, }); Pull.extendWatch(this.grid.getData().pullTag); Event.bind(document, 'visibilitychange', () => { if (!document.hidden) { this.onTabActivated(); } }); }); } onPullItemUpdated(params) { if (this.updateItem(params)) { this.queue.loadItem(); } } updateItem(params) { const item = this.grid.getItem(params.item.id); if (item) { this.queue.push(item.id, { id: item.id, action: 'updateItem', actionParams: params, }); return true; } this.onPullItemAdded(params); return false } onPullItemAdded(params) { if (this.addItem(params)) { this.queue.loadItem(); } } addItem(params) { const itemId = params.item.id; const oldItem = this.grid.getItem(itemId); if (oldItem) { return false; } this.queue.push(itemId, { id: itemId, action: 'addItem', actionParams: params, }); return true; } onPullItemDeleted(params) { if (!Type.isPlainObject(params.item)) { return; } /** * Delay so that the element has time to be rendered before deletion, * if an event for changing the element came before. Ticket #141983 */ const delay = (this.queue.has(params.item.id) ? 5000 : 0); setTimeout(function() { this.queue.delete(params.item.id); this.grid.removeItem(params.item.id); const column = this.grid.getColumn(params.item.data.columnId); column.decPrice(params.item.data.price); column.renderSubTitle(); }.bind(this), delay); } onPullStageAdded(params) { this.grid.onApplyFilter(); } onPullStageDeleted(params) { this.grid.removeColumn(params.stage.id); } onPullStageUpdated(params) { this.grid.onApplyFilter(); } onTabActivated() { if (this.queue.isOverflow()) { this.showOutdatedDataDialog(); } else if (this.queue.peek()) { this.queue.loadItem(); } } showOutdatedDataDialog() { if (!this.notifier) { this.notifier = BX.UI.Notification.Center.notify({ content: Loc.getMessage('CRM_KANBAN_NOTIFY_OUTDATED_DATA'), closeButton: false, autoHide: false, actions: [{ title: Loc.getMessage('CRM_KANBAN_GRID_RELOAD'), events: { click: (event, balloon, action) => { balloon.close(); this.grid.reload(); this.queue.clear(); } } }] }); } else { this.notifier.show(); } } bindEvents(): void { EventEmitter.subscribe('SidePanel.Slider:onOpen', (event) => { this.openedSlidersCount++; this.queue.freeze(); }); EventEmitter.subscribe('SidePanel.Slider:onClose', (event) => { this.openedSlidersCount--; if (this.openedSlidersCount <= 0) { this.openedSlidersCount = 0; this.queue.unfreeze(); this.onTabActivated(); } }); } }
/var/www/axolotl/data/www/axolotl.ru/www/bitrix/js/crm/kanban/js/../src/pullmanager.js