Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/component/recent-list/src/ |
Upload File : |
import {Type} from 'main.core'; import {EventEmitter} from 'main.core.events'; import {EventType, SettingsMap, RecentSettingsMap} from 'im.v2.const'; import {Logger} from 'im.v2.lib.logger'; import {Utils} from 'im.v2.lib.utils'; export class SettingsManager { static instance = null; store: Object = null; static init($Bitrix): void { if (this.instance) { return; } this.instance = new this($Bitrix); } constructor($Bitrix) { this.store = $Bitrix.Data.get('controller').store; this.initSettings(); this.onSettingsChangeHandler = this.onSettingsChange.bind(this); EventEmitter.subscribe(EventType.dialog.settingsChange, this.onSettingsChangeHandler); if (Utils.platform.isBitrixDesktop() && !Type.isUndefined(BX.desktop)) { BX.desktop.addCustomEvent('bxSaveSettings', (settings) => { this.onSettingsChangeHandler({data: settings}); }); } } initSettings() { if (!BX.MessengerProxy) { console.error('Im.RecentList: SettingsManager: BX.MessengerProxy is not available'); return false; } this.initGeneralSettings(); this.initRecentSettings(); } initGeneralSettings() { const initialSettings = {}; Object.entries(SettingsMap).forEach(([oldName, name]) => { initialSettings[name] = BX.MessengerProxy.getOption(oldName); }); this.store.dispatch('application/setOptions', initialSettings); } initRecentSettings() { const initialSettings = {}; Object.entries(RecentSettingsMap).forEach(([oldName, name]) => { initialSettings[name] = BX.MessengerProxy.getOption(oldName); }); this.store.dispatch('recent/setOptions', initialSettings); } onSettingsChange({data: event}) { Logger.warn('Im.RecentList: SettingsChange', event); const generalSettings = {}; const recentSettings = {}; Object.entries(event).forEach(([name, value]) => { if (Object.keys(RecentSettingsMap).includes(name)) { recentSettings[RecentSettingsMap[name]] = value; } if (Object.keys(SettingsMap).includes(name)) { generalSettings[SettingsMap[name]] = value; } }); this.store.dispatch('application/setOptions', generalSettings); this.store.dispatch('recent/setOptions', recentSettings); } destroy() { EventEmitter.unsubscribe(EventType.dialog.settingsChange, this.onSettingsChangeHandler); } }