- Модуль: 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 == '=BusinessValueTable::COMMON_PERSON_TYPE_ID?>')
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;
}
}
}