• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/businessvalue.php
  • Класс: BitrixSaleHelpersAdminBusinessValueControl
  • Вызов: BusinessValueControl::bizvalToggleDelete
function bizvalToggleDelete(deleteElement)
		{
			'use strict';

			var path = deleteElement.name.split('[');

			if (! (path.length == 6
				&& path[1] == 'MAP]'
				&& path[5] == 'DELETE]'
			)) return;

			// [  0  ][ 1 ][ 2 ][ 3 ][4][    5         ]
			// mBizVal[MAP][1CC][ZIP][2][PROVIDER_VALUE]

			var elements = deleteElement.parentNode.parentNode.parentNode.querySelectorAll('input, select, textarea'), // TODO
				i = 0, length = elements.length,
				personTypeId = path[4].slice(0, -1);

			if (personTypeId == '')
				personTypeId = '';

			for (; i < length; ++i)
			{
				var keyElement = elements[i],
					p = keyElement.name.split('[');

				if (p.length == 6
					&& p[0] == path[0] && p[1] == path[1] && p[2] == path[2] && p[3] == path[3] && p[4] == path[4]
					&& p[5] == 'PROVIDER_KEY]')
				{
					// note that, data-default.., must be set since checkbox only visible with default mapping!

					var valueElement, key, val;

					if (deleteElement.checked)
					{
						key = deleteElement.getAttribute('data-default-key');
						val = deleteElement.getAttribute('data-default-value');
					}
					else
					{
						key = deleteElement.hasAttribute('data-initial-key')
							? deleteElement.getAttribute('data-initial-key')
							: deleteElement.getAttribute('data-default-key');
						val = deleteElement.hasAttribute('data-initial-value')
							? deleteElement.getAttribute('data-initial-value')
							: deleteElement.getAttribute('data-default-value');
					}

					if (keyElement.value == 'INPUT')
					{
						valueElement = keyElement.parentNode.nextSibling.firstChild;

						if (valueElement.type == 'hidden') // checkbox
						{
							valueElement = valueElement.nextSibling;
							valueElement.checked = val;
						}
						else
						{
							valueElement.value = val;
						}
					}
					else
					{
						keyElement.value = key;
						valueElement = bizvalChangeProvider(keyElement, personTypeId, true);
						valueElement.value = val;
					}

					keyElement.disabled = deleteElement.checked;

					var parentElement = valueElement.parentNode;
					var tagList = ['input', 'select', 'textarea'];
					for (var tagIndex in tagList)
					{
						if (tagList.hasOwnProperty(tagIndex))
						{
							var inputs = BX.findChildren(parentElement, {tag : tagList[tagIndex]}, true);
							for (var k in inputs)
							{
								if (inputs.hasOwnProperty(k))
								{
									if (inputs[k].type != 'button')
										inputs[k].disabled = deleteElement.checked;
								}
							}
						}
					}

					if (! personTypeId)
						bizvalChangeValue(valueElement);

					break;
				}
			}
		}