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/components/bitrix/system.field.edit/templates/crm/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/components/bitrix/system.field.edit/templates/crm/script.js
BX.CrmEntitySelector = (function ()
{
	var CrmEntitySelector = function (parameters)
	{
		this.randomString = parameters.randomString;
		this.jsObject = parameters.jsObject;
		this.fieldUid = parameters.fieldUid;
		this.fieldName = parameters.fieldName;
		this.usePrefix = parameters.usePrefix;
		this.listPrefix = parameters.listPrefix;
		this.selectorEntityTypes = parameters.selectorEntityTypes;
		this.multiple = parameters.multiple;
		this.listElement = parameters.listElement;
		this.listEntityType = parameters.listEntityType;
		this.pluralCreation = Boolean(parameters.pluralCreation);
		this.listEntityCreateUrl = parameters.listEntityCreateUrl;
		this.currentEntityType = parameters.currentEntityType;
		this.context = parameters.context;

		this.initialize();
	};

	CrmEntitySelector.prototype.initialize = function()
	{
		this.popupObject = null;
		this.popupId = 'crm-'+this.randomString+'-popup';
		this.popupBindElement = null;
		this.popupContent = '';
		this.externalRequestData = null;
		this.externalEventHandler = null;

		BX.addCustomEvent('onCrmSelectedItem', BX.proxy(this.setSelectedElement, this));
		BX.addCustomEvent('onCrmUnSelectedItem', BX.proxy(this.unsetSelectedElement, this));
	};

	CrmEntitySelector.prototype.createNewEntity = function(event)
	{
		if(this.pluralCreation)
		{
			event = event || window.event;
			this.popupBindElement = event.currentTarget;
			this.createPopup();
		}
		else
		{
			this.performExternalRequest();
		}
	};

	CrmEntitySelector.prototype.performExternalRequest = function(entityType)
	{
		if(this.popupObject)
		{
			this.popupObject.popupWindow.close();
		}

		if(entityType)
		{
			this.setCurrentEntityType(entityType);
		}

		var url = BX.util.add_url_param(this.getCreateUrl(), {
			external_context: this.context
		});

		BX.SidePanel.Instance.open(url);

		if(!this.externalRequestData)
		{
			this.externalRequestData = {};
		}

		this.externalRequestData[this.context] = {
			context: this.context,
			url: url
		};

		if(!this.externalEventHandler)
		{
			this.externalEventHandler = BX.delegate(this.onExternalEvent, this);
			BX.addCustomEvent(window, 'onLocalStorageSet', this.externalEventHandler);
		}
	};

	CrmEntitySelector.prototype.onExternalEvent = function(params)
	{
		var key = BX.type.isNotEmptyString(params['key']) ? params['key'] : '';
		var value = BX.type.isPlainObject(params['value']) ? params['value'] : {};
		var typeName = BX.type.isNotEmptyString(value['entityTypeName']) ? value['entityTypeName'] : '';
		var context = BX.type.isNotEmptyString(value['context']) ? value['context'] : '';

		if(
			key === 'onCrmEntityCreate'
			&& typeName === this.currentEntityType.toUpperCase()
			&& this.externalRequestData &&
			BX.type.isPlainObject(this.externalRequestData[context])
		)
		{
			var isCanceled = BX.type.isBoolean(value['isCanceled']) ? value['isCanceled'] : false;
			if(!isCanceled && BX.type.isPlainObject(value['entityInfo']))
			{
				var selector = BX.UI.SelectorManager.instances[this.fieldUid];
				var valueEntityType = value.entityInfo.type.toUpperCase();

				if (BX.type.isNotEmptyObject(selector))
				{
					var selectedItems = {};
					if(this.multiple == 'Y')
					{
						for(var code in selector.itemsSelected)
						{
							if (!selector.itemsSelected.hasOwnProperty(code))
							{
								continue;
							}
							selectedItems[code] = selector.itemsSelected[code];
						}
					}
					selectedItems[this.listPrefix[valueEntityType] + '_' + value.entityInfo.id] = this.selectorEntityTypes[valueEntityType];

					BX.onCustomEvent("BX.Main.SelectorV2:reInitDialog", [ {
						selectorId: this.fieldUid,
						selectedItems: selectedItems
					} ]);
				}
			}

			if(this.externalRequestData[context]['url'])
			{
				var slider = BX.SidePanel.Instance.getSlider(this.externalRequestData[context]['url']);
				if (slider)
				{
					slider.destroy();
				}
			}

			delete this.externalRequestData[context];
		}
	};

	CrmEntitySelector.prototype.createPopup = function()
	{
		var popupItems = [];
		for(var k = 0; k < this.listEntityType.length; k++)
		{
			popupItems.push({
				text : BX.message('CRM_CES_CREATE_'+this.listEntityType[k].toUpperCase()),
				onclick : 'BX["'+this.jsObject+'"].performExternalRequest("'+this.listEntityType[k]+'");'
			});
		}
		if(!BX.PopupMenu.getMenuById(this.popupId))
		{
			var buttonRect = this.popupBindElement.getBoundingClientRect();
			this.popupObject = BX.PopupMenu.create(
				this.popupId,
				this.popupBindElement,
				popupItems,
				{
					closeByEsc : true,
					angle: true,
					offsetLeft: buttonRect.width/2
				}
			);
		}
		if(this.popupObject)
		{
			this.popupObject.popupWindow.show();
		}
	};

	CrmEntitySelector.prototype.setCurrentEntityType = function(currentEntityType)
	{
		this.currentEntityType = currentEntityType;
	};

	CrmEntitySelector.prototype.getCreateUrl = function()
	{
		if(this.listEntityCreateUrl.hasOwnProperty(this.currentEntityType)) 
		{
			return this.listEntityCreateUrl[this.currentEntityType];
		}
		else 
		{
			return '';
		}
	};

	CrmEntitySelector.prototype.setSelectedElement = function(itemInfo)
	{
		for (var k in this.listElement)
		{
			if (itemInfo.id === this.listElement[k].id)
			{
				this.listElement[k].selected = 'Y';
			}
		}
	};

	CrmEntitySelector.prototype.unsetSelectedElement = function(itemInfo)
	{
		for (var k in this.listElement)
		{
			if (itemInfo.id === this.listElement[k].id)
			{
				this.listElement[k].selected = 'N';
			}
		}
	};

	CrmEntitySelector.prototype.initWidgetEntitySelection = function()
	{
		BX.loadCSS('/bitrix/js/crm/css/crm.css');

		if(typeof(CRM) == 'undefined')
		{
			BX.loadScript('/bitrix/js/crm/crm.js', BX[''+this.jsObject+''].initWidgetEntitySelection());
			return;
		}

		CRM.Set(
			BX('crm-'+this.fieldUid+'-open'),
			this.fieldName,
			'',
			this.listElement,
			(this.usePrefix === 'Y'),
			(this.multiple === 'Y'),
			this.listEntityType,
			{
				'lead': BX.message('CRM_FF_LEAD'),
				'contact': BX.message('CRM_FF_CONTACT'),
				'company': BX.message('CRM_FF_COMPANY'),
				'deal': BX.message('CRM_FF_DEAL'),
				'quote': BX.message('CRM_FF_QUOTE'),
				'order': BX.message('CRM_FF_ORDER'),
				'ok': BX.message('CRM_FF_OK'),
				'cancel': BX.message('CRM_FF_CANCEL'),
				'close': BX.message('CRM_FF_CLOSE'),
				'wait': BX.message('CRM_FF_SEARCH'),
				'noresult': BX.message('CRM_FF_NO_RESULT'),
				'add': BX.message('CRM_FF_CHOISE'),
				'edit': BX.message('CRM_FF_CHANGE'),
				'search': BX.message('CRM_FF_SEARCH'),
				'last': BX.message('CRM_FF_LAST')
			}
		);
	};

	return CrmEntitySelector;
})();

Youez - 2016 - github.com/yon3zu
LinuXploit