From f674c21eed4efc0fcc78228fd12336bda92d8bcb Mon Sep 17 00:00:00 2001
From: Sebastian Pongratz <s.pongratz@adito.de>
Date: Tue, 4 Aug 2020 08:09:37 +0000
Subject: [PATCH] =?UTF-8?q?#1057786=20=C3=A4nderungen=20notifications?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../basic/2020.1.1/Notification/changelog.xml |  6 ++
 .../Notification/init_NotificationType.xml    | 85 +++++++++++++++++++
 .../Notification/insert_NotificationState.xml | 15 ++++
 .../Data_alias/basic/2020.1.1/changelog.xml   |  1 +
 .../KeywordEntry_entity.aod                   |  6 ++
 .../Notification_entity.aod                   | 17 +++-
 .../children/setread/onActionProcess.js       |  9 ++
 .../entityfields/state/displayValueProcess.js | 24 +-----
 .../containername_param/valueProcess.js       |  3 +-
 .../typecode/displayValueProcess.js           | 28 +-----
 .../containername_param/valueProcess.js       |  5 ++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 57 +++++++------
 .../NotificationFilter_view.aod               |  5 +-
 process/KeywordData_lib/process.js            |  2 +-
 process/KeywordRegistry_basic/process.js      |  5 +-
 process/ctiServerEvents/process.js            |  2 +
 16 files changed, 192 insertions(+), 78 deletions(-)
 create mode 100644 .liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml
 create mode 100644 .liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml
 create mode 100644 .liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml
 create mode 100644 entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js

diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml
new file mode 100644
index 0000000000..1c9de62045
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml
@@ -0,0 +1,6 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+                   <include relativeToChangelogFile="true" file="init_NotificationType.xml"/>
+                   <include relativeToChangelogFile="true" file="insert_NotificationState.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml
new file mode 100644
index 0000000000..3d8f901c79
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml
@@ -0,0 +1,85 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="s.pongratz" id="b2894de0-4a19-4fcb-9412-0a5e91bfec80">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="f862f71e-9155-4e88-8158-170ddfa4dbf3"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_PHONECALL"/>
+            <column name="TITLE" value="Phonecall"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="19876b72-cd7d-4916-b853-22c4d9fe49c2"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_EMAIL"/>
+            <column name="TITLE" value="Email"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="16f9fbb5-9b8a-4908-babd-06c86032a22b"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_APPOINTMENT"/>
+            <column name="TITLE" value="Appointment"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="53458dba-80f5-427c-a44c-3fc8e74f3380"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_TODO"/>
+            <column name="TITLE" value="ToDo"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3d2393b3-ed13-44d6-9a6f-9280d84252cb"/>
+            <column name="KEYID" value="DownloadReady"/>
+            <column name="TITLE" value="download ready"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="09ce4611-3254-4590-958a-79178924188b"/>
+            <column name="KEYID" value="BulkMailSent"/>
+            <column name="TITLE" value="bulk mail sent"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="df47c6db-2a72-464a-b155-c4e33a4294ba"/>
+            <column name="KEYID" value="Leadimport_Notification"/>
+            <column name="TITLE" value="leadimport notification"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="6"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="58281d88-71a7-4fa7-8ef8-9289fc904697"/>
+            <column name="KEYID" value="WorkflowNotification"/>
+            <column name="TITLE" value="workflow notification"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="7"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml
new file mode 100644
index 0000000000..35501bf169
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml
@@ -0,0 +1,15 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="s.pongratz" id="b2894de0-4a19-4fcb-9412-0a5e91bfec80">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="daa6d8d8-fdc6-4fb2-9677-9ccc1f8a9b81"/>
+            <column name="KEYID" value="TODELETE"/>
+            <column name="TITLE" value="TODELETE"/>
+            <column name="CONTAINER" value="NotificationState"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/changelog.xml b/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
index f5686ce22c..7070cb88cf 100644
--- a/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
+++ b/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
@@ -2,4 +2,5 @@
 <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
     <include relativeToChangelogFile="true" file="AlterTablesToDatetime.xml"/>
+    <include relativeToChangelogFile="true" file="Notification/changelog.xml"/>
 </databaseChangeLog>
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 2d0edd64d5..33635f5756 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -583,6 +583,12 @@
           <fieldName>CategoryKeyword</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>644a6101-6b11-4998-bd8d-b799c6f376fa</name>
+          <entityName>Notification_entity</entityName>
+          <fieldName>TypeKeywords</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod
index a3dad29fd3..4f16a89da7 100644
--- a/entity/Notification_entity/Notification_entity.aod
+++ b/entity/Notification_entity/Notification_entity.aod
@@ -68,6 +68,7 @@
     <entityField>
       <name>TYPECODE</name>
       <title>Type</title>
+      <consumer>TypeKeywords</consumer>
       <groupable v="true" />
       <displayValueProcess>%aditoprj%/entity/Notification_entity/entityfields/typecode/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -103,7 +104,7 @@
           <title>set Read</title>
           <description></description>
           <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js</onActionProcess>
-          <isSelectionAction v="true" />
+          <isSelectionAction v="false" />
           <iconId>VAADIN:OPEN_BOOK</iconId>
           <tooltip></tooltip>
           <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/tooltipProcess.js</tooltipProcess>
@@ -158,6 +159,20 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>TypeKeywords</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
index 5ee955fd63..d9ff8a7c8f 100644
--- a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
+++ b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
@@ -1,11 +1,20 @@
+import("Sql_lib");
 import("system.vars");
 import("system.tools");
 import("system.notification");
 import("system.neon");
+import("KeywordRegistry_basic");
 
 var user = tools.getCurrentUser();
 var selectedNotifications = vars.get("$sys.selection");
 
+if (selectedNotifications.length == 0){
+    selectedNotifications = newSelect("ASYS_NOTIFICATIONS.ID")
+    .from("ASYS_NOTIFICATIONS")
+    .where("ASYS_NOTIFICATIONS.STATE", [notification.STATE_SEEN.toString(), notification.STATE_UNSEEN.toString()], SqlBuilder.IN())
+    .arrayColumn();
+}
+
 for(var i = 0; i < selectedNotifications.length; i++)
     notification.updateUserNotificationState(user["name"], selectedNotifications[i], notification.STATE_CONFIRMED);
 
diff --git a/entity/Notification_entity/entityfields/state/displayValueProcess.js b/entity/Notification_entity/entityfields/state/displayValueProcess.js
index fcd088324b..277c05aab1 100644
--- a/entity/Notification_entity/entityfields/state/displayValueProcess.js
+++ b/entity/Notification_entity/entityfields/state/displayValueProcess.js
@@ -1,24 +1,6 @@
-import("system.translate");
+import("Keyword_lib");
 import("system.result");
 import("system.vars");
+import("KeywordRegistry_basic");
 
-var value = vars.get("$field.STATE");
-
-switch(value)
-{
-    case "SEEN":
-        result.string(translate.text("Seen"));
-        break;
-    case "CONFIRMED":
-        result.string(translate.text("Confirmed"));
-        break;
-    case "TODELETE":
-        result.string(translate.text("To Delete"));
-        break;
-    case "ARCHIVE":
-        result.string(translate.text("Archive"));
-        break;
-    default:
-        result.string(translate.text("Unseen"));
-        break;
-}
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationState(), vars.get("$field.STATE")));
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
index a5407effb7..f39ea4075a 100644
--- a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
+++ b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
@@ -1,4 +1,5 @@
 import("system.result");
+import("KeywordRegistry_basic");
 
 
-result.string("NotificationState");
\ No newline at end of file
+result.string($KeywordRegistry.notificationState());
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
index 76e8d769dc..fcf893072c 100644
--- a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
+++ b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
@@ -1,28 +1,6 @@
+import("Keyword_lib");
 import("system.result");
-import("system.translate");
 import("system.vars");
+import("KeywordRegistry_basic");
 
-var PREFIX = "_____SYSTEM_";
-var typecode = vars.get("$field.TYPECODE");
-
-switch(typecode)
-{
-    case PREFIX + "NOTIFICATION_PHONECALL":
-        result.string(translate.text("Phonecall"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_EMAIL":
-        result.string(translate.text("Email"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_APPOINTMENT":
-        result.string(translate.text("Appointment"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_TODO":
-        result.string(translate.text("Todo"));
-        break;
-        
-    default: 
-        result.string(typecode);
-}
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationType(), vars.get("$field.TYPECODE")));
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000..8ccc4158b0
--- /dev/null
+++ b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+
+result.string($KeywordRegistry.notificationType());
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 04af5e1dd1..45bc63f8fe 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -8187,7 +8187,6 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Send email</key>
-      <value>E-Mail losschicken</value>
     </entry>
     <entry>
       <key>Activites</key>
@@ -8579,7 +8578,6 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Zip</key>
-      <value>PLZ</value>
     </entry>
     <entry>
       <key>type</key>
@@ -8736,63 +8734,68 @@ Bitte Datumseingabe prüfen</value>
       <value>gültig ab (in </value>
     </entry>
     <entry>
-      <key>No new recipients found that can be added to the bulk mail.</key>
-      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
+      <key>workflow notification</key>
+      <value>Workflow Benachrichtigung</value>
     </entry>
     <entry>
-      <key>Add Recipients</key>
-      <value>Empfänger hinzufügen</value>
+      <key>leadimport notification</key>
+      <value>Leadimport Benachrichtigung</value>
     </entry>
     <entry>
-      <key>Add Participants</key>
-      <value>Teilnehmer hinzufügen</value>
+      <key>bulk mail sent</key>
+      <value>Serienmail versendet</value>
     </entry>
     <entry>
-      <key>Download letter and create Activity</key>
-      <value>Brief herunterladen und Aktivität erstellen</value>
+      <key>download ready</key>
+      <value>Download bereit</value>
     </entry>
     <entry>
-      <key>and open Report</key>
-      <value>und Report öffnen</value>
+      <key>No new recipients found that can be added to the bulk mail.</key>
+      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>export</key>
+      <key>Permission received</key>
+      <value>erhaltene Berechtigung</value>
     </entry>
     <entry>
-      <key>export using the selected  template</key>
-      <value>Mit der ausgewählten Vorlage Exportieren</value>
+      <key>leadimport notification</key>
     </entry>
     <entry>
-      <key>No new recipients found that can be added to the serial letter.</key>
-      <value>Keine neuen Empfänger, die zum  Serienbrief werden können, gefunden.</value>
+      <key>granted permission</key>
+      <value>vergebene Berechtigung</value>
     </entry>
     <entry>
-      <key>send mail</key>
-      <value>E-Mail losschicken</value>
+      <key>bulk mail sent</key>
     </entry>
     <entry>
-      <key>Receive new Department Permission</key>
+      <key>download ready</key>
     </entry>
     <entry>
-      <key>Receive new User Permission</key>
+      <key>Receive new Department Permission</key>
+      <value>Neue Abteilungs-Berechtigung erhalten</value>
     </entry>
     <entry>
-      <key>workflow notification</key>
+      <key>Receive new User Permission</key>
+      <value>Neue Benutzer-Berechtigung erhalten</value>
     </entry>
     <entry>
-      <key>Permission received</key>
+      <key>export</key>
     </entry>
     <entry>
-      <key>leadimport notification</key>
+      <key>No new recipients found that can be added to the serial letter.</key>
+      <value>Keine neuen Empfänger, die zum  Serienbrief werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>granted permission</key>
+      <key>No new recipients found that can be added to the bulk mail.</key>
+      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>bulk mail sent</key>
+      <key>export using the selected  template</key>
+      <value>Mit der ausgewählten Vorlage Exportieren</value>
     </entry>
     <entry>
-      <key>download ready</key>
+      <key>send mail</key>
+      <value>E-Mail losschicken</value>
     </entry>
     <entry>
       <key>Download letter and create Activity</key>
diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod
index bb14afb0a2..65c5f94e79 100644
--- a/neonView/NotificationFilter_view/NotificationFilter_view.aod
+++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod
@@ -28,17 +28,18 @@
   <children>
     <timelineViewTemplate>
       <name>NotificationTimeline</name>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <dateField>CREATIONDATE</dateField>
       <titleField>CAPTION</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconIdField>ICON</iconIdField>
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>NotificationTable</name>
       <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <inlineEdit v="true" />
-      <entryAction>rowClickAction</entryAction>
       <iconField>ICON</iconField>
       <titleField>CAPTION</titleField>
       <subtitleField>RESOLVEDPRIORITY</subtitleField>
@@ -71,7 +72,9 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>NotificationTreeTable</name>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
       <columns>
         <neonTreeTableColumn>
           <name>c8799a54-569a-4667-9bdd-aa11a2f6e21e</name>
diff --git a/process/KeywordData_lib/process.js b/process/KeywordData_lib/process.js
index 9997efa529..a4fbd6bd4e 100644
--- a/process/KeywordData_lib/process.js
+++ b/process/KeywordData_lib/process.js
@@ -20,7 +20,7 @@ KeywordData.getSimpleData = function (pKeywordContainer, pLocale, pOnlyActives)
     var identifier = "KeywordSimpleData_" + pKeywordContainer + flags;
     var cache = new CachedData(identifier, true, pLocale);
     return cache.load(function (pTranslationNecessary, pLocale){
-        var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE")
+        var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE", "Data_alias")
                                     .from("AB_KEYWORD_ENTRY")
                                     .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
                                     .where("AB_KEYWORD_ENTRY.CONTAINER", pKeywordContainer);
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 2ae7c40b6e..b4d74a2a8f 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -286,4 +286,7 @@ $KeywordRegistry.visitRecommendationPrioSource = function(){return $KeywordRegis
 $KeywordRegistry.visitRecommendationPrioSource$visitFrequency = function(){return $KeywordRegistry._autoPad("VISITFREQUENCY");};
 $KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");};
 
-$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";};
\ No newline at end of file
+$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";};
+
+$KeywordRegistry.notificationState = function () { return "NotificationState";};
+$KeywordRegistry.notificationType = function () { return "NotificationType";};
diff --git a/process/ctiServerEvents/process.js b/process/ctiServerEvents/process.js
index ecb4f7e361..e0df2b323d 100644
--- a/process/ctiServerEvents/process.js
+++ b/process/ctiServerEvents/process.js
@@ -62,6 +62,8 @@ var ringingHandlerFn = function()
                 var affectedContext = this.contactsCall[0].PERSON_ID.trim() == "" ? "Organisation" : "Person";
                 notificationConfig.linkInfo(text.encodeMS([affectedContext, affectedContactId]));
             }
+            
+            notificationConfig.initialState(notification.STATE_CONFIRMED);
 
             
             notification.addNotificationWith(notificationConfig);
-- 
GitLab