Newer
Older

Benjamin Ulrich
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import("ClassificationComplexIndicatorRegistry_basic");
import("ClassificationIndicatorFieldRegistry_basic");
import("Attribute_lib");
import("Classification_lib");
import("system.neon");
import("system.vars");
//We have different fieldTypes and indicatorTypes, depending on the field.
//So we have to determine the correct ones everytime the field changes.
if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") && vars.get("$field.OBJECT_TYPE"))
{
var field = vars.get("$this.value");
var objectType = vars.get("$field.OBJECT_TYPE");
//helper function to check if the pString is included in pArray
function _checkIfInArrays(pArray, pString)
{
var inArray = false;
inArray = pArray.some(function (attr){
if (attr.includes(pString))
{
return true;
}
else
{
return false;
}
});
return inArray;
}
//helper function to check if the pString is included in pArray
function _checkIfInAttributeArray (pArray, pString)
{
for (var i = 0; i < pArray.length; i++)
{
if (pArray[i]["name"] == pString)
{
return {"inArray": true
, "attributeArrayAtPosition": pArray[i]};
}
}
return {"inArray": false
, "attributeArrayAtPosition": null};
}
var position;
var attributeArray;
if (_checkIfInArrays($ClassificationIndicatorRegistry.getEntityNumberFields(objectType), field))
{
neon.setFieldValues({
"$field.FIELDTYPE": $ClassificationFieldTypes.NUMBER(),
"$field.INDICATORTYPE": $ClassificationIndicatorTypes.ENTITYFIELD()
});
}
else if (_checkIfInArrays($ClassificationIndicatorRegistry.getEntityDropDownFields(objectType), field))
{
neon.setFieldValues({
"$field.FIELDTYPE": $ClassificationFieldTypes.DROPDOWN(),
"$field.INDICATORTYPE": $ClassificationIndicatorTypes.ENTITYFIELD()
});
}
else if (_checkIfInAttributeArray(ClassificationUtils.getEntityAttributes(objectType), field)["inArray"])
{
let arrayAtPosition = _checkIfInAttributeArray(ClassificationUtils.getEntityAttributes(objectType), field)["attributeArrayAtPosition"];
neon.setFieldValue("$field.INDICATORTYPE", $ClassificationIndicatorTypes.ATTRIBUTE());
if ((arrayAtPosition["contentType"] == AttributeTypes.TEXT() && arrayAtPosition["hasDropDownValues"] === true)
|| attributeArray[position]["contentType"] == AttributeTypes.BOOLEAN()
|| attributeArray[position]["contentType"] == AttributeTypes.COMBO()
|| attributeArray[position]["contentType"] == AttributeTypes.KEYWORD())
{
neon.setFieldValue("$field.FIELDTYPE", $ClassificationFieldTypes.DROPDOWN());
}
else if (arrayAtPosition["contentType"] == AttributeTypes.NUMBER())
{
neon.setFieldValue("$field.FIELDTYPE", $ClassificationFieldTypes.NUMBER());
}
else if (arrayAtPosition["contentType"] == AttributeTypes.INTEGER())
{
neon.setFieldValue("$field.FIELDTYPE", $ClassificationFieldTypes.INTEGER());
}
}
else if (_checkIfInArrays(ClassificationComplexIndicatorRegistryUtils.getComplexIndicatorArray(objectType), field))
{
neon.setFieldValues({
"$field.FIELDTYPE": $ClassificationComplexIndicatorRegistry[field]()["type"],
"$field.INDICATORTYPE": $ClassificationIndicatorTypes.COMPLEX()
});
}
}