AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 18.118.30.253
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/components/bitrix/main.ui.grid/templates/.default/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/components/bitrix/main.ui.grid/templates/.default/js/submenu.js
;(function() {
	'use strict';

	BX.namespace('BX.Main');

	/**
	 * BX.Main.submenu
	 * @type {{data: Array, init: BX.Main.submenu.init, toggleMenu: BX.Main.submenu.toggleMenu, pushMenu: BX.Main.submenu.pushMenu, getMenu: BX.Main.submenu.getMenu, createMenu: BX.Main.submenu.createMenu}}
	 */
	BX.Main.submenu = {
		data: [],
		init: function(anchor, id, level, menuItems)
		{
			this.id = id;
			this.anchor = anchor;
			this.menuItems = menuItems;
			this.level = level;

			this.anchorRect = BX.pos(this.anchor);
			this.toggleMenu();
		},

		toggleMenu: function()
		{
			var currentLeft;
			var tempLeft;
			var tmpWindow;
			var current = this.anchor.menu;
			var currentWindow = current ? this.anchor.menu.popupWindow : null;

			if (current && currentWindow.isShown())
			{
				currentLeft = currentWindow.bindOptions.left;

				this.data.forEach(function(currentMenu) {
					tmpWindow = currentMenu.popupWindow;
					tempLeft = tmpWindow.bindOptions.left;

					if (currentLeft <= tempLeft)
					{
						currentMenu.popupWindow.close();
					}
				});
			}
			else
			{
				BX.PopupMenu.destroy(this.id);
				this.anchor.menu = this.createMenu();
				this.pushMenu(this.anchor.menu);
				this.anchor.menu.popupWindow.adjustPosition(BX.pos(this.anchor));
				this.anchor.menu.popupWindow.show();

				current = this.anchor.menu;
				currentWindow = current.popupWindow;
				currentLeft = currentWindow.bindOptions.left;

				this.data.forEach(function(currentMenu) {
					tmpWindow = currentMenu.popupWindow;
					tempLeft = tmpWindow.bindOptions.left;

					if (currentLeft <= tempLeft && current.id !== currentMenu.id)
					{
						currentMenu.popupWindow.close();
					}
				});
			}
		},

		pushMenu: function(menu)
		{
			var index = this.getMenu(menu);
			if (menu)
			{
				if (index === null)
				{
					this.data.push(menu);
				}
				else
				{
					this.data[index] = menu;
				}
			}
		},

		getMenu: function(menu)
		{
			var index = null;

			this.data.forEach(function(current, key) {
				if (current.id === menu.id)
				{
					index = key;
					return false;
				}
			});

			return index;
		},

		createMenu: function()
		{
			return BX.PopupMenu.create(
				this.id,
				this.anchor,
				this.menuItems,
				{
					'autoHide': true,
					'offsetTop': -((this.anchorRect.height / 2) + 26),
					'offsetLeft': this.anchorRect.width + 4,
					'angle': {
						'position': 'left',
						'offset': ((this.anchorRect.height / 2) - 8)
					}
				}
			);
		}
	};
})();

Anon7 - 2022
AnonSec Team