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/rospirotorg.ru/bitrix/js/mail/directorymenu/src/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/mail/directorymenu/src/item.js
import { Tag } from 'main.core';

export class Item
{
	#count = 0;
	#nameOriginal = '';
	#name = '';
	#counterElement: null;
	#itemElement: null;
	#isActive: false;
	#path : '';
	#shiftWidthInPixels = 10;
	#zeroLevelShiftWidth = 29;

	setCount(number)
	{
		this.#count = number;
		this.#counterElement.textContent = number;

		if (number === 0)
		{
			this.#counterElement.classList.add('ui-sidepanel-menu-link-text-counter-hidden');
		}
		else
		{
			this.#counterElement.classList.remove('ui-sidepanel-menu-link-text-counter-hidden');
		}
	}

	getCount()
	{
		return Number(this.#count);
	}

	disableActivity()
	{
		this.#isActive = false;
		this.#itemElement.classList.remove('ui-sidepanel-menu-active');
	}

	getPath()
	{
		return this.#path;
	}

	enableActivity()
	{
		this.#isActive = true;
		this.#itemElement.classList.add('ui-sidepanel-menu-active');
	}

	isActive()
	{
		return this.#isActive;
	}

	/**
	 * So as not to break the menu with incorrectly synchronized directories.
	 *
	 * @param directory (directory structure).
	 * @returns {boolean}
	 */
	static checkProperties(directory) {
		if(directory['path'] === undefined || directory['name'] === undefined || directory['name'] === undefined)
		{
			return false;
		}
		return true;
	}

	constructor(directory, menu, nestingLevel = 0, systemDirs)
	{
		this.#path = directory['path'];

		let iconClass = 'default';
		if(systemDirs['inbox'] === this.#path)
		{
			iconClass = 'inbox';
		}
		else if(systemDirs['spam'] === this.#path)
		{
			iconClass = 'spam';
		}
		else if(systemDirs['outcome'] === this.#path)
		{
			iconClass = 'outcome';
		}
		else if(systemDirs['trash'] === this.#path)
		{
			iconClass = 'trash';
		}
		else if(systemDirs['drafts'] === this.#path)
		{
			iconClass = 'drafts';
		}

		this.#nameOriginal = directory['name'];

		this.#name = this.#nameOriginal.charAt(0).toUpperCase() + this.#nameOriginal.slice(1);

		const itemContainer = Tag.render`<div title="${this.#name}" class="mail-menu-directory-item-container"></div>`;
		const itemElement = Tag.render`<li class="ui-sidepanel-menu-item ui-sidepanel-menu-counter-white mail-menu-directory-item-${iconClass}">
				<a style="padding-left: ${this.#zeroLevelShiftWidth + (this.#shiftWidthInPixels*nestingLevel)}px" class="ui-sidepanel-menu-link">
					<div class="ui-sidepanel-menu-link-text">
						<span class="ui-sidepanel-menu-link-text-item">${this.#name}</span>
					</div>
					<span class="ui-sidepanel-menu-link-text-counter">${directory['count']}</span>
				</a>
			</li>`;
		itemContainer.append(itemElement);

		itemElement.onclick = ()=>
		{
			if(!itemContainer.isActive())
			{
				menu.chooseFunction(directory['path']);
				itemContainer.enableActivity();
			}
		}

		const counterElement = itemElement.querySelector(".ui-sidepanel-menu-link-text-counter");

		this.#counterElement = counterElement;
		this.#itemElement = itemElement;

		itemContainer.getCount = () => this.getCount();
		itemContainer.setCount = number => this.setCount(number);
		itemContainer.enableActivity = () => this.enableActivity();
		itemContainer.disableActivity = () => this.disableActivity();
		itemContainer.isActive = () => this.isActive();
		itemContainer.setIconClass = name => this.setIconClass(name);

		this.setCount(directory['count']);

		for(let i=0; i<directory['items'].length; i++)
		{
			if(!Item.checkProperties(directory['items'][i]))
			{
				continue;
			}
			const subdirectory = new Item(directory['items'][i],menu,nestingLevel+1,systemDirs);
			itemContainer.append(subdirectory);
		}

		menu.includeItem(itemContainer, this.#path);

		return itemContainer;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit