AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 3.17.162.61
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/js/calendar/resourcebooking/src/controls/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/calendar/resourcebooking/src/controls/resourceselector.js
import {Type} from "../resourcebooking";
import {ViewControlAbstract} from "../viewcontrolabstract";
import {ViewDropDownSelect} from "../viewdropdownselect";

export class ResourceSelector extends ViewControlAbstract
{
	constructor(params)
	{
		super(params);
		this.name = 'ResourceSelector';
		this.data = params.data;
		this.allResourceList = params.resourceList;
		this.autoSelectDefaultValue = params.autoSelectDefaultValue;
		this.changeValueCallback = params.changeValueCallback;
		this.handleSettingsData(params.data);
	}

	handleSettingsData(data)
	{
		if (!Type.isArray(data.value))
		{
			let dataValue = [];
			if (data.value)
			{
				data.value.split('|').forEach(function(id)
				{
					if (parseInt(id) > 0)
					{
						dataValue.push(parseInt(id))
					}
				});
			}
			this.data.value = dataValue;
		}

		this.resourceList = [];
		if (Type.isArray(this.allResourceList) && Type.isArray(this.data.value))
		{
			this.allResourceList.forEach(function(item)
			{
				if (this.data.value.includes(parseInt(item.id)))
				{
					this.resourceList.push(item);
				}
			}, this);
		}

		this.setSelectedValues(this.getSelectedValues());
	}

	displayControl()
	{
		this.dropdownSelect = new ViewDropDownSelect({
			wrap: this.DOM.controlWrap,
			values: this.resourceList,
			selected: this.selectedValues,
			multiple: this.data.multiple === 'Y',
			handleChangesCallback: this.changeValueCallback
		});
		this.dropdownSelect.build();
	}

	refresh(data)
	{
		this.refreshLabel(data);
		this.data = data;
		this.handleSettingsData(this.data);
		this.setSelectedValues(this.getSelectedValues());

		if (this.dropdownSelect)
		{
			this.dropdownSelect.setSettings({
				values: this.resourceList,
				selected: this.selectedValues,
				multiple: this.data.multiple === 'Y'
			});
		}

		if (this.setDataConfig())
		{
			if (this.isDisplayed())
			{
				this.show({animation: true});
			}
			else
			{
				this.hide({animation: true});
			}
		}
	}

	getSelectedValues()
	{
		let selected = null;

		if (this.dropdownSelect)
		{
			selected = this.dropdownSelect.getSelectedValues();
		}

		if (!selected && this.autoSelectDefaultValue)
		{
			selected = [this.autoSelectDefaultValue];
		}

		if (!selected && this.data.defaultMode === 'auto')
		{
			if (this.resourceList && this.resourceList[0])
			{
				selected = [this.resourceList[0].id];
			}
		}

		return selected;
	}

	setSelectedValues(selectedValues)
	{
		this.selectedValues = selectedValues;
	}

	setSelectedResource(id)
	{
		if (this.dropdownSelect)
		{
			this.dropdownSelect.setSelectedValues([id]);
		}
		else
		{
			this.autoSelectDefaultValue = parseInt(id);
			this.selectedValues = [id];
		}
	}
}

Anon7 - 2022
AnonSec Team