diff --git a/entity/EmployeeToken_entity/EmployeeToken_entity.aod b/entity/EmployeeToken_entity/EmployeeToken_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..0303a7a0bc5d1bd5989b3bdc68d335f64e921ad4 --- /dev/null +++ b/entity/EmployeeToken_entity/EmployeeToken_entity.aod @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.17" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.17"> + <name>EmployeeToken_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>User token</title> + <titlePlural>User tokens</titlePlural> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityProvider> + <name>#PROVIDER_AGGREGATES</name> + <useAggregates v="true" /> + </entityProvider> + <entityField> + <name>ID</name> + <title>Token</title> + </entityField> + <entityField> + <name>VALID_STATUS_ICON</name> + <title>Valid</title> + <colorProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/valid_status_icon/colorProcess.js</colorProcess> + <contentType>IMAGE</contentType> + <mandatory v="false" /> + <displayValueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/valid_status_icon/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>VALID_TO</name> + <title>Valid to</title> + <contentType>DATE</contentType> + <mandatory v="false" /> + </entityField> + <entityField> + <name>GROUP_ID</name> + <title>Group</title> + <mandatory v="true" /> + <dropDownProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id/dropDownProcess.js</dropDownProcess> + <textInputAllowed v="true" /> + <stateProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>LOGIN_USER_ID</name> + <title>User</title> + <valueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/login_user_id/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>VALID_FROM</name> + <title>Valid from</title> + <contentType>DATE</contentType> + <mandatory v="false" /> + <valueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/valid_from/valueProcess.js</valueProcess> + </entityField> + <entityProvider> + <name>EmployeeTokenProvider</name> + <dependencies> + <entityDependency> + <name>08c3e88c-5119-477e-8374-3f89bbc4ded0</name> + <entityName>Employee_entity</entityName> + <fieldName>EmployeeTokens</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityParameter> + <name>employeeId_param</name> + <expose v="true" /> + </entityParameter> + <entityField> + <name>VALID</name> + <title>Valid</title> + <contentType>BOOLEAN</contentType> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/valid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>GROUP_ID_DISPLAY</name> + <title>Group</title> + <stateProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id_display/stateProcess.js</stateProcess> + <displayValueProcess>%aditoprj%/entity/EmployeeToken_entity/entityfields/group_id_display/displayValueProcess.js</displayValueProcess> + </entityField> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>_____SYSTEMALIAS</alias> + <conditionProcess>%aditoprj%/entity/EmployeeToken_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <linkInformation> + <linkInformation> + <name>98f70a7c-4e43-4984-ad69-44339150f1ee</name> + <tableName>ASYS_USERTOKEN</tableName> + <primaryKey>ID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>ID.value</name> + <recordfield>ASYS_USERTOKEN.ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>VALID_STATUS_ICON.value</name> + <recordfield>ASYS_USERTOKEN.VALID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>VALID_TO.value</name> + <recordfield>ASYS_USERTOKEN.VALID_TO</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>GROUP_ID.value</name> + <recordfield>ASYS_USERTOKEN.GROUP_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LOGIN_USER_ID.value</name> + <recordfield>ASYS_USERTOKEN.LOGIN_USER_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>VALID_FROM.value</name> + <recordfield>ASYS_USERTOKEN.VALID_FROM</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>VALID.value</name> + <recordfield>ASYS_USERTOKEN.VALID</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/EmployeeToken_entity/entityfields/group_id/displayValueProcess.js b/entity/EmployeeToken_entity/entityfields/group_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b8857b8ffd70bbb62ff1dce0e3eff18072071bc1 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(translate.text(vars.get("$this.value"))); diff --git a/entity/EmployeeToken_entity/entityfields/group_id/dropDownProcess.js b/entity/EmployeeToken_entity/entityfields/group_id/dropDownProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..623334e4f6e5cbcc5bfb6cd3b81bcd2c5e77c935 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id/dropDownProcess.js @@ -0,0 +1,16 @@ +import("system.vars"); +import("system.logging"); +import("system.translate"); +import("system.result"); + + +var rawElements = ["#login"]; + +var resultName = [[]]; + +for (var i = 0; i < rawElements.length; i++) +{​​​​​ + var translation = translate.text(rawElements[i]); + resultName[i] = [rawElements[i], translation]; +}​​​​​ +result.object(resultName); \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/group_id/stateProcess.js b/entity/EmployeeToken_entity/entityfields/group_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..95a51884cfd65c5baad3dfd7052b2eaa8d88c014 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id/stateProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); + +if (vars.get("$this.value") == "#rememberme") +{ + result.object(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/group_id/valueProcess.js b/entity/EmployeeToken_entity/entityfields/group_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0a5687a87183f89fa8fb0bc1eb973c624f8bf550 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id/valueProcess.js @@ -0,0 +1,12 @@ +import("system.translate"); +import("system.datetime"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string("#login"); +} + + \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/group_id_display/displayValueProcess.js b/entity/EmployeeToken_entity/entityfields/group_id_display/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..bcdae240e819ca56b8698b135a391247a52abf12 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id_display/displayValueProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("#rememberme")); diff --git a/entity/EmployeeToken_entity/entityfields/group_id_display/stateProcess.js b/entity/EmployeeToken_entity/entityfields/group_id_display/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3193715cde37ad50aa8d4e379ad0e1ef98d80919 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/group_id_display/stateProcess.js @@ -0,0 +1,13 @@ +import("system.translate"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +if (vars.get("$field.GROUP_ID") == "#rememberme") +{ + vars.set("$field.GROUP_ID_DISPLAY", translate.text("#rememberme")); + result.object(neon.COMPONENTSTATE_READONLY); + +} else { + result.object(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/login_user_id/valueProcess.js b/entity/EmployeeToken_entity/entityfields/login_user_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3559d3173e4aec628d202cba352b9d1dacd36ebb --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/login_user_id/valueProcess.js @@ -0,0 +1,9 @@ +import("system.util"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) // &&!vars.get("$this.value")) +{ + result.string(vars.get("$param.employeeId_param")); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/valid/valueProcess.js b/entity/EmployeeToken_entity/entityfields/valid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..365ab4d8ed55e67e2976d51f5f344c39b87fb03c --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/valid/valueProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string("1"); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/valid_from/valueProcess.js b/entity/EmployeeToken_entity/entityfields/valid_from/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0859e9d5c4e7d5b3df77c352c2aa455d1d0ff090 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/valid_from/valueProcess.js @@ -0,0 +1,9 @@ +import("system.datetime"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.object(datetime.date()); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/entityfields/valid_status_icon/colorProcess.js b/entity/EmployeeToken_entity/entityfields/valid_status_icon/colorProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..deb8250edaf71db8d987585811d8032aefac62f5 --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/valid_status_icon/colorProcess.js @@ -0,0 +1,13 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); + +if(vars.get("$field.VALID") == 1) +{ + result.string(neon.PRIORITY_LOW_COLOR); +} +else +{ + result.string(neon.PRIORITY_HIGH_COLOR); +} + diff --git a/entity/EmployeeToken_entity/entityfields/valid_status_icon/displayValueProcess.js b/entity/EmployeeToken_entity/entityfields/valid_status_icon/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..db3e32fd16f6d4023d039fcff0f6b950f0e517df --- /dev/null +++ b/entity/EmployeeToken_entity/entityfields/valid_status_icon/displayValueProcess.js @@ -0,0 +1,12 @@ +import("system.result"); +import("system.vars"); + +// Now show warning always, if any commrestriction exists. No matter which medium the current step has. +if (vars.get("$field.VALID") == 1) +{ + result.string("VAADIN:CHECK"); +} +else +{ + result.string("VAADIN:CLOSE"); +} \ No newline at end of file diff --git a/entity/EmployeeToken_entity/recordcontainers/db/conditionProcess.js b/entity/EmployeeToken_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1fdb9ffc999c069fc4cd2092f6ad030980580319 --- /dev/null +++ b/entity/EmployeeToken_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,23 @@ +import("system.db"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Employee_lib"); +import("Sql_lib"); + + +var userTitle = vars.get("$param.employeeId_param"); +if(userTitle) +{ + result.string(newWhere("ASYS_USERTOKEN.LOGIN_USER_ID", vars.get("$param.employeeId_param")).toString()); +//} else if (recordState != neon.OPERATINGSTATE_NEW && recordState != neon.OPERATINGSTATE_EDIT) { +// var condition = new SqlBuilder() +// .whereIfSet("STEPDATESTART_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID") +// .andIfSet("STEPDATEEND_TABLEALIAS.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID") +// ; +// +// result.string(condition.toString()); +//} else { +// +// result.string(newWhere().toString()); +} \ No newline at end of file diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod index 60ea8401f68c771715b123bb20d125584e78a98f..05094e443d3498bfbd58a3126756a7317a3383ee 100644 --- a/entity/Employee_entity/Employee_entity.aod +++ b/entity/Employee_entity/Employee_entity.aod @@ -4,6 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Employee_entity/documentation.adoc</documentation> <title>Employee</title> + <siblings /> <grantDeleteProcess>%aditoprj%/entity/Employee_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Employee_entity/contentTitleProcess.js</contentTitleProcess> <afterUiInit>%aditoprj%/entity/Employee_entity/afterUiInit.js</afterUiInit> @@ -394,6 +395,20 @@ <name>DepartmentAttrIdByEmployeeContactId_param</name> <expose v="true" /> </entityParameter> + <entityConsumer> + <name>EmployeeTokens</name> + <dependency> + <name>dependency</name> + <entityName>EmployeeToken_entity</entityName> + <fieldName>EmployeeTokenProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>employeeId_param</name> + <valueProcess>%aditoprj%/entity/Employee_entity/entityfields/employeetokens/children/employeeid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/Employee_entity/entityfields/employeetokens/children/employeeid_param/valueProcess.js b/entity/Employee_entity/entityfields/employeetokens/children/employeeid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..470eab86ed8cf58f3bffe0ee46e6b1f68163ac3f --- /dev/null +++ b/entity/Employee_entity/entityfields/employeetokens/children/employeeid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.TITLE")); diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index f2aba5d40f04df4be587f4dc4b73a2c1f7ceb8d8..832e590ff551fb05916692600795499878819ead 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -1327,6 +1327,10 @@ <key>Healthcare</key> <value>Gesundheitswesen</value> </entry> + <entry> + <key>Valid</key> + <value>Gültig</value> + </entry> <entry> <key>Valid from</key> <value>gültig ab</value> @@ -9662,6 +9666,14 @@ Bitte Datumseingabe prüfen</value> <key>Probability in %</key> <value>Wahrscheinlichkeit in %</value> </entry> + <entry> + <key>#rememberme</key> + <value>Angemeldet bleiben</value> + </entry> + <entry> + <key>#login</key> + <value>Login Token</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index b09cc03cdef4fcb4fc80771342b5320e6b3c4172..d8a0023073e508d26a384e8c908b04839c9ba13e 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -204,6 +204,10 @@ <entry> <key>Developer</key> </entry> + <entry> + <key>Valid</key> + <value>Valid</value> + </entry> <entry> <key>Valid until</key> </entry> @@ -7365,6 +7369,14 @@ <entry> <key>Probability in %</key> </entry> + <entry> + <key>#rememberme</key> + <value>Stay logged in</value> + </entry> + <entry> + <key>#login</key> + <value>Login token</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/EmployeeToken/EmployeeToken.aod b/neonContext/EmployeeToken/EmployeeToken.aod new file mode 100644 index 0000000000000000000000000000000000000000..61348f1c4bae1052b4a292c41da61cd4309f34ae --- /dev/null +++ b/neonContext/EmployeeToken/EmployeeToken.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>EmployeeToken</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterView>EmployeeTokenFilter_view</filterView> + <editView>EmployeeTokenEdit_view</editView> + <entity>EmployeeToken_entity</entity> + <references> + <neonViewReference> + <name>3ba4cdfb-ed9e-4bdf-bb03-4a9106ef67d6</name> + <view>EmployeeTokenEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>88ca4edd-e890-4052-b66a-ec277956853f</name> + <view>EmployeeTokenFilter_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonView/EmployeeMain_view/EmployeeMain_view.aod b/neonView/EmployeeMain_view/EmployeeMain_view.aod index f52e1c289cf5fed0abf7fa7768073a8d76e778fe..94d73c9fd2ed4bcec0c7792bdfd856e732d35ea0 100644 --- a/neonView/EmployeeMain_view/EmployeeMain_view.aod +++ b/neonView/EmployeeMain_view/EmployeeMain_view.aod @@ -34,5 +34,10 @@ <entityField>#ENTITY</entityField> <view>EmployeePermission_view</view> </neonViewReference> + <neonViewReference> + <name>6d6a2677-8be1-41a8-923a-030a72e370cd</name> + <entityField>EmployeeTokens</entityField> + <view>EmployeeTokenFilter_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod b/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..9a0bad8cead47190e646443b59d950cd3120f835 --- /dev/null +++ b/neonView/EmployeeTokenEdit_view/EmployeeTokenEdit_view.aod @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>EmployeeTokenEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>EditForm</name> + <editMode v="true" /> + <fields> + <entityFieldLink> + <name>516cda4b-3ea2-4631-ad90-cbaeb778830b</name> + <entityField>VALID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>08577880-9ef5-4c54-bf5f-599125407904</name> + <entityField>VALID_FROM</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b2e11525-ad9a-4efc-90ee-1bfd4d00a13c</name> + <entityField>VALID_TO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>82c4cfd3-8448-4758-af64-553a3d64ddf3</name> + <entityField>GROUP_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>542417a1-2ec7-472f-99fa-359d1e7d3ae3</name> + <entityField>GROUP_ID_DISPLAY</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod b/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..852a0eed7cce66f29cb3aeebab709d526a7898a7 --- /dev/null +++ b/neonView/EmployeeTokenFilter_view/EmployeeTokenFilter_view.aod @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>EmployeeTokenFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <tableViewTemplate> + <name>TokenTable</name> + <linkedColumns /> + <fixedFilterFields /> + <title>Token</title> + <columns> + <neonTableColumn> + <name>eee2b9fd-89c2-454c-a589-6b5b83e4f538</name> + <entityField>VALID_STATUS_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b89778da-071e-4a8c-8009-582d5cd31f1a</name> + <entityField>VALID_FROM</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7ae721f4-21d9-4b71-a414-abf1cd411c01</name> + <entityField>VALID_TO</entityField> + </neonTableColumn> + <neonTableColumn> + <name>c6e2c00a-368d-4f16-aef3-579876a236a5</name> + <entityField>GROUP_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e511fc55-3c97-4230-a816-38613e448376</name> + <entityField>ID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView>