diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index 7d24b524c3c2ee7e77fdc2a840236238bf8887c1..a6d7ef279293bbd90ea240b4fc5358f59e057f8a 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -30,6 +30,7 @@ <icon>VAADIN:CONTROLLER</icon> <node name="Group3" kind="123" title=""> <node name="Attribute_context" kind="10077" /> + <node name="Keyword_context" kind="10077" /> <node name="INTERNAL_ADMINISTRATOR" kind="159" /> </node> </node> diff --git a/entity/Keyword_entity/Keyword_entity.aod b/entity/Keyword_entity/Keyword_entity.aod index 54279835d5f24db04386921eb6504258a643a5e1..4d093b1cd29c03f61d62e3edfaf16ad8e3bd265b 100644 --- a/entity/Keyword_entity/Keyword_entity.aod +++ b/entity/Keyword_entity/Keyword_entity.aod @@ -4,7 +4,9 @@ <title>Keyword</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Keyword_entity/documentation.adoc</documentation> + <onValidation>%aditoprj%/entity/Keyword_entity/onValidation.js</onValidation> <iconId>VAADIN:KEY</iconId> + <iconIdProcess>%aditoprj%/entity/Keyword_entity/iconIdProcess.js</iconIdProcess> <titleProcess>%aditoprj%/entity/Keyword_entity/titleProcess.js</titleProcess> <recordContainer>db</recordContainer> <entityFields> @@ -15,7 +17,10 @@ </entityProvider> <entityField> <name>CONTAINER</name> + <documentation>%aditoprj%/entity/Keyword_entity/entityfields/container/documentation.adoc</documentation> <title>Container</title> + <mandatory v="true" /> + <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js</possibleItemsProcess> <groupable v="true" /> </entityField> <entityField> @@ -41,26 +46,34 @@ <entityField> <name>KEYID</name> <title>Key</title> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/keyid/valueProcess.js</valueProcess> </entityField> <entityField> <name>TITLE</name> <title>Title (original language)</title> + <mandatory v="true" /> </entityField> <entityField> <name>SORTING</name> + <documentation>%aditoprj%/entity/Keyword_entity/entityfields/sorting/documentation.adoc</documentation> <title>Sorting</title> + <state>READONLY</state> </entityField> <entityField> <name>ISACTIVE</name> <title>Active</title> <contentType>BOOLEAN</contentType> <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/isactive/possibleItemsProcess.js</possibleItemsProcess> + <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/isactive/valueProcess.js</valueProcess> </entityField> <entityField> <name>ISESSENTIAL</name> + <documentation>%aditoprj%/entity/Keyword_entity/entityfields/isessential/documentation.adoc</documentation> <title>Essential</title> <contentType>BOOLEAN</contentType> <possibleItemsProcess>%aditoprj%/entity/Keyword_entity/entityfields/isessential/possibleItemsProcess.js</possibleItemsProcess> + <state>READONLY</state> </entityField> <entityParameter> <name>containerName_param</name> @@ -86,17 +99,33 @@ <isConsumer v="false" /> </entityDependency> </dependencies> + <children> + <entityParameter> + <name>onlyActives</name> + <code>%aditoprj%/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js</code> + <expose v="true" /> + </entityParameter> + </children> </entityProvider> <entityField> <name>TITLE_TRANSLATED</name> <valueProcess>%aditoprj%/entity/Keyword_entity/entityfields/title_translated/valueProcess.js</valueProcess> </entityField> + <entityParameter> + <name>onlyActives</name> + <code>%aditoprj%/entity/Keyword_entity/entityfields/onlyactives/code.js</code> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> <alias>Data_alias</alias> <conditionProcess>%aditoprj%/entity/Keyword_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <onDBUpdate>%aditoprj%/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> <linkInformation> <linkInformation> <name>52acbfe0-57f4-4614-83af-9882e168f431</name> diff --git a/entity/Keyword_entity/documentation.adoc b/entity/Keyword_entity/documentation.adoc index bd1db753b161e22c51377479812d1132ecb9c2bc..85315315fa2f284f66f942747594cef62fb842b6 100644 --- a/entity/Keyword_entity/documentation.adoc +++ b/entity/Keyword_entity/documentation.adoc @@ -12,7 +12,7 @@ Glossary [glossary] Keyword Container:: - A keyword container is the element that keeps several entries of Keywords together. That could be for example something like "Contact-Status". + A keyword container is the element that keeps several entries of Keywords together. That could be for example something like "Contact-Status". Keep in mind that this done virtually and not in the actual way of storage. Keyword Entry:: A keyword entry is a specific child-element of a keyword container. For the upper example "Contact-Status" this could be "Active", "Inactive", etc. diff --git a/entity/Keyword_entity/entityfields/container/documentation.adoc b/entity/Keyword_entity/entityfields/container/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..b46aaac93ed420d5150d4d5202dc302a4898ca70 --- /dev/null +++ b/entity/Keyword_entity/entityfields/container/documentation.adoc @@ -0,0 +1 @@ + `CONTAINER` is the a name and used for grouping keyword-entries. This is was a keyword-container essentially is. \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js b/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6d8037350d9404a9d3fda57b4f842a83a9f00e6e --- /dev/null +++ b/entity/Keyword_entity/entityfields/container/possibleItemsProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.db"); + +//TODO: move into UEM +//first column is ID, second view value - which is the same because there is no ID for keyword-containers +result.object(db.table("select distinct AB_KEYWORD_ENTRY.CONTAINER, AB_KEYWORD_ENTRY.CONTAINER from AB_KEYWORD_ENTRY order by 1 asc")); \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js b/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js new file mode 100644 index 0000000000000000000000000000000000000000..0e7522714af4e73d87e977bb3e83b350461053b6 --- /dev/null +++ b/entity/Keyword_entity/entityfields/generic_dfi/children/onlyactives/code.js @@ -0,0 +1,2 @@ +import("system.result"); +result.string("true");//TODO: provider-code is not executed correct (did not receive the value from here) \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/isactive/valueProcess.js b/entity/Keyword_entity/entityfields/isactive/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..95f59e0c071d0c4ed575acf0ae642c6cfd37a2f5 --- /dev/null +++ b/entity/Keyword_entity/entityfields/isactive/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string("1"); \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/isessential/documentation.adoc b/entity/Keyword_entity/entityfields/isessential/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..a8ed78817f03465060f46e92b9b34162242dc34f --- /dev/null +++ b/entity/Keyword_entity/entityfields/isessential/documentation.adoc @@ -0,0 +1,7 @@ +Specifies if a keyword-entry is essential. An essential keyword-entry is protected an must not be deleted because the `KEYID` is used within JDito-Code and there is functionality behind that keyword-entry. + + +[NOTE] +==== +Therefore this field cannot be set (it's *READONLY*) - a `true`-value makes only sense if the developer decides to use it which is why he has to care that the field is marked as essential. +==== diff --git a/entity/Keyword_entity/entityfields/keyid/valueProcess.js b/entity/Keyword_entity/entityfields/keyid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7 --- /dev/null +++ b/entity/Keyword_entity/entityfields/keyid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/onlyactives/code.js b/entity/Keyword_entity/entityfields/onlyactives/code.js new file mode 100644 index 0000000000000000000000000000000000000000..3504e7637476a34d3ab50f5767f8a7b5dba25387 --- /dev/null +++ b/entity/Keyword_entity/entityfields/onlyactives/code.js @@ -0,0 +1,2 @@ +import("system.result"); +result.string("false"); \ No newline at end of file diff --git a/entity/Keyword_entity/entityfields/sorting/documentation.adoc b/entity/Keyword_entity/entityfields/sorting/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..d999d0a3d2509691a8f9c2d9830044cbd690218a --- /dev/null +++ b/entity/Keyword_entity/entityfields/sorting/documentation.adoc @@ -0,0 +1,6 @@ +Used for sorting keyword-entries within a keyword-container. + +[NOTE] +==== +Currently this cannot be set (it's *READONLY*) - the value is generated automatically. Reserved for future use. +==== diff --git a/entity/Keyword_entity/iconIdProcess.js b/entity/Keyword_entity/iconIdProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ef0457e780554daacf633e3381aff300f84e713c --- /dev/null +++ b/entity/Keyword_entity/iconIdProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); + +var container = vars.get("$field.CONTAINER"); + +if (container) + result.string("TEXT:" + container); \ No newline at end of file diff --git a/entity/Keyword_entity/onValidation.js b/entity/Keyword_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..ae813d018848dcb847a752c1eedb985090518c16 --- /dev/null +++ b/entity/Keyword_entity/onValidation.js @@ -0,0 +1,21 @@ +import("system.db"); +import("system.vars"); +import("system.text"); +import("system.neon"); +import("Sql_lib"); + +//TODO: this should no happen in onValidation; waiting for #1032668 +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var keyContainer = vars.get("$field.CONTAINER"); + if (keyContainer) + { + var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keyContainer); + var maskingHelper = new SqlMaskingUtils(); + var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2")); + newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) + if (isNaN(newCodeNumber)) + throw new TypeError();//TODO:add Message + neon.setFieldValue("$field.SORTING", ++newCodeNumber); + } +} \ No newline at end of file diff --git a/entity/Keyword_entity/recordcontainers/db/conditionProcess.js b/entity/Keyword_entity/recordcontainers/db/conditionProcess.js index b581f2d83f5fee8ecd01da407517d76b64a86dd2..7b0650f1d331e6ff462876ffdb803d67d58c9408 100644 --- a/entity/Keyword_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Keyword_entity/recordcontainers/db/conditionProcess.js @@ -1,10 +1,14 @@ +import("system.vars"); import("system.db"); import("system.result"); import("Sql_lib"); var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.containerName_param"); -if (!cond.isSet()) - throw new Error("keyword containerName has to be set");//at the moment throw an error since there is no list of "all keywords" -var condStr = db.translateCondition(cond.build()); +if (vars.get("$param.onlyActives") == "true") +{ + cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1"); +} + +var condStr = db.translateCondition(cond.build("1 = 1")); result.string(condStr); \ No newline at end of file diff --git a/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js b/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js new file mode 100644 index 0000000000000000000000000000000000000000..a1e6133b613a59c988a2abaf9c87f81d9139b08b --- /dev/null +++ b/entity/Keyword_entity/recordcontainers/db/onDBUpdate.js @@ -0,0 +1,29 @@ +import("system.logging"); +import("system.db"); +import("system.vars"); +import("system.text"); +import("system.neon"); +import("Sql_lib"); + +var changedFields = vars.get("$local.changed"); +//whenever the container is changed data that depends on the keyword-container has be "fixed" to keep consistency +//this could be information like Keyword-attributes or the sorting-position +//maybe it'd be better to lock KeywordContainer as read-only after creation +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && changedFields.indexOf("AB_KEYWORD_ENTRY.CONTAINER") > -1) +{ + var keyContainer = vars.get("$field.CONTAINER"); + if (keyContainer) + { + var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keyContainer); + var maskingHelper = new SqlMaskingUtils(); + var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_KEYWORD_ENTRY.SORTING") + " from AB_KEYWORD_ENTRY", "1 = 2")); + newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) + if (isNaN(newCodeNumber)) + throw new TypeError();//TODO:add Message + + var cols = ["SORTING"]; + var vals = [++newCodeNumber]; + cond.clear().andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", vars.get("$sys.uid")); + db.updateData("AB_KEYWORD_ENTRY", cols, null, vals, cond.build("1 = 2")); + } +} \ No newline at end of file diff --git a/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js b/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b8dafebb3d124fac43eb1bf6d64037083dfae319 --- /dev/null +++ b/entity/Keyword_entity/recordcontainers/db/orderClauseProcess.js @@ -0,0 +1,7 @@ +import("system.db"); +import("system.result"); + +result.object({ + "AB_KEYWORD_ENTRY.CONTAINER": db.ASCENDING + ,"AB_KEYWORD_ENTRY.SORTING": db.ASCENDING +}); \ No newline at end of file diff --git a/entity/Task_entity/onValidation.js b/entity/Task_entity/onValidation.js index 9d163bb6d1dd266ac8be3fa38724bf65c8a58199..f0f501340bdc8a972b7ce9c32b2848a828ff198c 100644 --- a/entity/Task_entity/onValidation.js +++ b/entity/Task_entity/onValidation.js @@ -4,6 +4,7 @@ import("system.text"); import("system.neon"); import("Sql_lib"); +//TODO: this should no happen in onValidation; waiting for #1032668 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { var maskingHelper = new SqlMaskingUtils(); diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index a34ffa053914407b79b33cb9978930747b2d4dc4..ab1d0a6e88c3dcffb5830c165e60dbebbb9f9e41 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -783,9 +783,6 @@ <entry> <key>Dateigröße</key> </entry> - <entry> - <key>Member</key> - </entry> <entry> <key>A reason is only possible if a date is given.</key> </entry> @@ -1005,9 +1002,6 @@ <entry> <key>Social</key> </entry> - <entry> - <key>Dataset</key> - </entry> <entry> <key>Facebook Feed</key> </entry> @@ -1371,9 +1365,6 @@ <entry> <key>absagen</key> </entry> - <entry> - <key>asdfasdf</key> - </entry> <entry> <key>type</key> </entry> @@ -1488,9 +1479,6 @@ <entry> <key>${FORECAST_ENGLISH}</key> </entry> - <entry> - <key>${NUMBER}</key> - </entry> <entry> <key>Usage</key> </entry> @@ -1503,6 +1491,48 @@ <entry> <key>${ADDRESS_STATE}</key> </entry> + <entry> + <key>Title (original language)</key> + </entry> + <entry> + <key>Parent Attribute</key> + </entry> + <entry> + <key>Attribute Relation</key> + </entry> + <entry> + <key>Essential</key> + </entry> + <entry> + <key>Attribute Usage</key> + </entry> + <entry> + <key>Beziehung</key> + </entry> + <entry> + <key>Key</key> + </entry> + <entry> + <key>Attribute</key> + </entry> + <entry> + <key>Context</key> + </entry> + <entry> + <key>Container</key> + </entry> + <entry> + <key>Beziehungen</key> + </entry> + <entry> + <key>Administration</key> + </entry> + <entry> + <key>Keyword</key> + </entry> + <entry> + <key>Sorting</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> @@ -1510,7 +1540,7 @@ <name>Data_alias</name> <alias>Data_alias</alias> <statements> - <element></element> + <element>select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY</element> </statements> </languageSql> </sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 7a997ae430781dc8960f1bf131730b42e38d1192..69a1c029028b47d3e5f234f71de5e407da8a9018 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -122,10 +122,6 @@ <key>Online-Meeting</key> <value>Online-Meeting</value> </entry> - <entry> - <key>${NUMBER}</key> - <value>Zahl</value> - </entry> <entry> <key>Choose address</key> <value>Adresse auswählen</value> @@ -1160,10 +1156,6 @@ <key>Forecast</key> <value>Forecast</value> </entry> - <entry> - <key>Member</key> - <value>Teammitglied</value> - </entry> <entry> <key>A reason is only possible if a date is given.</key> <value>Begründung nur bei Ausgeschiedenen Mitbewerbern erlaubt.</value> @@ -1552,10 +1544,6 @@ <entry> <key>Social</key> </entry> - <entry> - <key>Dataset</key> - <value>Datensatz</value> - </entry> <entry> <key>Facebook Feed</key> </entry> @@ -1778,6 +1766,7 @@ </entry> <entry> <key>title</key> + <value>Titel</value> </entry> <entry> <key>von</key> @@ -1812,9 +1801,6 @@ <entry> <key>absagen</key> </entry> - <entry> - <key>asdfasdf</key> - </entry> <entry> <key>type</key> <value>Typ</value> @@ -1910,6 +1896,51 @@ <key>${FORECAST_ENGLISH}</key> <value>Forecast</value> </entry> + <entry> + <key>Title (original language)</key> + <value>Titel (ursprüngliche Sprache)</value> + </entry> + <entry> + <key>Parent Attribute</key> + </entry> + <entry> + <key>Attribute Relation</key> + </entry> + <entry> + <key>Essential</key> + <value>Essenziell</value> + </entry> + <entry> + <key>Attribute Usage</key> + </entry> + <entry> + <key>Beziehung</key> + </entry> + <entry> + <key>Key</key> + </entry> + <entry> + <key>Attribute</key> + </entry> + <entry> + <key>Context</key> + </entry> + <entry> + <key>Container</key> + </entry> + <entry> + <key>Beziehungen</key> + </entry> + <entry> + <key>Administration</key> + </entry> + <entry> + <key>Keyword</key> + </entry> + <entry> + <key>Sorting</key> + <value>Sortierung</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 ac6c84f0a0363fcb721a0f4afb2943753a502921..1c112c9978d82f432c69225a78f378a8105971af 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -797,9 +797,6 @@ <entry> <key>Dateigröße</key> </entry> - <entry> - <key>Member</key> - </entry> <entry> <key>A reason is only possible if a date is given.</key> </entry> @@ -1022,9 +1019,6 @@ <entry> <key>Social</key> </entry> - <entry> - <key>Dataset</key> - </entry> <entry> <key>Facebook Feed</key> </entry> @@ -1394,9 +1388,6 @@ <entry> <key>absagen</key> </entry> - <entry> - <key>asdfasdf</key> - </entry> <entry> <key>type</key> </entry> @@ -1518,10 +1509,6 @@ <key>${FORECAST_ENGLISH}</key> <value>Forecast</value> </entry> - <entry> - <key>${NUMBER}</key> - <value>Number</value> - </entry> <entry> <key>Usage</key> </entry> @@ -1534,6 +1521,48 @@ <entry> <key>${ADDRESS_STATE}</key> </entry> + <entry> + <key>Title (original language)</key> + </entry> + <entry> + <key>Parent Attribute</key> + </entry> + <entry> + <key>Attribute Relation</key> + </entry> + <entry> + <key>Essential</key> + </entry> + <entry> + <key>Attribute Usage</key> + </entry> + <entry> + <key>Beziehung</key> + </entry> + <entry> + <key>Key</key> + </entry> + <entry> + <key>Attribute</key> + </entry> + <entry> + <key>Context</key> + </entry> + <entry> + <key>Container</key> + </entry> + <entry> + <key>Beziehungen</key> + </entry> + <entry> + <key>Administration</key> + </entry> + <entry> + <key>Keyword</key> + </entry> + <entry> + <key>Sorting</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/Keyword_context/Keyword_context.aod b/neonContext/Keyword_context/Keyword_context.aod index f9ee88b7b1670b3d632a2f541cb3457fcb956a2d..916d515832119a1eee55ff2eb24806cbd75187e7 100644 --- a/neonContext/Keyword_context/Keyword_context.aod +++ b/neonContext/Keyword_context/Keyword_context.aod @@ -5,11 +5,21 @@ <description>&lt;null value&gt;</description> <majorModelMode>DISTRIBUTED</majorModelMode> <filterview>KeywordFilter_view</filterview> + <editview>KeywordEdit_view</editview> + <preview>KeywordPreview_view</preview> <entity>Keyword_entity</entity> <references> <neonViewReference> <name>75271eb0-8ddf-4b02-a943-01f589df1b20</name> <view>KeywordFilter_view</view> </neonViewReference> + <neonViewReference> + <name>e73f8fa3-3538-4af5-8116-84358b3254fa</name> + <view>KeywordEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>9bb352b9-5a8c-41ac-9c42-7f4f7f4827f3</name> + <view>KeywordPreview_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonView/KeywordEdit_view/KeywordEdit_view.aod b/neonView/KeywordEdit_view/KeywordEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..3275db9f41f66eda6375dc1c90da459abbcfe8f0 --- /dev/null +++ b/neonView/KeywordEdit_view/KeywordEdit_view.aod @@ -0,0 +1,31 @@ +<?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.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1"> + <name>KeywordEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>mainData</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>236c9d71-a619-47b5-b5a0-8d4e5bc45903</name> + <entityField>CONTAINER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f7f66b08-521c-46bf-b6e9-3c3f130648bc</name> + <entityField>TITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3fb4b999-853a-407e-b928-8f5e633c1dc5</name> + <entityField>ISACTIVE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/KeywordFilter_view/KeywordFilter_view.aod b/neonView/KeywordFilter_view/KeywordFilter_view.aod index 2d416b5a5fbc02eb22199dd35906dac66b0fa38d..c69a8a6af1adb1ba60271b77064ec3fbc12b87b5 100644 --- a/neonView/KeywordFilter_view/KeywordFilter_view.aod +++ b/neonView/KeywordFilter_view/KeywordFilter_view.aod @@ -2,17 +2,22 @@ <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1"> <name>KeywordFilter_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> <layout> - <boxLayout> + <groupLayout> <name>layout</name> - </boxLayout> + </groupLayout> </layout> <children> <tableViewTemplate> - <name>mainTable</name> + <name>table</name> <entityField>#ENTITY</entityField> <title></title> <columns> + <neonTableColumn> + <name>0e85b64c-6ce8-4221-8544-b8b5152a1292</name> + <entityField>#ICON</entityField> + </neonTableColumn> <neonTableColumn> <name>4dc50d75-d856-4fca-bd4d-d79eb3c8769f</name> <entityField>KEYID</entityField> @@ -31,5 +36,11 @@ </neonTableColumn> </columns> </tableViewTemplate> + <treetableViewTemplate> + <name>treeTable</name> + <titleField>TITLE</titleField> + <descriptionField>KEYID</descriptionField> + <entityField>#ENTITY</entityField> + </treetableViewTemplate> </children> </neonView> diff --git a/neonView/KeywordPreview_view/KeywordPreview_view.aod b/neonView/KeywordPreview_view/KeywordPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..0dc50a66f5d5af36af64cb1bee37f598c8b2832d --- /dev/null +++ b/neonView/KeywordPreview_view/KeywordPreview_view.aod @@ -0,0 +1,39 @@ +<?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.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1"> + <name>KeywordPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>card</name> + <titleField>TITLE</titleField> + <subtitleField>CONTAINER</subtitleField> + <descriptionField>KEYID</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>data</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <title></title> + <fields> + <entityFieldLink> + <name>8455ebce-3bc2-4b0c-8e80-ec3795202d0e</name> + <entityField>ISACTIVE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4b0bb3a6-5457-4eee-b0d8-6ec4b23c0aa7</name> + <entityField>ISESSENTIAL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>30d80ba1-235e-4b4a-9e9c-2b63f70f87b5</name> + <entityField>SORTING</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 88d620b126dc87ba2dd144e968f05d5fb4872ae4..787e301de578910b6aded79ae24c6ce331a261e3 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -384,7 +384,7 @@ SqlCondition.prototype._prepare = function(field, value, cond, fieldType) { SqlCondition.prototype.clear = function() { this._sqlStorage = ""; this.preparedValues = []; - return null; + return this; } /**