diff --git a/.liquibase/Data_alias/basic/2019.1.4/alter_appointmentlink.xml b/.liquibase/Data_alias/basic/2019.1.4/alter_appointmentlink.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a4afb48c041be2abca239dc5379cfee478cb6e14
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2019.1.4/alter_appointmentlink.xml
@@ -0,0 +1,21 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="a.schindlbeck" id="7d7de9e8-054a-49b0-986d-ae3a273aed39">
+        <!-- Need to drop table and create new on, because columntypes can't be altered -->
+        <dropTable tableName="AB_APPOINTMENTLINK"/>
+        <createTable tableName="AB_APPOINTMENTLINK">
+            <column name="AB_APPOINTMENTLINK_ID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_AB_APPOINTMENTLINK_AB_APPOINTMENTLINKID"/>
+            </column>
+            <column name="APPOINTMENT_ID" type="VARCHAR(512)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="OBJECT_TYPE" type="VARCHAR(63)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="OBJECT_ROWID" type="VARCHAR(512)">
+                <constraints nullable="false"/>
+            </column>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
index 4d84cd9089f31098e0c1443f095bb25b2869378c..93cad8dc3e6847dab22e05817b97b3579e7af27e 100644
--- a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
+++ b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml
@@ -161,7 +161,6 @@
     <include relativeToChangelogFile="true" file="DSGVO/init_dsgvoType_keyword.xml"/>    
     <include relativeToChangelogFile="true" file="DSGVO/init_deadline_keyword.xml"/>
     <include relativeToChangelogFile="true" file="DSGVO/init_transmission_keyword.xml"/>
-
     <include relativeToChangelogFile="true" file="AditoBasic/init_UnlinkedMail.xml"/>
 
     <include relativeToChangelogFile="true" file="Attributes/AB_ATTRIBUTE.xml"/>
@@ -175,7 +174,6 @@
     <include relativeToChangelogFile="true" file="Salesproject_Phase_icons.xml"/>
     
     <include relativeToChangelogFile="true" file="Salesprojectmilestone_add_parent.xml"/>
-    <include relativeToChangelogFile="true" file="Salesproject_Phase_LongNames.xml"/>
-    
     
+    <include relativeToChangelogFile="true" file="alter_appointmentlink.xml"/>
 </databaseChangeLog>
diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/struct/create_asys_notificationcontents.xml b/.liquibase/_____SYSTEMALIAS/basic/init/struct/create_asys_notificationcontents.xml
deleted file mode 100644
index 83818826decb7b62e72d42f34875cb823311b982..0000000000000000000000000000000000000000
--- a/.liquibase/_____SYSTEMALIAS/basic/init/struct/create_asys_notificationcontents.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.1" encoding="UTF-8" standalone="no"?>
-<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
-<changeSet author="a.schindlbeck" id="6b25f062-fb39-4230-9348-b67ec5ec45a1">
-    <createTable tableName="ASYS_NOTIFICATIONCONTENTS">
-        <column name="CONTENTID" type="CHAR(36)">
-            <constraints primaryKey="true" primaryKeyName="PK_ASYS_NOTIFICATIONCONTENTS_CONTENTID"/>
-        </column>
-        <column name="BACKPACK" type="CLOB"/>
-        <column name="CAPTION" type="VARCHAR(512)"/>
-        <column name="CREATIONDATE" type="BIGINT"/>
-        <column name="DESCRIPTION" type="VARCHAR(1023)"/>
-        <column name="FORCEDPRIORITY" type="INTEGER"/>
-        <column name="ICON_INFO" type="VARCHAR(1023)"/>
-        <column name="LIFETIME" type="BIGINT"/>
-        <column name="LINK_INFO" type="VARCHAR(1023)"/>
-        <column name="ORIGINATORNAME" type="VARCHAR(63)"/>
-        <column name="RECIPIENTUSERIDS" type="CLOB"/>
-        <column name="TYPECODE" type="VARCHAR(63)"/>
-        <column name="VERSION" type="INTEGER"/>
-    </createTable>
-</changeSet>
-</databaseChangeLog>
\ No newline at end of file
diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod
index 88d51bef0b4482bf21b00836aae6bd9acbaa3aea..fbd0525b72c0c8dbf23c393bd105aba34137ef1c 100644
--- a/entity/Appointment_entity/Appointment_entity.aod
+++ b/entity/Appointment_entity/Appointment_entity.aod
@@ -81,6 +81,7 @@
     </entityField>
     <entityActionGroup>
       <name>PartStatActionGroup</name>
+      <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/partstatactiongroup/stateProcess.js</stateProcess>
       <children>
         <entityActionField>
           <name>accept</name>
@@ -181,6 +182,7 @@
       <title>Delete recurring appointment</title>
       <onActionProcess>%aditoprj%/entity/Appointment_entity/entityfields/deleteseries/onActionProcess.js</onActionProcess>
       <iconId>VAADIN:TRASH</iconId>
+      <state>AUTO</state>
       <stateProcess>%aditoprj%/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js</stateProcess>
       <tooltip>series delete action</tooltip>
     </entityActionField>
diff --git a/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js b/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js
index 5b986b88043aff459755d7b43a75d9eff0c6bcb0..f4c74851bc407a263811db26812e1ebfb750bbee 100644
--- a/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js
+++ b/entity/Appointment_entity/entityfields/deleteseries/stateProcess.js
@@ -1,15 +1,23 @@
+import("system.logging");
 import("system.tools");
 import("system.vars");
 import("system.result");
 import("system.calendars");
 import("system.neon");
+import("system.text");
 
 
 var event = JSON.parse(vars.getString("$param.Entry_param"));
 
-if(event != undefined && event != "") //event not empty
-    if(event[calendars.RECURRENCEID] != undefined && event[calendars.RECURRENCEID] != "") //event recurring appointment
-        if(event[calendars.ORGANIZER] == tools.getCurrentUser()["title"]) //user == organizer
-            result.object(neon.COMPONENTSTATE_EDITABLE);
+if(event) //event not empty
+{
+    var ownerCn = event[calendars.USER2]["cn"];
+    var currentUserTitle = vars.getString("$sys.user");
+    
+    if(event[calendars.RECURRENCEID] && ownerCn == currentUserTitle) //serientermin und currentUser der TerminOwner
+            result.object(neon.COMPONENTSTATE_AUTO);
         else
-            result.object(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
+            result.object(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+    result.object(neon.COMPONENTSTATE_AUTO);
\ No newline at end of file
diff --git a/entity/Appointment_entity/entityfields/partstatactiongroup/stateProcess.js b/entity/Appointment_entity/entityfields/partstatactiongroup/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..015a529d23da92bac57d9bcfb999a727bd59b0b2
--- /dev/null
+++ b/entity/Appointment_entity/entityfields/partstatactiongroup/stateProcess.js
@@ -0,0 +1,23 @@
+import("system.calendars");
+import("system.logging");
+import("system.result");
+import("system.vars");
+import("system.tools");
+import("system.neon");
+
+if(vars.getString("$param.Entry_param"))
+{
+    var event = JSON.parse(vars.getString("$param.Entry_param"));
+    
+    var ownerCn = event[calendars.USER2]["cn"];
+    var currentUserTitle = vars.getString("$sys.user");
+    
+    if(!(event[calendars.ORGANIZER] == currentUserTitle) && currentUserTitle == ownerCn)
+        result.object(neon.COMPONENTSTATE_AUTO);
+    else
+        result.object(neon.COMPONENTSTATE_INVISIBLE);
+}
+else
+{
+    result.object(neon.COMPONENTSTATE_AUTO);
+}
\ No newline at end of file
diff --git a/neonView/DocumentFilter_view/DocumentFilter_view.aod b/neonView/DocumentFilter_view/DocumentFilter_view.aod
index b32a54d029edd7df54e4ee9ab4b3319b688f756f..b8e880df87c4a780eff737be96013366c4c1921f 100644
--- a/neonView/DocumentFilter_view/DocumentFilter_view.aod
+++ b/neonView/DocumentFilter_view/DocumentFilter_view.aod
@@ -12,6 +12,10 @@
     <tableViewTemplate>
       <name>Documents</name>
       <favoriteActionGroup1>Document_actions</favoriteActionGroup1>
+      <iconField>PREVIEW_IMAGE</iconField>
+      <titleField>NAME</titleField>
+      <subtitleField>TYPE</subtitleField>
+      <descriptionField>SIZE</descriptionField>
       <entityField>#ENTITY</entityField>
       <columns>
         <neonTableColumn>