let listPropertyAll
function openAddPropertyNew() {
pageselect('device-add-field-new-page');
createSelectNewProperty(listPropertyAll);
resetFormNew();
}
function createSelectNewProperty(propertyAllList) {
let select = $('.selectNewProperty');
select.empty();
propertyAllList.forEach((item, index, array) => {
if (!DevPropTableNew.columns(0).data()[0].find(elm => elm.devicePropertyKey === item.devicePropertyKey)) select.append(new Option(item.devicePropertyDescription, item.devicePropertyKey));
});
select.append(new Option("ПОЛЬЗОВАТЕЛЬСКОЕ ПОЛЕ", ""));
}
function getAllProperty(className) {
$.ajax({
type: 'GET',
contentType: 'application/json',
url: '/api/refs/device/properties?className=' + className
})
.done((data, textStatus, jqXHR) => { })
.fail((jqXHR, textStatus, errorThrown) => {
console.log("ERROR : ", jqXHR.responseText);
})
.always((data) => {
console.log("***", data);
listPropertyAll = data;
})
}
function resetFormNew() {
$("#input11").val('');
$("#input21").val('');
$('#input11').prop('disabled', false);
$(".selectNewProperty option").last().prop('selected',true);
$('#input21').parent().find('.addProperty').remove();
$('#input21').show();
}
function saveDevicePropertyFieldNew() {
let keyField = document.getElementById("input11").value;
let valueField = document.getElementById("input21").value;
let descriptionField = $(".selectNewProperty option:selected").text();
let item = listPropertyAll.find((item, index, arr)=>{return item.devicePropertyKey === keyField;})
let typeFiled = "string"
let enumsField = ''
if (item) {
typeFiled = item.devicePropertyType;
enumsField = item.devicePropertyEnums;
}
DevPropTableNew.row.add( {
"devicePropertyKey": keyField,
"devicePropertyValue": valueField,
"devicePropertyDescription": descriptionField,
"devicePropertyType": typeFiled,
"devicePropertyEnums": enumsField
} ).draw();
customHistory.back();
}
function changeSelectNewProperty(data) {
let value = data.value;
$('#input11').val(data.value);
$('#input21').parent().find('.addProperty').remove();
$('#input21').show();
$('#input21').val('');
if (value === '' || value === 'events.USER_EVENT_') $('#input11').prop('disabled', false);
else $('#input11').prop('disabled', true);
let item = listPropertyAll.find((item, index, arr)=>{return item.devicePropertyKey === value;})
if (item) {
$('#input21').val(item.devicePropertyValue);
$('#input21').hide()
let dropDownList = $('');
if (item.devicePropertyType === "boolean") {
$('', {'value': 'true', 'text': 'TRUE'}).appendTo(dropDownList);
$('', {'value': 'false', 'text': 'FALSE'}).appendTo(dropDownList);
dropDownList.val(item.devicePropertyValue);
$('#input21').parent().append(dropDownList);
}
else if (item.devicePropertyType === "enum") {
let arr = item.devicePropertyEnums.split(',');
for (let i = 0; i < arr.length; i++) {
$('', {'value': arr[i], 'text': arr[i]}).appendTo(dropDownList);
}
dropDownList.val(item.devicePropertyValue);
$('#input21').parent().append(dropDownList);
}
else if (item.devicePropertyType === "date") {
let elm = $(``)
$('#input21').parent().append(elm);
}
else {
$('#input21').parent().find('.addProperty').remove();
$('#input21').show();
}
}
}