Your IP : 3.135.218.96


Current Path : /var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/
Upload File :
Current File : /var/www/axolotl/data/www/arhangelsk.axolotls.ru/a537b/util.tar

timer/config.php000066400000000277147736067410007671 0ustar00<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
{
	die();
}

return array(
	'js' => Array(
		'/bitrix/js/messenger/util/timer/script.js',
	),
	'bundle_js' => 'im_core',
);timer/script.js000066400000004555147736067410007560 0ustar00"use strict";

(function(window)
{
	if (!window.BX)
	{
		window.BX = {};
	}
	if (typeof window.BX.Messenger == 'undefined')
	{
		window.BX.Messenger = {};
	}
	else if (typeof window.BX.Messenger.timer != 'undefined')
	{
		return;
	}

	const BX = window.BX;

	class Timer
	{
		constructor()
		{
			this.list = {};

			this.updateInterval = 1000;

			clearInterval(this.updateIntervalId);
			this.updateIntervalId = setInterval(this.worker.bind(this), this.updateInterval);
		}

		start(name, id = 'default', time = 1000, callback = null, callbackParams = {})
		{
			id = id == null? 'default': id;

			time = parseFloat(time);
			if (isNaN(time) || time <= 0)
			{
				return false;
			}

			time = time*1000;

			if (typeof this.list[name] === 'undefined')
			{
				this.list[name] = {};
			}

			this.list[name][id] = {
				'dateStop': new Date().getTime()+time,
				'callback': typeof callback === 'function'? callback: function() {},
				'callbackParams': callbackParams
			};

			return true;
		}

		has(name, id = 'default')
		{
			id = id == null? 'default': id;
			if (id.toString().length <= 0 || typeof this.list[name] === 'undefined')
			{
				return false;
			}

			return !!this.list[name][id];
		}

		stop(name, id = 'default', skipCallback)
		{
			id = id == null? 'default': id;

			if (id.toString().length <= 0 || typeof this.list[name] === 'undefined')
			{
				return false;
			}

			if (!this.list[name][id])
			{
				return true;
			}

			if (skipCallback !== true)
			{
				this.list[name][id]['callback'](id, this.list[name][id]['callbackParams']);
			}

			delete this.list[name][id];

			return true;
		}

		stopAll(skipCallback)
		{
			for (let name in this.list)
			{
				if (this.list.hasOwnProperty(name))
				{
					for (let id in this.list[name])
					{
						if(this.list[name].hasOwnProperty(id))
						{
							this.stop(name, id, skipCallback);
						}
					}
				}
			}
			return true;
		}

		worker()
		{
			for (let name in this.list)
			{
				if (!this.list.hasOwnProperty(name))
				{
					continue;
				}
				for (let id in this.list[name])
				{
					if(!this.list[name].hasOwnProperty(id) || this.list[name][id]['dateStop'] > new Date())
					{
						continue;
					}
					this.stop(name, id);
				}
			}
			return true;
		}

		clean()
		{
			clearInterval(this.updateIntervalId);
			this.stopAll(true);

			return true;
		}
	}

	BX.Messenger.timer = Timer;

})(window);requestcollector/config.php000066400000000312147736067410012136 0ustar00<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
{
	die();
}

return array(
	'js' => Array(
		'/bitrix/js/messenger/util/requestcollector/script.js',
	),
	'bundle_js' => 'im_core',
);requestcollector/script.js000066400000001702147736067410012026 0ustar00"use strict";

(function(window)
{
	if (!window.BX)
	{
		window.BX = {};
	}
	if (typeof window.BX.Messenger == 'undefined')
	{
		window.BX.Messenger = {};
	}
	else if (typeof window.BX.Messenger.requestCollector != 'undefined')
	{
		return;
	}

	const BX = window.BX;

	class RequestCollector
	{
		constructor()
		{
			this.list = {};
		}

		register(name, xhr)
		{
			this.list[name] = xhr;
			return true;
		}

		unregister(name, abort = false)
		{
			if (this.list[name])
			{
				if (abort)
				{
					this.list[name].abort();
				}
				delete this.list[name];
			}
		}

		get(name)
		{
			return this.list[name]? this.list[name]: null;
		}

		abort(name)
		{
			if (this.list[name])
			{
				this.list[name].abort();
			}
			return true;
		}

		cleaner()
		{
			for (let name in this.list)
			{
				if (this.list.hasOwnProperty(name))
				{
					this.unregister(name, true);
				}
			}
		}
	}

	BX.Messenger.requestCollector = RequestCollector;

})(window);