KON-618 Architekturdoku
diff --git a/pom.xml b/pom.xml
index ed6c3d9..c4c715c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -250,8 +250,8 @@
 						<require>asciidoctor-diagram</require>
 					</requires>
 					<attributes>
-						<imagesoutdir>${project.build.directory}/generated-docs/img</imagesoutdir>
-						<imagesDir>${project.build.directory}/generated-docs/img</imagesDir>
+						<imagesoutdir>${project.build.directory}/generated-docs/images</imagesoutdir>
+						<imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
 					</attributes>
 				</configuration>
 				<executions>
@@ -263,7 +263,7 @@
 						</goals>
 						<configuration>
 							<skip>${skip.asciidoc}</skip>
-							<imagesDir>./img</imagesDir>
+							<imagesDir>./images</imagesDir>
 							<requires>
 								<require>asciidoctor-diagram</require>
 							</requires>
@@ -280,7 +280,7 @@
 						</goals>
 						<configuration>
 							<skip>${skip.asciidoc}</skip>
-							<imagesDir>${project.build.directory}/generated-docs/img</imagesDir>
+							<imagesDir>${project.build.directory}/generated-docs/images</imagesDir>
 							<requires>
 								<require>asciidoctor-diagram</require>
 							</requires>
diff --git a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
index 5fd44f1..bc00493 100644
--- a/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
+++ b/src/main/asciidoc/architectureDocumentation/architectureDocumentation.adoc
@@ -182,6 +182,10 @@
 a|
 ||Apache License 2.0|Backend
 
+|org.springframework.spring-boot-starter-data-ldap|2.2.1.RELEASE
+a|
+||Apache License 2.0|Backend
+
 |org.springframework.boot.spring-boot-starter-oauth2-client|2.2.1.RELEASE
 a|
 ||Apache License 2.0|Backend
@@ -692,12 +696,16 @@
 
 ==== Deployment of the frontend
 
-TODO:
+See "deploymentSetup.pdf"
 
 ==== Deployment of the backend
-TODO:
+
+See "deploymentSetup.pdf"
 
 ==== Deployment of the database
+
+See "deploymentSetup.pdf"
+
 The component "Flyway" is used to make to distribute structural
 or content related changes to the database.
 
@@ -709,7 +717,7 @@
 
 ===== DB based configuration
 
-TODO:
+See "deploymentSetup.pdf"
 
 
 ===== Configuration of the contact base data backend
@@ -721,33 +729,83 @@
 When starting the backend-service one has the possibility to specify
 the active profile.
 
-* *spring.datasource* configuration section for the database connection
-* *flyway.enabled* If enabled=true then the database migrations
+* *spring*:
+** *configuration*: Section for the database connection
+** *flyway*:
+*** *enabled*: (true or false) If enabled=true then the database migrations
       will be performed automatically when starting the application
       (this parameter should normally be set to "false")
-* *server.max-http-header-size* Maximum size for the http-headers
-* *jwt.tokenHeader* Name of the http-header which carries the authentication-token.
+** *ldap*:
+*** *base*: The base LDAP path
+*** *port*: The LDAP server port
+*** *username*: Admin user of your LDAP
+*** *password*: Admin password
+*** *urls*: The URL of the LDAP server should be in the format ldap://myserver.example.com:10389.
+For SSL access, use the ldaps protocol and the appropriate port, e.g. ldaps://myserver.example.com:636
+
+* *ldap-sync*:
+** *attribute-mapping*:
+*** [not changeable variable in contact base data modul]: [attribute field name in your LDAP to be mapped].
+Example: "fullname: cn"
+** *db-id-mapping*:
+*** *telephone-number-id*: the primary ID for "telephone number" row in table REF_COMMUNICATION_TYPE.
+(Default 1) If set to -1 ldapmapping is disable for "telephone number"
+*** *mail-id*: the primary ID for "mail" row in table REF_COMMUNICATION_TYPE.
+(Default 2) If set to -1 ldapmapping is disable for "telephone number"
+** *scheduling*:
+*** *enabled*: (true or false) Switches LDAP synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+
+* *authnauth-sync*:
+** *attribute-mapping*:
+*** *lastname*:  (true or false) Switches AuthNAuth synchronisation of field Lastname on/off
+*** *firstname*:  (true or false) Switches AuthNAuth synchronisation of field Firstname on/off
+** *scheduling*:
+*** *enabled*: (true or false) Switches AuthNAuth synchronisation on/off
+*** *cron-expression*: http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html[Cron Trigger Tutorial] +
+Spring Cron only takes 5 parameters not 6, the year is exlcuded! +
+Examples: '*/10 * * * * *' = every 10 seconds, '0 0 */3 ? * *' = every 3 hours, '0 0 0 * * ?' = every day at midnight.
+** *technical-username*: A technical user from the AuthNAuth modul doesn't have to be an admin
+** *technical-userpassword*: Technical user password
+
+* *server*:
+** *max-http-header-size*: Maximum size for the http-headers
+
+* *jwt*:
+** *tokenHeader*: Name of the http-header which carries the authentication-token.
       (should be "Authorization")
-* *jwt.useStaticJwt* If set to "true" then the backend will use *jwt.staticJwt*
+** *useStaticJwt*: If set to "true" then the backend will use *jwt.staticJwt*
       as Authorization-token. (This won't work for calls to other modules
       like the Auth'n'Auth-Modul, because the token will be out of date)
-* *authNAuthService.ribbon.listOfServers* Here one can configure the base
-     URL to the Auth'n'Auth-service
-* *ldap.enabled* If set to "true" the ldap functionality will be enabled
-* *ldap.scheduling.enabled* (true or false) switches the ldap synchronisation on/off
-* *ldap-sync.db-id-mapping.telephone-number-id* the primary ID for "telephone number" row in table REF_COMMUNICATION_TYPE.
-    (Default 1) If set to -1 ldapmapping is disable for "telephone number"
-* *ldap-sync.db-id-mapping.mail-id* the primary ID for "mail" row in table REF_COMMUNICATION_TYPE.
-    (Default 2) If set to -1 ldapmapping is disable for "telephone number"
+* *services*:
+** *authNAuth*:
+*** *name*: authNAuthService
+
+* *authNAuthService*:
+** *ribbon*:
+*** *listOfServers*: Here one can configure the base
+URL to the Auth'n'Auth-service Example: http://entopkon:8880
+
+* *feign*:
+** *client*:
+*** *config*:
+**** *default*:
+***** *connectTimeout*: (Default 60000) Connection timeout for the REST-Calls (in ms).
+***** *readTimeout*: (Default 60000) Read timeout for the REST-Calls (in ms).
+
+* *cors*:
+** *corsEnabled*: (true or false) Cross-Origin Resource Sharing on/off
 
 === CI- and CD-Components
 
 ==== GIT-Repository
 Backend:
-https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.backend.git/
+https://git.eclipse.org/c/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.backend.git/
 
 Frontend:
-https://git.eclipse.org/c/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.frontend.git/
+https://git.eclipse.org/c/openk-coremodules/org.eclipse.openk-coremodules.contactBaseData.frontend.git/
 
 === Continuous deployment
 
diff --git a/src/main/asciidoc/deployment/deploymentSetup.adoc b/src/main/asciidoc/deployment/deploymentSetup.adoc
new file mode 100644
index 0000000..02e1d75
--- /dev/null
+++ b/src/main/asciidoc/deployment/deploymentSetup.adoc
@@ -0,0 +1,202 @@
+////
+******************************************************************************
+* Copyright © 2017-2018 PTA GmbH.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+*
+*     http://www.eclipse.org/legal/epl-v10.html
+*
+******************************************************************************
+////
+= [ WIRD AUF KSM ANGEPASST NACH RÜCKSPRACHE IM Kontaktstammdaten: Sprint Review (26.02.2020) ] openKonsequenz - How to deploy the module "eLogbook@openK"
+:Author: Frank Dietrich, Simon Reis
+:Email: frank.dietrich@pta.de
+:Date: 2020-25-02
+:Revision: 2
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+<<<
+
+== Deployment
+
+The elogbook application consists of 3 parts regarding the deployment.
+
+. Frontend: "elogbookFE"-Directory
+. Backend: "elogbook.war"
+. Database: The scripts are found in the "db" folder within the backend sources.
+
+=== Deployment of the application components
+
+==== Deployment of the frontend
+
+The Frontend SPA is built as a folder, that contains all the required files for
+the application. If you have built the frontend yourself then the content of the "dist"-folder
+within the Frontend development-directory has to be copied into the target-directory of the apache-tomcat.
+If you got the Frontend delivered in form of a archive (elogbookFE.zip) put *its content* into the
+target-directory "elogbookFE" of the apache-tomcat:
+
+ <Apache-Tomcat>/webapps/elogbookFE
+
+If the target folder does not exist, it has to be created manually.
+
+==== Deployment of the backend
+The backend REST-services are built in form of a "WAR"-file (to be found
+in the "target"-directory of the MAVEN-directory structure or delivered to you).
+For deployment, this file has to be copied to the directory
+
+ <Apache-Tomcat>/webapps
+
+==== Deployment of the database
+Currently there is no automatic mechanism for distributing structural
+or content related changes to the database.
+DB related changes are deployed using database scripts directly in suitable
+DB management applications like *pgAdminIII* or directly in the *postgres-console*.
+These script can be found in the backend project in the directory
+
+ <elogbook backend project directory>/db/postgreSQL
+
+
+. If needed, create the Database and the access role "btbservice" with *"01_add_DB.sql"*
+. The script *"01a_drop_DB_1.0.0.sql"* is only needed for dropping all objects in the db!
+. Use the script *"02_create_DB_1.0.0.sql"* to create all database objects
+. You will probably need to modify the last script *"03_config_DB_1.0.0.sql"* before you run it. Configurate
+your branches, grid territories and your responsibilities here!
+
+TIP: If you want to install the system on an oracle dbms, please take the db scripts from
+the */db/oracle* subfolder.
+
+==== Configuration of the system
+
+===== DB based configuration
+
+. Grid territories - The grid-territories have to be configured in the DB-Table *ref_grid_territory*
+
+Please modify the "03_config_DB_*.sql" script (in "<elogbook backend project dir>\db\postgreSQL" ) to change the
+configuration. (This file is contained in the *oracle* folder as well.
+
+===== Configuration of the webserver
+
+There exists the file *context.xml* in the "conf" subdirectory (*<TOMCAT>/conf*) of the target apache tomcat installation.
+Add the following parameter and resource in order to access the correct backend configuration and to
+gain access to the database:
+
+.context.xml
+[source,xml]
+----
+[...]
+    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+
+    <!--Manager pathname=""/>
+
+    <Parameter name="environment" override="false" value="Development"/-->
+
+    <Parameter name="OK_ELOGBOOK_ENVIRONMENT" override="false" value="Production"/>
+
+    <Resource name="jdbc/okBetriebstagebuchDS"
+              auth="Container"
+              type="javax.sql.DataSource"
+              driverClassName="org.postgresql.Driver"
+              url="jdbc:postgresql://{dbserver}:5432/{dbname}"
+              username="{dbuser}"
+              password="{dbpassword}"/>
+
+
+    <!-- Uncomment this to enable Comet connection tacking (provides events
+         on session expiration as well as webapp lifecycle) -->
+[...]
+----
+
+For oracle please use...
+
+.contextOracle.xml
+[source,xml]
+----
+[...]
+    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+
+    <!--Manager pathname=""/>
+
+
+    <Parameter name="environment" override="false" value="Development"/-->
+
+    <!-- Parameter for different Backend configs  -->
+    <Parameter name="OK_ELOGBOOK_ENVIRONMENT" override="false" value="Production"/>
+
+    <Resource name="jdbc/okBetriebstagebuchDSO"
+              auth="Container"
+              type="javax.sql.DataSource"
+              driverClassName="oracle.jdbc.driver.OracleDriver"
+              url="jdbc:oracle:thin:@{orasvr}:1521:{dbname}"
+              username="{dbuser}"
+              password="{dbpassword}"/>
+
+
+    <!-- Uncomment this to enable Comet connection tacking (provides events
+         on session expiration as well as webapp lifecycle) -->
+[...]
+----
+
+*{dbserver}*, *{dbname}*, *{dbuser}* and *{dbpassword}* need to be replaced by the actual values.
+
+CAUTION: The postgres database drivers (postgresql-42.0.0.jar or ojdbc7_g.jar} referenced in the *context.xml* needs to be copied from the lib folder within the
+backend source files to the *<TOMCAT>/lib* folder of the target tomcat installation.
+
+(The jar is located in *deploy/lib/*)
+
+CAUTION: If you want to use an oracle db then you have to change
+the file backendConfigProduction: Set "activePersistencyUnit" to "betriebstagebuchORA".
+(see next chapter "Configuration of the backend").
+
+
+===== Configuration of the backend
+
+After the backend war file has been deployed and unpacked inside of the *<TOMCAT>/webapps* folder there are different
+ backend config files to be found in the folder *<TOMCAT>/webapps/elogbook/WEB-INF/classes*
+
+* backendConfigCustom.json
+* backendConfigDevLocal.json
+* backendConfigDevServer.json
+* backendConfigProduction.json
+
+The active configuration is chosen by parameter *OK_ELOGBOOK_ENVIRONMENT* (see context.xml above).
+Possible values are:
+
+* *Custom* (for backendConfigCustom.json)
+* *DevLocal* (for backendConfigDevLocal.json)
+* *DevServer* (for backendConfigDevServer.json)
+* *Production* (for backendConfigProduction.json)
+
+After choosing an environment the corresponding json file has to be configured:
+
+.backendConfigXXX.json
+[source,json]
+----
+{
+  "portalBaseURL" : "http://{hostname}:{port}/portal/rest/beservice",
+  "fileRowToRead": "9",
+  "importFilesFolderPath": "/home/btbservice/importFiles",
+  "activePersistencyUnit": "betriebstagebuch",
+  "applicationAccessRole": "elogbook-access"
+}
+----
+* *portalBaseURL* - The portal base url should point the the address where the portal backend (the *Auth&Auth*-Server)
+                    can be accessed. This is important for the authorization of the backend services.
+* *fileRowToRead* - Defines the line number inside the import-file of the relevant text line.
+* *importFilesFolderPath* - Defines the exchange directory for the import functionality
+* *activePersistencyUnit* - Defines the active part of the file persistenc.xml. Choose *"betriebstagebuchORA"* for the
+                    usage of OracleDB and *"betriebstagebuch"* to use PostgreSQL.
+* *applicationAccessRole* - Defines the role for which users are fetched (For the selection in shift-change-dialog).
+
+
+== Design Decisions
+
+All architecture decisions based on the Architecture Committee Handbook. There are no deviations.
+
+== Risks and Technical Debts
+
+(Currently there aren't any known issues)
+
+<<<
diff --git a/src/main/asciidoc/howto/howtoBuild.adoc b/src/main/asciidoc/howto/howtoBuild.adoc
new file mode 100644
index 0000000..c43f27f
--- /dev/null
+++ b/src/main/asciidoc/howto/howtoBuild.adoc
@@ -0,0 +1,91 @@
+= [ WIRD AUF KSM ANGEPASST NACH RÜCKSPRACHE IM Kontaktstammdaten: Sprint Review (26.02.2020) ] openKonsequenz - How to build the module "eLogbook@openK"
+:Date: 2017-11-17
+:Revision: 1
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+<<<
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+
+== Requirements
+* Apache Tomcat 8.0.30
+* Node.js 6.10.0
+* Angular-CLI
+* Graphviz
+
+== How to build the Backend
+To build the backend you need to have installed Apache Maven and Java (look at `/deploy/`*get_started.txt*).
+
+=== Install and Configure Apache Tomcat
+Tomcat is an open-source Java Servlet Container and provides a "pure Java" HTTP web server environment in which Java code can run.
+
+* Download Tomcat version 8.0.30 from https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.30/bin/
+and extract it (apache-tomcat-8-0-30.zip).
+* Place the extracted folder on your C drive.
+* Configure Tomcat:
+** Configure the *context.xml* file. Copy the *<Resource … >* block from the project file `deploy/conf/`*context.xml*
+and paste it in the `<tomcat>/conf/`*context.xml* in the *<Context>* block.
+** To run both backend projects (elogbook and portal) at the same time on Tomcat you have to
+ give him the parameters for different backend configs. Just paste the following line in the *context.xml* over the *<Resource … >*:
+
+ <Parameter name="OK_ELOGBOOK_ENVIRONMENT" override="false" value="DevLocal"/>
+
+** Dont forget to save it.
+
+
+TIP: For more informations check *Deployment View* Chapter in *http://87.128.212.254:8880/elogbookFE_ADoc/elogbook_architectureDocumentation.html[elogbook_architectureDocumentation]*.
+
+** Tomcat also needs the database driver to be placed in `<tomcat>/lib`. Find it in the project file `deploy/lib/`*postgresql-xxx.jar*.
+
+
+=== Install Graphviz
+Graphviz is open source graph visualization software. You need this software because of auto-generated graphics in the documentations.
+
+* Download and install Graphviz from http://www.graphviz.org/Download_windows.php
+* If not, set the PATH variable
+
+ Name of variable: GRAPHVIZ_DOT
+ Value of variable: <GRAPHVIZ_DIR>\bin\dot.exe
+
+
+== How to build the Frontend
+
+=== Install Node.js
+
+Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript (also Typescript which is a strongly typed form of JavaScript) code server-side.
+
+* Download Node.js 6.10.0 from https://nodejs.org/download/release/v6.10.0/ by clicking on a xxx.msi image for windows.
+* Run the downloaded Node.js .msi Installer - including accepting the license, selecting the destination, and authenticating for the install.
+This requires Administrator privileges, and you may need to authenticate
+* To ensure Node.js has been installed, run the following in your terminal - you should get something like v6.10.0
+
+[source,command]
+----
+    $ node -v
+----
+{blank}
+
+=== Update the npm Angular-CLI client
+This package manager comes bundled with Node.js and its good to have the latest version.
+
+* Open a command line and navigate to the root folder of the frontend project
+* Run the following commands (the version is defined in the package.json file):
+
+[source,command]
+----
+    $ npm install --save-dev @angular/cli
+----
+{blank}
+
+[source,command]
+----
+    $ npm install
+----
+{blank}
+
+TIP: Next Step -> Read the *elogbook_howtoRun* file!
+
+
+
diff --git a/src/main/asciidoc/howto/howtoRun.adoc b/src/main/asciidoc/howto/howtoRun.adoc
new file mode 100644
index 0000000..2c14dbd
--- /dev/null
+++ b/src/main/asciidoc/howto/howtoRun.adoc
@@ -0,0 +1,88 @@
+= [ WIRD AUF KSM ANGEPASST NACH RÜCKSPRACHE IM Kontaktstammdaten: Sprint Review (26.02.2020) ] openKonsequenz - How to run the module "eLogbook@openK"
+:Date: 2017-11-17
+:Revision: 1
+:icons:
+:source-highlighter: highlightjs
+:highlightjs-theme: solarized_dark
+
+<<<
+
+IMPORTANT: Please be sure that you have first *Portal (Auth n Auth)* installed and configured!
+
+== Requirements
+* Browser (Chrome or IE11 suggested)
+
+== Prerequisites
+
+* *To see this application running you have to run Portal application too.* The reason is the authentication, which happened in the Portal login phase.
+
+* A developing and administrating software for databases
+
+** To work with a postgreSQL database is pgAdmin suggested
+
+*** Download and install pgAdmin (version 3 is used during developing process) from:
+        https://www.pgadmin.org/download/
+*** Create a database and adapt the `<tomcat>/conf/`*context.xml* file to your database (look at *elogbook_howtoBuild*).
+
+*** To initialize the database schema run the sql scripts:
+
+ /db/postgreSQL/02_create_DB_1.0.0.sql
+ /db/postgreSQL/03_config_DB_1.0.0.sql
+
+
+TIP: For detailed instructions look at *http://87.128.212.254:8880/elogbookFE_ADoc/elogbook_architectureDocumentation.html[elogbook_architectureDocumentation]*
+
+== How to run the Backend
+To run the backend you need to have installed and configured Apache Tomcat (look at *elogbook_howtoBuild*).
+
+=== Set up and start Apache Tomcat
+Tomcat needs the Web Application Archive (war) file, which is produced by building the maven project, to run the application.
+
+* Copy the *betriebstagebuch.war* file from the project file `/target` in the `<tomcat>/webapps` file. If there is a folder named *betriebstagebuch*, delete it before.
+* Navigate to `C:\apache-tomcat-8.0.30\bin` and start Tomcat by clicking on *startup.bat*.
+* Tomcat's default port is *8080*.
+
+[source,text]
+----
+If 8080 port is already in use, you have to change tomcat's port as follows:
+- Go to <tomcat>/conf folder
+- Open server.xml file and search for "Connector port"
+- Replace "8080" by your port number (for example 8181)
+- Restart tomcat server (in the same folder which startup.bat is located, you can also find a shutdown.bat file).
+----
+{blank}
+
+IMPORTANT: If you change the part number you have also adapt the port in the
+frontend project: File "<PRJ_elogbookFE>/proxy.conf.json"
+
+TIP: Look at the *http://87.128.212.254:8880/elogbookFE_ADoc/elogbook_interfaceDocumentation.html[elogbook_interfaceDocumentation]* for informations about the services.
+
+== How to run the Frontend
+To run the frontend project you need to have installed and updated Node.js and npm Angular-CLI.
+
+=== Compile the Frontend
+
+To compile say Angular-CLI to start.
+
+* Open a command line and navigate to the root folder of the frontend project
+* Run the command
+
+[source,command]
+----
+   $  npm start
+----
+{blank}
+
+* Open a browser and type:
+
+[source,http]
+----
+    http://localhost:4200
+----
+{blank}
+
+IMPORTANT: The reason you maybe don´t see the application running properly, is that you have not even logged in.
+To do so, run first the Portal project, where you can log in and then open the elogbook.
+
+
+
diff --git a/src/main/asciidoc/img/abbrechen.png b/src/main/asciidoc/images/abbrechen.png
similarity index 100%
rename from src/main/asciidoc/img/abbrechen.png
rename to src/main/asciidoc/images/abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/img/abmelden.png b/src/main/asciidoc/images/abmelden.png
similarity index 100%
rename from src/main/asciidoc/img/abmelden.png
rename to src/main/asciidoc/images/abmelden.png
Binary files differ
diff --git a/src/main/asciidoc/img/admin-menue-symbol.png b/src/main/asciidoc/images/admin-menue-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/admin-menue-symbol.png
rename to src/main/asciidoc/images/admin-menue-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/img/adresse-anlegen.png b/src/main/asciidoc/images/adresse-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/adresse-anlegen.png
rename to src/main/asciidoc/images/adresse-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/adresseliste-gefuellt.png b/src/main/asciidoc/images/adresseliste-gefuellt.png
new file mode 100644
index 0000000..3ad145d
--- /dev/null
+++ b/src/main/asciidoc/images/adresseliste-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/img/adressliste-leer.png b/src/main/asciidoc/images/adressliste-leer.png
similarity index 100%
rename from src/main/asciidoc/img/adressliste-leer.png
rename to src/main/asciidoc/images/adressliste-leer.png
Binary files differ
diff --git a/src/main/asciidoc/img/adresstyp-anlegen.png b/src/main/asciidoc/images/adresstyp-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/adresstyp-anlegen.png
rename to src/main/asciidoc/images/adresstyp-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/adresstypen-uebersicht.png b/src/main/asciidoc/images/adresstypen-uebersicht.png
similarity index 100%
rename from src/main/asciidoc/img/adresstypen-uebersicht.png
rename to src/main/asciidoc/images/adresstypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/anpsrechpartner-leer.png b/src/main/asciidoc/images/anpsrechpartner-leer.png
similarity index 100%
rename from src/main/asciidoc/img/anpsrechpartner-leer.png
rename to src/main/asciidoc/images/anpsrechpartner-leer.png
Binary files differ
diff --git a/src/main/asciidoc/img/anrede-anlegen.png b/src/main/asciidoc/images/anrede-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/anrede-anlegen.png
rename to src/main/asciidoc/images/anrede-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/ansprechpartner-anlegen.png b/src/main/asciidoc/images/ansprechpartner-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/ansprechpartner-anlegen.png
rename to src/main/asciidoc/images/ansprechpartner-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/ansprechpartner-gefuellt.png b/src/main/asciidoc/images/ansprechpartner-gefuellt.png
similarity index 100%
rename from src/main/asciidoc/img/ansprechpartner-gefuellt.png
rename to src/main/asciidoc/images/ansprechpartner-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/img/auge-symbol.png b/src/main/asciidoc/images/auge-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/auge-symbol.png
rename to src/main/asciidoc/images/auge-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/auswahl-kontakt-anlegen.png b/src/main/asciidoc/images/auswahl-kontakt-anlegen.png
new file mode 100644
index 0000000..a427896
--- /dev/null
+++ b/src/main/asciidoc/images/auswahl-kontakt-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/auswahl-kontakttypen.png b/src/main/asciidoc/images/auswahl-kontakttypen.png
similarity index 100%
rename from src/main/asciidoc/img/auswahl-kontakttypen.png
rename to src/main/asciidoc/images/auswahl-kontakttypen.png
Binary files differ
diff --git a/src/main/asciidoc/img/auswahl-sortierung-2.png b/src/main/asciidoc/images/auswahl-sortierung-2.png
similarity index 100%
rename from src/main/asciidoc/img/auswahl-sortierung-2.png
rename to src/main/asciidoc/images/auswahl-sortierung-2.png
Binary files differ
diff --git a/src/main/asciidoc/img/auswahl-sortierung.png b/src/main/asciidoc/images/auswahl-sortierung.png
similarity index 100%
rename from src/main/asciidoc/img/auswahl-sortierung.png
rename to src/main/asciidoc/images/auswahl-sortierung.png
Binary files differ
diff --git a/src/main/asciidoc/img/beantragen.png b/src/main/asciidoc/images/beantragen.png
similarity index 100%
rename from src/main/asciidoc/img/beantragen.png
rename to src/main/asciidoc/images/beantragen.png
Binary files differ
diff --git a/src/main/asciidoc/img/button_tabelle_kalender.jpg b/src/main/asciidoc/images/button_tabelle_kalender.jpg
similarity index 100%
rename from src/main/asciidoc/img/button_tabelle_kalender.jpg
rename to src/main/asciidoc/images/button_tabelle_kalender.jpg
Binary files differ
diff --git a/src/main/asciidoc/img/dateien_hochladen.png b/src/main/asciidoc/images/dateien_hochladen.png
similarity index 100%
rename from src/main/asciidoc/img/dateien_hochladen.png
rename to src/main/asciidoc/images/dateien_hochladen.png
Binary files differ
diff --git a/src/main/asciidoc/img/dialog-nach-abbrechen.png b/src/main/asciidoc/images/dialog-nach-abbrechen.png
similarity index 100%
rename from src/main/asciidoc/img/dialog-nach-abbrechen.png
rename to src/main/asciidoc/images/dialog-nach-abbrechen.png
Binary files differ
diff --git a/src/main/asciidoc/img/einzelmassnahme-loeschen.png b/src/main/asciidoc/images/einzelmassnahme-loeschen.png
similarity index 100%
rename from src/main/asciidoc/img/einzelmassnahme-loeschen.png
rename to src/main/asciidoc/images/einzelmassnahme-loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/img/email-verteiler.png b/src/main/asciidoc/images/email-verteiler.png
similarity index 100%
rename from src/main/asciidoc/img/email-verteiler.png
rename to src/main/asciidoc/images/email-verteiler.png
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_datum_grau.png b/src/main/asciidoc/images/erinnerung_datum_grau.png
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_datum_grau.png
rename to src/main/asciidoc/images/erinnerung_datum_grau.png
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_datum_orange.png b/src/main/asciidoc/images/erinnerung_datum_orange.png
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_datum_orange.png
rename to src/main/asciidoc/images/erinnerung_datum_orange.png
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_datum_rot.jpg b/src/main/asciidoc/images/erinnerung_datum_rot.jpg
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_datum_rot.jpg
rename to src/main/asciidoc/images/erinnerung_datum_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_glocke_grau.png b/src/main/asciidoc/images/erinnerung_glocke_grau.png
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_glocke_grau.png
rename to src/main/asciidoc/images/erinnerung_glocke_grau.png
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_glocke_orange.png b/src/main/asciidoc/images/erinnerung_glocke_orange.png
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_glocke_orange.png
rename to src/main/asciidoc/images/erinnerung_glocke_orange.png
Binary files differ
diff --git a/src/main/asciidoc/img/erinnerung_glocke_rot.jpg b/src/main/asciidoc/images/erinnerung_glocke_rot.jpg
similarity index 100%
rename from src/main/asciidoc/img/erinnerung_glocke_rot.jpg
rename to src/main/asciidoc/images/erinnerung_glocke_rot.jpg
Binary files differ
diff --git a/src/main/asciidoc/img/externe-person-1.png b/src/main/asciidoc/images/externe-person-1.png
similarity index 100%
rename from src/main/asciidoc/img/externe-person-1.png
rename to src/main/asciidoc/images/externe-person-1.png
Binary files differ
diff --git a/src/main/asciidoc/img/filter_speichern.png b/src/main/asciidoc/images/filter_speichern.png
similarity index 100%
rename from src/main/asciidoc/img/filter_speichern.png
rename to src/main/asciidoc/images/filter_speichern.png
Binary files differ
diff --git a/src/main/asciidoc/img/haus-symbol.png b/src/main/asciidoc/images/haus-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/haus-symbol.png
rename to src/main/asciidoc/images/haus-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/img/icons/caution.png b/src/main/asciidoc/images/icons/caution.png
similarity index 100%
rename from src/main/asciidoc/img/icons/caution.png
rename to src/main/asciidoc/images/icons/caution.png
Binary files differ
diff --git a/src/main/asciidoc/img/icons/important.png b/src/main/asciidoc/images/icons/important.png
similarity index 100%
rename from src/main/asciidoc/img/icons/important.png
rename to src/main/asciidoc/images/icons/important.png
Binary files differ
diff --git a/src/main/asciidoc/img/icons/note.png b/src/main/asciidoc/images/icons/note.png
similarity index 100%
rename from src/main/asciidoc/img/icons/note.png
rename to src/main/asciidoc/images/icons/note.png
Binary files differ
diff --git a/src/main/asciidoc/img/icons/tip.png b/src/main/asciidoc/images/icons/tip.png
similarity index 100%
rename from src/main/asciidoc/img/icons/tip.png
rename to src/main/asciidoc/images/icons/tip.png
Binary files differ
diff --git a/src/main/asciidoc/img/icons/warning.png b/src/main/asciidoc/images/icons/warning.png
similarity index 100%
rename from src/main/asciidoc/img/icons/warning.png
rename to src/main/asciidoc/images/icons/warning.png
Binary files differ
diff --git a/src/main/asciidoc/images/interne-person-1.png b/src/main/asciidoc/images/interne-person-1.png
new file mode 100644
index 0000000..b9ff552
--- /dev/null
+++ b/src/main/asciidoc/images/interne-person-1.png
Binary files differ
diff --git a/src/main/asciidoc/img/interne-person-2.png b/src/main/asciidoc/images/interne-person-2.png
similarity index 100%
rename from src/main/asciidoc/img/interne-person-2.png
rename to src/main/asciidoc/images/interne-person-2.png
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationskanaele-leer.png b/src/main/asciidoc/images/kommunikationskanaele-leer.png
similarity index 100%
rename from src/main/asciidoc/img/kommunikationskanaele-leer.png
rename to src/main/asciidoc/images/kommunikationskanaele-leer.png
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationskanal-anlegen.png b/src/main/asciidoc/images/kommunikationskanal-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/kommunikationskanal-anlegen.png
rename to src/main/asciidoc/images/kommunikationskanal-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationskanal-gefuellt.png b/src/main/asciidoc/images/kommunikationskanal-gefuellt.png
similarity index 100%
rename from src/main/asciidoc/img/kommunikationskanal-gefuellt.png
rename to src/main/asciidoc/images/kommunikationskanal-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationstyp-nur-ansicht.png b/src/main/asciidoc/images/kommunikationstyp-nur-ansicht.png
similarity index 100%
rename from src/main/asciidoc/img/kommunikationstyp-nur-ansicht.png
rename to src/main/asciidoc/images/kommunikationstyp-nur-ansicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationstypen-anlegen.png b/src/main/asciidoc/images/kommunikationstypen-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/kommunikationstypen-anlegen.png
rename to src/main/asciidoc/images/kommunikationstypen-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/images/kommunikationstypen-uebersicht.png b/src/main/asciidoc/images/kommunikationstypen-uebersicht.png
new file mode 100644
index 0000000..2cfe3e2
--- /dev/null
+++ b/src/main/asciidoc/images/kommunikationstypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/images/kontakte_uebersichtstabelle.png b/src/main/asciidoc/images/kontakte_uebersichtstabelle.png
new file mode 100644
index 0000000..2221e0e
--- /dev/null
+++ b/src/main/asciidoc/images/kontakte_uebersichtstabelle.png
Binary files differ
diff --git a/src/main/asciidoc/img/loesch-symbol.png b/src/main/asciidoc/images/loesch-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/loesch-symbol.png
rename to src/main/asciidoc/images/loesch-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/meldung-hinweis.png b/src/main/asciidoc/images/meldung-hinweis.png
new file mode 100644
index 0000000..cb9f0d9
--- /dev/null
+++ b/src/main/asciidoc/images/meldung-hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/img/meldung-loeschen.png b/src/main/asciidoc/images/meldung-loeschen.png
similarity index 100%
rename from src/main/asciidoc/img/meldung-loeschen.png
rename to src/main/asciidoc/images/meldung-loeschen.png
Binary files differ
diff --git a/src/main/asciidoc/img/meldung_hinweis.png b/src/main/asciidoc/images/meldung_hinweis.png
similarity index 100%
rename from src/main/asciidoc/img/meldung_hinweis.png
rename to src/main/asciidoc/images/meldung_hinweis.png
Binary files differ
diff --git a/src/main/asciidoc/img/modul-zuordnen.png b/src/main/asciidoc/images/modul-zuordnen.png
similarity index 100%
rename from src/main/asciidoc/img/modul-zuordnen.png
rename to src/main/asciidoc/images/modul-zuordnen.png
Binary files differ
diff --git a/src/main/asciidoc/img/modulzuordnung-gefuellt.png b/src/main/asciidoc/images/modulzuordnung-gefuellt.png
similarity index 100%
rename from src/main/asciidoc/img/modulzuordnung-gefuellt.png
rename to src/main/asciidoc/images/modulzuordnung-gefuellt.png
Binary files differ
diff --git a/src/main/asciidoc/img/modulzuordnung-leer.png b/src/main/asciidoc/images/modulzuordnung-leer.png
similarity index 100%
rename from src/main/asciidoc/img/modulzuordnung-leer.png
rename to src/main/asciidoc/images/modulzuordnung-leer.png
Binary files differ
diff --git a/src/main/asciidoc/img/neu.png b/src/main/asciidoc/images/neu.png
similarity index 100%
rename from src/main/asciidoc/img/neu.png
rename to src/main/asciidoc/images/neu.png
Binary files differ
diff --git a/src/main/asciidoc/img/oeffnen-modul.png b/src/main/asciidoc/images/oeffnen-modul.png
similarity index 100%
rename from src/main/asciidoc/img/oeffnen-modul.png
rename to src/main/asciidoc/images/oeffnen-modul.png
Binary files differ
diff --git a/src/main/asciidoc/img/personentypen-anlegen.png b/src/main/asciidoc/images/personentypen-anlegen.png
similarity index 100%
rename from src/main/asciidoc/img/personentypen-anlegen.png
rename to src/main/asciidoc/images/personentypen-anlegen.png
Binary files differ
diff --git a/src/main/asciidoc/img/personentypen-uebersicht.png b/src/main/asciidoc/images/personentypen-uebersicht.png
similarity index 100%
rename from src/main/asciidoc/img/personentypen-uebersicht.png
rename to src/main/asciidoc/images/personentypen-uebersicht.png
Binary files differ
diff --git a/src/main/asciidoc/img/speichern.png b/src/main/asciidoc/images/speichern.png
similarity index 100%
rename from src/main/asciidoc/img/speichern.png
rename to src/main/asciidoc/images/speichern.png
Binary files differ
diff --git a/src/main/asciidoc/img/stift-symbol.png b/src/main/asciidoc/images/stift-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/stift-symbol.png
rename to src/main/asciidoc/images/stift-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/img/such-symbol.png b/src/main/asciidoc/images/such-symbol.png
similarity index 100%
rename from src/main/asciidoc/img/such-symbol.png
rename to src/main/asciidoc/images/such-symbol.png
Binary files differ
diff --git a/src/main/asciidoc/images/suche-beispiel.png b/src/main/asciidoc/images/suche-beispiel.png
new file mode 100644
index 0000000..e44f831
--- /dev/null
+++ b/src/main/asciidoc/images/suche-beispiel.png
Binary files differ
diff --git a/src/main/asciidoc/img/tabellen-menue.png b/src/main/asciidoc/images/tabellen-menue.png
similarity index 100%
rename from src/main/asciidoc/img/tabellen-menue.png
rename to src/main/asciidoc/images/tabellen-menue.png
Binary files differ
diff --git a/src/main/asciidoc/img/tabellenspalten-verschieben.png b/src/main/asciidoc/images/tabellenspalten-verschieben.png
similarity index 100%
rename from src/main/asciidoc/img/tabellenspalten-verschieben.png
rename to src/main/asciidoc/images/tabellenspalten-verschieben.png
Binary files differ
diff --git a/src/main/asciidoc/img/uebersicht-anrede.png b/src/main/asciidoc/images/uebersicht-anrede.png
similarity index 100%
rename from src/main/asciidoc/img/uebersicht-anrede.png
rename to src/main/asciidoc/images/uebersicht-anrede.png
Binary files differ
diff --git a/src/main/asciidoc/images/unternehmen-2.png b/src/main/asciidoc/images/unternehmen-2.png
new file mode 100644
index 0000000..aa99aa2
--- /dev/null
+++ b/src/main/asciidoc/images/unternehmen-2.png
Binary files differ
diff --git a/src/main/asciidoc/img/unternehmen.png b/src/main/asciidoc/images/unternehmen.png
similarity index 100%
rename from src/main/asciidoc/img/unternehmen.png
rename to src/main/asciidoc/images/unternehmen.png
Binary files differ
diff --git a/src/main/asciidoc/img/BackendTier.png b/src/main/asciidoc/img/BackendTier.png
deleted file mode 100644
index 3b626ec..0000000
--- a/src/main/asciidoc/img/BackendTier.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/DatabaseTier.png b/src/main/asciidoc/img/DatabaseTier.png
deleted file mode 100644
index 6225be2..0000000
--- a/src/main/asciidoc/img/DatabaseTier.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/DistributionOfComponents1.png b/src/main/asciidoc/img/DistributionOfComponents1.png
deleted file mode 100644
index 44bd6c8..0000000
--- a/src/main/asciidoc/img/DistributionOfComponents1.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/FrontendTier.png b/src/main/asciidoc/img/FrontendTier.png
deleted file mode 100644
index d820cc5..0000000
--- a/src/main/asciidoc/img/FrontendTier.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/SolutionArchitecture.png b/src/main/asciidoc/img/SolutionArchitecture.png
deleted file mode 100644
index bc731ac..0000000
--- a/src/main/asciidoc/img/SolutionArchitecture.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/SystemContext.png b/src/main/asciidoc/img/SystemContext.png
deleted file mode 100644
index cd194ce..0000000
--- a/src/main/asciidoc/img/SystemContext.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/adresseliste-gefuellt.png b/src/main/asciidoc/img/adresseliste-gefuellt.png
deleted file mode 100644
index 34504c3..0000000
--- a/src/main/asciidoc/img/adresseliste-gefuellt.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/auswahl-kontakt-anlegen.png b/src/main/asciidoc/img/auswahl-kontakt-anlegen.png
deleted file mode 100644
index 3b57b74..0000000
--- a/src/main/asciidoc/img/auswahl-kontakt-anlegen.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm-erstellen.png b/src/main/asciidoc/img/gnm-erstellen.png
deleted file mode 100644
index 88a9eb9..0000000
--- a/src/main/asciidoc/img/gnm-erstellen.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_detail.png b/src/main/asciidoc/img/gnm_detail.png
deleted file mode 100644
index b154645..0000000
--- a/src/main/asciidoc/img/gnm_detail.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_einzelmassnahme.png b/src/main/asciidoc/img/gnm_einzelmassnahme.png
deleted file mode 100644
index 9a59e79..0000000
--- a/src/main/asciidoc/img/gnm_einzelmassnahme.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_gesamt.png b/src/main/asciidoc/img/gnm_gesamt.png
deleted file mode 100644
index 9e618c5..0000000
--- a/src/main/asciidoc/img/gnm_gesamt.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_header.png b/src/main/asciidoc/img/gnm_header.png
deleted file mode 100644
index 51a256a..0000000
--- a/src/main/asciidoc/img/gnm_header.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_kalenderuebersicht.png b/src/main/asciidoc/img/gnm_kalenderuebersicht.png
deleted file mode 100644
index 0ade69d..0000000
--- a/src/main/asciidoc/img/gnm_kalenderuebersicht.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_schrittsequenz.png b/src/main/asciidoc/img/gnm_schrittsequenz.png
deleted file mode 100644
index 1fdf2ed..0000000
--- a/src/main/asciidoc/img/gnm_schrittsequenz.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_schrittsequenz_tabelle.png b/src/main/asciidoc/img/gnm_schrittsequenz_tabelle.png
deleted file mode 100644
index 8ea36e3..0000000
--- a/src/main/asciidoc/img/gnm_schrittsequenz_tabelle.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/gnm_uebersichtstabelle.png b/src/main/asciidoc/img/gnm_uebersichtstabelle.png
deleted file mode 100644
index abd0f3a..0000000
--- a/src/main/asciidoc/img/gnm_uebersichtstabelle.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/interne-person-1.png b/src/main/asciidoc/img/interne-person-1.png
deleted file mode 100644
index 03754b1..0000000
--- a/src/main/asciidoc/img/interne-person-1.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/kalender_tag.png b/src/main/asciidoc/img/kalender_tag.png
deleted file mode 100644
index 59ea073..0000000
--- a/src/main/asciidoc/img/kalender_tag.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/kalender_woche.png b/src/main/asciidoc/img/kalender_woche.png
deleted file mode 100644
index bec72f4..0000000
--- a/src/main/asciidoc/img/kalender_woche.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/kommunikationstypen-uebersicht.png b/src/main/asciidoc/img/kommunikationstypen-uebersicht.png
deleted file mode 100644
index 6fd7f21..0000000
--- a/src/main/asciidoc/img/kommunikationstypen-uebersicht.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/kontakte_uebersichtstabelle.png b/src/main/asciidoc/img/kontakte_uebersichtstabelle.png
deleted file mode 100644
index 72d4f4d..0000000
--- a/src/main/asciidoc/img/kontakte_uebersichtstabelle.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/meldung-hinweis.png b/src/main/asciidoc/img/meldung-hinweis.png
deleted file mode 100644
index fefb6ad..0000000
--- a/src/main/asciidoc/img/meldung-hinweis.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/meldung_erfolgreich.png b/src/main/asciidoc/img/meldung_erfolgreich.png
deleted file mode 100644
index 06fac8f..0000000
--- a/src/main/asciidoc/img/meldung_erfolgreich.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/meldung_fehler.png b/src/main/asciidoc/img/meldung_fehler.png
deleted file mode 100644
index 6413db7..0000000
--- a/src/main/asciidoc/img/meldung_fehler.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/netzmassnahme_duplizieren.png b/src/main/asciidoc/img/netzmassnahme_duplizieren.png
deleted file mode 100644
index dbef084..0000000
--- a/src/main/asciidoc/img/netzmassnahme_duplizieren.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/rueckschaltung-planen.png b/src/main/asciidoc/img/rueckschaltung-planen.png
deleted file mode 100644
index 11a2080..0000000
--- a/src/main/asciidoc/img/rueckschaltung-planen.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/sperrung_aufheben.png b/src/main/asciidoc/img/sperrung_aufheben.png
deleted file mode 100644
index a6b960f..0000000
--- a/src/main/asciidoc/img/sperrung_aufheben.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_a_beendet.png b/src/main/asciidoc/img/status_farbe_a_beendet.png
deleted file mode 100644
index b86a3c9..0000000
--- a/src/main/asciidoc/img/status_farbe_a_beendet.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_angefordert.png b/src/main/asciidoc/img/status_farbe_angefordert.png
deleted file mode 100644
index ca89557..0000000
--- a/src/main/asciidoc/img/status_farbe_angefordert.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_beantragt.png b/src/main/asciidoc/img/status_farbe_beantragt.png
deleted file mode 100644
index 10e1129..0000000
--- a/src/main/asciidoc/img/status_farbe_beantragt.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_freigegeben.png b/src/main/asciidoc/img/status_farbe_freigegeben.png
deleted file mode 100644
index dd7ae29..0000000
--- a/src/main/asciidoc/img/status_farbe_freigegeben.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_genehmigt.png b/src/main/asciidoc/img/status_farbe_genehmigt.png
deleted file mode 100644
index 3d0a1ba..0000000
--- a/src/main/asciidoc/img/status_farbe_genehmigt.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_in_arbeit.png b/src/main/asciidoc/img/status_farbe_in_arbeit.png
deleted file mode 100644
index 7ca59bd..0000000
--- a/src/main/asciidoc/img/status_farbe_in_arbeit.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_m_beendet.png b/src/main/asciidoc/img/status_farbe_m_beendet.png
deleted file mode 100644
index afcb205..0000000
--- a/src/main/asciidoc/img/status_farbe_m_beendet.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_neu.png b/src/main/asciidoc/img/status_farbe_neu.png
deleted file mode 100644
index 972fc33..0000000
--- a/src/main/asciidoc/img/status_farbe_neu.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_schalten-aktiv.png b/src/main/asciidoc/img/status_farbe_schalten-aktiv.png
deleted file mode 100644
index 9f65e09..0000000
--- a/src/main/asciidoc/img/status_farbe_schalten-aktiv.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/status_farbe_zur_genehmigung.png b/src/main/asciidoc/img/status_farbe_zur_genehmigung.png
deleted file mode 100644
index fc10974..0000000
--- a/src/main/asciidoc/img/status_farbe_zur_genehmigung.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/statuswechsel-uebersicht.png b/src/main/asciidoc/img/statuswechsel-uebersicht.png
deleted file mode 100644
index daf23e2..0000000
--- a/src/main/asciidoc/img/statuswechsel-uebersicht.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/stornieren-deaktiviert.png b/src/main/asciidoc/img/stornieren-deaktiviert.png
deleted file mode 100644
index 353e592..0000000
--- a/src/main/asciidoc/img/stornieren-deaktiviert.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/stornieren.png b/src/main/asciidoc/img/stornieren.png
deleted file mode 100644
index 66caec6..0000000
--- a/src/main/asciidoc/img/stornieren.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/stornieren_kommentar.png b/src/main/asciidoc/img/stornieren_kommentar.png
deleted file mode 100644
index 58c7e17..0000000
--- a/src/main/asciidoc/img/stornieren_kommentar.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/suche-beispiel.png b/src/main/asciidoc/img/suche-beispiel.png
deleted file mode 100644
index 8777abc..0000000
--- a/src/main/asciidoc/img/suche-beispiel.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/tabellen-filter.png b/src/main/asciidoc/img/tabellen-filter.png
deleted file mode 100644
index d1aa03e..0000000
--- a/src/main/asciidoc/img/tabellen-filter.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/unternehmen-2.png b/src/main/asciidoc/img/unternehmen-2.png
deleted file mode 100644
index a494ec9..0000000
--- a/src/main/asciidoc/img/unternehmen-2.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/img/vordefinierte_filter.png b/src/main/asciidoc/img/vordefinierte_filter.png
deleted file mode 100644
index 1f2ac0b..0000000
--- a/src/main/asciidoc/img/vordefinierte_filter.png
+++ /dev/null
Binary files differ
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
index 0309859..986320f 100644
--- a/src/main/asciidoc/userDocumentation/userDocumentation.adoc
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc
@@ -3,17 +3,17 @@
 <<<
 
 
-* Version: 0.1
-* Datum: 21.02.2020
-* Status: In Bearbeitung
+* Version: 1.0.1
+* Datum: 25.02.2020
+* Status: Final
 
 <<<
 
 :Author: Dr. Michel Alessandrini
 :Email: michel.alessandrini@pta.de
 
-:Date: 2020-02-21
-:Revision: 0.1
+:Date: 2020-02-25
+:Revision: 1.0.1
 
 :icons:
 
@@ -23,8 +23,8 @@
 :lang: de
 :encoding: utf-8
 
-:imagesdir: ../img
-:iconsdir: ../img/icons
+:imagesdir: ../images
+:iconsdir: ../images/icons
 
 :toc:
 :toclevels: 4
@@ -39,12 +39,12 @@
 
 == Sinn und Zweck des Moduls Kontaktstammdaten
 
-Das Modul Kontaktstammdaten ist ein Domain-Modul der openKONSEQUENZ.
+Das Modul Kontaktstammdaten ist ein Domain-Modul der openKONSEQUENZ-Plattform.
 
 Das Modul Kontaktstammdaten übernimmt die Verwaltung aller Kontaktdaten
 in einer openKONSEQUENZ-Installation. D.h. es synchronisiert sich mit den
 Benutzern des Auth&Auth-Moduls oder mit dem Unternehmens-LDAP. Des Weiteren
-verwaltet es alle (Internen und Externen) Personen sowie Firmen, die in den
+verwaltet es alle (Internen und Externen) Personen sowie Unternehmen, die in den
 User Modulen benötigt werden.
 
 Das Modul Kontaktstammdaten ist somit die zentrale Stelle zur Verwaltung
@@ -61,25 +61,23 @@
 
 [[lesende-rolle]]
 === Lesende Rolle
-TODO: Am Ende die Links setzen
-
 * <<uebersicht-aller-kontakte,Darf alle Kontakte sehen>>
+* <<suche-suche,Darf nach Kontakten suchen>>
 
+[[schreibende-rolle]]
 === Schreibende Rolle
-TODO: Am Ende die Links setzen
-
 * <<lesende-rolle,Darf alles, was die Lesende Rolle darf>>
 * <<kontakt-erstellen,Darf neue Kontakte anlegen>>
 * <<kontakt-bearbeiten,Darf bestehende Kontakte bearbeiten>>
-
-=== Administrator
-TODO: Am Ende die Links setzen
-
-* <<schreibene-rolle,Darf alles, was die Schreibende Rolle darf>>
-* <<kontakt-loeschen,Darf bestehende Kontakte löschen>>
-* <<stammdaten-pflege,Darf Stammdaten anlegen, bearbeiten, löschen>>
+* <<ansprechparter-loeschen,Darf Ansprechpartner eines Unternehmens entfernen>>
 * <<dsgvo-funktionen,Darf DSGVO-Funktionen ausführen>>
 
+[[admin-rolle]]
+=== Administrator
+* <<schreibende-rolle,Darf alles, was die Schreibende Rolle darf>>
+* <<verwaltung-stammdaten,Darf Stammdaten anlegen, bearbeiten, löschen>>
+
+
 <<<
 
 == Verwaltung der Kontakte
@@ -96,7 +94,7 @@
 Die Übersichtstabelle zeigt zu jedem Kontakt folgende Informationen an:
 
 .Felder in der Tabellenübersicht
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Feld|Erläuterung
 |Name
@@ -114,6 +112,7 @@
 * Unternehmen
 * Interne Person
 * Externe Person
+* Ansprechpartner
 
 |Notiz
 a|
@@ -125,34 +124,34 @@
 
 * Primäre Anschrift
 
-|(ohne Überschrift))
+|(ohne Überschrift)
 a|
 
-* Bearbeitungssymbole, siehe Abschnitt <<uebersicht-bearbeitungssymbole, Bearbeitungssymbole>>
+* Benutzeraktionen, siehe <<uebersicht-bearbeitungssymbole, Symbole>>
 
 |=========================================================
 
 [[uebersicht-bearbeitungssymbole]]
 === Kontakt anlegen, anzeigen, bearbeiten und löschen
 
-Jeder Kontakt kann je nach Benutzerrolle direkt aus der Tabelle angezeigt,
-bearbeitet oder gelöscht werden.
+Jeder Kontakt kann direkt aus der Tabelle zur Anzeige oder zur Bearbeitung
+geöffnet werden.
 
 ==== Kontakt anzeigen
 
-Über das folgende Symbol in der Tabelle wird der entsprechende Kontakt
-zur Anzeige geöffnet.
+Über folgendes Symbol öffnet sich der entsprechende Kontakt zur Anzeige.
 
 .Auge-Symbol zum Anzeigen eines Kontakts
 [options="header,footer"]
 image::auge-symbol.png[]
 
-CAUTION: Das Auge-Symbol ist nur bei der "Lesenden Rolle" sichtbar
+CAUTION: Das Auge-Symbol ist nur bei der "Lesenden Rolle" sichtbar.
 
+[[kontakt-bearbeiten]]
 ==== Kontakt bearbeiten
 
-Über das folgende Symbol in der Tabelle wird der entsprechende Kontakt
-zur Beareitung geöffnet.
+Über folgendes Symbol öffnet sich der entsprechende Kontakt
+zur Bearbeitung.
 
 .Stift-Symbol zum Bearbeiten eines Kontakts
 [options="header,footer"]
@@ -161,39 +160,26 @@
 CAUTION: Das Stift-Symbol ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
 
 ==== Kontakt löschen
+Kontakte können nicht entfernt, sondern lediglich <<dsgvo-anonymisieren,anonymisiert>> werden.
+Die einzige Ausnahme bilden die <<ansprechparter-loeschen,Ansprechpartner eines Unternehmens>>,
+die entfernt werden können.
 
-Über das folgende Symbol in der Tabelle wird der entsprechende Kontakt
-gelöscht.
-
-.Löschen-Symbol zum Entfernen eines Kontakts
-[options="header,footer"]
-image::loesch-symbol.png[]
-
-CAUTION: Das Mülleimer-Symbol ist nur bei der Rolle "Administrator" sichtbar.
-
-CAUTION: Die Löschfunktion steht nur beim Kontakttyp "Ansprechpartner" zur Verfügung.
-
-Nach Klick auf das Löschen-Symbol erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
-
-.Dialog nach Klick auf Löschen
-[options="header,footer"]
-image:meldung-loeschen.png[]
-
-==== Kontakt anlegen
+CAUTION: Anonymisieren und löschen ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
 
 [[kontakt-erstellen]]
+==== Kontakt anlegen
 Ist ein Benutzer mit der Benutzerrolle "Schreibende Rolle" angemeldet,
 so besteht die Möglichkeit über die Schaltfläche "Neuen Kontakt anlegen" einen
-neuen Kontakt anzulegen.
+neuen Kontakt hinzuzufügen.
 
 .Schaltfläche zum Erstellen von Kontakten
 [options="header,footer"]
-image:auswahl-kontakt-anlegen.png[]
+image::auswahl-kontakt-anlegen.png[]
 
 Hier muss der Bearbeiter den Kontakttyp bestimmen:
 
 .Kontakttypen
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Kontakttyp|Erläuterung
 |Interner Kontakt
@@ -209,22 +195,7 @@
 * Eine juristische Person
 |=========================================================
 
-Um den Kontakt zu speichern, muss die folgende Schaltfläche betätigt werden.
-
-.Schaltfläche zum Speichern
-[options="header,footer"]
-image:speichern.png[]
-
-Wenn die neu erfassten Daten nicht gespeichert werden sollen, dann ist folgende Schaltfläche zu drücken:
-.Schaltfläche zum Abbrechen (ohne speichern)
-[options="header,footer"]
-image:abbrechen.png[]
-
-Anschließend erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
-
-.Dialog nach Abbrechen
-[options="header,footer"]
-image:dialog-nach-abbrechen.png[]
+Anschließend öffnet sich die Eingabemaske für den ausgewählten Kontakttypen.
 
 
 === Kontakttypen
@@ -243,7 +214,7 @@
 Eine interne Person besitzt folgende Attribute:
 
 .Attribute einer internen Person
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
 |Vorname      |nein           |Textfeld       |Vorname der natürlichen Person
@@ -251,12 +222,30 @@
 |Titel        |nein           |Textfeld       |z.B. Prof. oder Dr.
 |Anrede       |nein           |Auswahlfeld    |Auswahl einer Anrede, z.B. Herr oder Frau
 |Personentyp  |nein           |Auswahlfeld    |Auswahl eines Personentyps
-|LDAP User    |nein           |Textfeld       |Bezeichnung des Benutzers im Unternehmens-LDAP. Wird zur Synchronisation verwendet.
-|Portal User  |nein           |Textfeld       |Bezeichnung des Benutzers im Portal. Wird zur Synchronisation verwendet.
+|LDAP User    |nein           |Textfeld       |Bezeichnung des Benutzers im Unternehmens-LDAP. Im linken Feld kann durch Erfassung eines Namens im LDAP gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.
+|Portal User  |nein           |Textfeld       |Bezeichnung des Benutzers im Portal. Im linken Feld kann durch Erfassung eines Namens im Portal gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.
 |Abteilung    |nein           |Textfeld       |Abteilung der Person
 |Notiz        |nein           |Textfeld       |Beliebige Hinweise zur Person
 |=========================================================
 
+Um den Kontakt zu speichern, muss die folgende Schaltfläche betätigt werden.
+
+.Schaltfläche zum Speichern
+[options="header,footer"]
+image::speichern.png[]
+
+Wenn die neu erfassten Daten nicht gespeichert werden sollen, dann ist folgende Schaltfläche zu drücken:
+
+.Schaltfläche zum Abbrechen (ohne speichern)
+[options="header,footer"]
+image::abbrechen.png[]
+
+Anschließend erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
+
+.Dialog nach Abbrechen
+[options="header,footer"]
+image::dialog-nach-abbrechen.png[]
+
 ==== Externe Person
 Die Basisinformationen eines Kontakts befindet sich im oberen
 Teil des Benutzerdialogs.
@@ -271,7 +260,7 @@
 Eine externe Person besitzt folgende Attribute:
 
 .Attribute einer externen Person
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
 |Vorname      |nein           |Textfeld       |Vorname der natürlichen Person
@@ -293,42 +282,46 @@
 [options="header,footer"]
 image::unternehmen.png[]
 
-Ein unternehmen besitzt folgende Attribute:
+Ein Unternehmen besitzt folgende Attribute:
 
 .Attribute eines Unternehmens
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut                |Pflichtfeld    |Inhaltsart     |Beschreibung
 |Name                    |ja             |Textfeld       |Nachname der natürlichen Person
 |Rechtsform              |nein           |Textfeld       |z.B. GmbH oder AG
-|Handelsregisternummer   |nein           |Textfeld       |
+|Handelsregisternummer   |nein           |Textfeld       |Nummer in der Form HR A 11111
 |Notiz                   |nein           |Textfeld       |Beliebige Hinweise zum unternehmen
 |=========================================================
 
+==== Ansprechpartner
+Der Ansprechpartner ist kein eigener Kontakttyp. Dieser kann ausschließlich
+ <<ansprechpartner-unternehmen,über das Unternehmen erfasst werden, zudem der Ansprechpartner gehört.>>
+
 
 === Weitere Informationen zu einem Kontakt
 Die Detailinformationen zu einem Kontakt befinden sich im unteren
-Teil des Benutzerdialogs.
-
-CAUTION: Bei der Neu-Anlage eines Kontakts sind die Details zunächst nicht sichtbar. Erst nach dem Speichern des neuen Kontakts werden die folgenden Detailinformationen angezeigt.
+Teil der Erfassungsmaske in aufklappbaren Bereichen:
 
 .Detail-Informationen eines Kontakts
 [options="header,footer"]
-image::interne-person-2.png[]
+image::unternehmen-2.png[]
+
+CAUTION: Bei der Neu-Anlage eines Kontakts sind die Details zunächst nicht sichtbar. Erst nach dem Speichern und dem erneuten Aufruf des neuen Kontakts werden die folgenden Detailinformationen angezeigt.
 
 Dieser Bereich ist in folgende Abschnitte unterteilt:
 
-* Adressliste
+* Adressen
 * Kommunikationskanäle
 * Modulzuordnung
 * Ansprechpartner (nur bei Unternehmen)
 
 
-==== Adressliste
+==== Adressen
 Die Adressliste beinhaltet alle Adressen der internen Person. Eine Adresse besteht aus folgenden Attributen:
 
 .Attribute einer Adresse (Kontakt-Detailinformationen)
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut           |Pflichtfeld    |Inhaltsart      |Beschreibung
 |Adresstyp          |ja             |Auswahlfeld     |Auswahl eines Adresstyps
@@ -338,10 +331,10 @@
 |Adresse (Zusatz)   |nein           |Textfeld        |Adressdaten
 |Straße             |nein           |Textfeld        |Adressdaten
 |Hausnummer         |nein           |Textfeld        |Adressdaten
-|WGS84-Zone         |nein           |Textfeld        |
-|Längengrad         |nein           |Textfeld        |
-|Breitengrad        |nein           |Textfeld        |
-|Google Maps URL    |nein           |Textfeld        |
+|WGS84-Zone         |nein           |Textfeld        |World Geodetic System 1984 für Positionsangaben
+|Längengrad         |nein           |Textfeld        |Geographische Länge: Ein Winkel, der ausgehend vom Nullmeridian (0°) bis 180° in östlicher und 180° in westlicher Richtung angegeben wird
+|Breitengrad        |nein           |Textfeld        |Geographische Breite: Angabe in Grad, Minuten und Sekunden
+|Google Maps URL    |nein           |Textfeld        |URL zu Google Maps mit den entsprechenden Parametern
 |Notiz              |nein           |Textfeld        |Beliebige Hinweise zur Person
 |=========================================================
 
@@ -360,14 +353,14 @@
 
 
 ==== Kommunikationskanäle
-Die Kommunikationskanäle beinhalten alle Kontaktinformationen. Eine Kommunikationskanal besteht aus folgenden Attributen:
+Die Kommunikationskanäle beinhalten alle Kontaktinformationen. Ein Kommunikationskanal besteht aus folgenden Attributen:
 
 .Attribute eines Kommunikationskanals (Kontakt-Detailinformationen)
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut     |Pflichtfeld    |Inhaltsart      |Beschreibung
 |Typ          |ja             |Auswahlfeld     |Auswahl eines Kommunikationskanals
-|Daten        |nein           |Textfeld        |KOntaktinformationen des entsprechenden Kommunikationskanals
+|Daten        |nein           |Textfeld        |Kontaktinformationen des entsprechenden Kommunikationskanals
 |Notiz        |nein           |Textfeld        |Beliebige Hinweise zum Kommunikationskanal
 |=========================================================
 
@@ -384,15 +377,16 @@
 [options="header,footer"]
 image::kommunikationskanal-anlegen.png[]
 
+[[zugeordnete-module]]
+==== Zugeordnete Module
+Die Modulzuordnung legt fest, in welchen Modulen der Kontakt genutzt wird.
+Des Weiteren kann hinterlegt werden, wie lange die Kontaktdaten mindestens
+aufbewahrt werden müssen und wann diese ablaufen.
 
-==== Modulzuordnung
-Die Modulzuordnung legt fest in welchen Modulen der Kontakt genutzt wird.
-Des Weiteren wird hier hinterlegt, wie lange die Kontaktdaten minestens aufbewahrt werden müssen
-und wann diese ggf. abläuft.
 Eine Modulzuordnung besteht aus folgenden Attributen:
 
 .Attribute einer Modulzuordnung (Kontakt-Detailinformationen)
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut        |Pflichtfeld    |Inhaltsart      |Beschreibung
 |Modulname       |ja             |Auswahlfeld     |Auswahl eines openKONSEQUENZ-Moduls
@@ -414,12 +408,13 @@
 [options="header,footer"]
 image::modul-zuordnen.png[]
 
-==== Ansprechpartner
-Die Ansprechpartner sind Persoen, die zu einem Unternehmen gehören. Deshalb gibt es diese Daten nur bei dem Kontakttyp Unternehmen.
-Ein Ansprechpartner beitzt folgende Attribute:
+[[ansprechpartner-unternehmen]]
+==== Ansprechpartner (nur bei Unternehmen)
+Die Ansprechpartner sind Personen, die zu einem Unternehmen gehören. Deshalb gibt es diese Daten nur bei dem Kontakttyp Unternehmen.
+Ein Ansprechpartner besitzt folgende Attribute:
 
 .Attribute eines Ansprechpartners (Kontakt-Detailinformationen)
-[options="header,footer"]
+[options="header"]
 |=========================================================
 |Attribut     |Pflichtfeld    |Inhaltsart     |Beschreibung
 |Vorname      |nein           |Textfeld       |Vorname des Ansprechpartners
@@ -443,36 +438,111 @@
 [options="header,footer"]
 image::ansprechpartner-anlegen.png[]
 
+[[ansprechparter-loeschen]]
+==== Löschen von weiteren Informationen eines Kontakts
+Über das folgende Symbol in der Tabelle kann der entsprechende Eintrag
+(Adresse, Kommunikationskanal, Modulzuordnung oder Ansprechpartner)
+gelöscht werden.
+
+.Löschen-Symbol
+[options="header,footer"]
+image::loesch-symbol.png[]
+
+CAUTION: Das Mülleimer-Symbol ist nur bei der "Schreibenden Rolle" und bei der Rolle "Administrator" sichtbar.
+
+CAUTION: Die Löschfunktion steht nur beim Kontakttyp "Ansprechpartner" zur Verfügung. Andere Kontakte können nicht gelöscht werden.
+
+Nach Klick auf das Löschen-Symbol erscheint ein Dialog, der mit "Ja" zu bestätigen ist.
+
+.Dialog nach Klick auf Löschen
+[options="header,footer"]
+image::meldung-loeschen.png[]
+
+
 <<<
 
 [[dsgvo-funktionen]]
 == DSGVO-Funktionen
+Das Modul Kontaktstammdaten ermöglicht für eine openKONSEQUENZ-Installation
+die zentrale Umsetzung der DSGVO-Aufgaben:
 
-TODO: Allgemein beschreiben
-
+* Alle Informationen zu einem Kontakt finden
+* Gültigkeitszeiträume für Personendaten festlegen
+* Sperrfristen für Personendaten festlegen
+* Abgelaufene Kontakte identifizieren
+* Kontakte anonymisieren
 
 [[dsgvo-erfassen]]
 === Erfassung der DSGVO-Informationen zu einem Kontakt
+Kontaktdaten können grundsätzlich in mehreren openKONSEQUENZ-Modulen verwendet werden.
+Deshalb ist es bei jedem Kontakt (Interne und externe Person) möglich, die einzelnen
+Module bei den Detailinformationen unter <<zugeordnete-module,Zugeordnete Module>>
+zu erfassen.
 
-TODO: siehe Modulzuordnung
+In diesem Vorgang können zu jeder Modulzuordnung weitere DSGVO-relevante Informationen
+hinterlegt werden:
 
-[[dsgvo-anonymisieren]]
+* openKONSEQUENZ-Modul: Modul, dass diesen Kontakt verwendet
+* Zuweisungsdatum: Wann der Kontakt erstmalig dem Modul verwendet wurde
+* Ablaufdatum: Zeitpunkt nachdem der Kontakt zu anonymisieren ist
+* Löschsperre bis: Zeitpunkt bis wann der Kontakt nicht anonymisiert werden darf
+
+Ein Beispiel für einen Kontakt mit mehreren Modulzuordnungen:
+
+.Beispiel Modulzuordnungen
+[options="header,footer"]
+image::dsgvo-module.png[]
+
+[[dsgvo-suche]]
 === Abgelaufene Kontakte identifizieren
+In der Hauptübersicht befindet sich eine DSGVO-Suchfunktion. Mit dieser Suche
+können folgende DSGVO-Informationen abgefragt werden:
 
-TODO
+* Auswahl Module
+* Ablaufdatum überschritten
+* Löschsperre abgelaufen
 
-[[dsgvo-loeschsperre]]
-=== Löschsperre bei Kontakten
+Des Weiteren kann diese Suche mit den Such-Kriterien der Standardsuche kombiniert werden.
+Das folgende Beispiel zeigt eine Suche nach abgelaufenen Kontakten:
 
-TODO
+.DSGVO-Suche
+[options="header,footer"]
+image::dsgvo-suche.png[]
+
+CAUTION: Es erfolgt keine automatische Anonymisierung nachdem das Ablaufdatum und/oder die Löschsperre abgelaufen sind.
 
 [[dsgvo-anonymisieren]]
 === Kontakt anonymisieren
+Kontakte einer openKONSEQUENZ-Installation werden ausschließlich über das Modul
+Kontaktstammdaten anonymisiert. Dabei ist folgendes zu beachten:
 
-TODO
+CAUTION: Das Anonymisieren von Kontakten erfolgt immer manuell und für jeden Kontakt einzeln.
 
+Des Weiteren sind entsprechende Berechtigungen notwendig:
 
+CAUTION: Für das Anonymisieren von Kontakten ist die "Schreibende Rolle" oder die Rolle "Administrator" notwendig.
 
+Sind alle Voraussetzung erfüllt, wird der Kontakt wird über das <<kontakt-bearbeiten,Bearbeiten-Symbol>> in der Haupttabelle
+aufgerufen, anschließend öffnet sich die Erfassungsmaske zur Bearbeitung eines
+Kontakts:
+
+.Kontaktansicht mit Anonymisieren-Button
+[options="header,footer"]
+image::dsgvo-anonymisieren-vorher.png[]
+
+Über die Schaltfläche "Anonymisieren" erfolgt das Unkenntlichmachen des Kontakts.
+Dazu wird der Name auf "* * *" geändert und alle anderen Felder geleert.
+
+Zuvor muss aber noch der folgende Dialog bestätigt werden:
+
+.Hinweis vor dem Anonymisieren
+[options="header,footer"]
+image::dsgvo-anonymisieren-hinweis.png[]
+
+Ist dies erfolgt, öffnet sich anschließend die Hauptansicht und der anonymisierte
+Kontakt ist nicht mehr auffindbar.
+
+CAUTION: Ein anonymisierter Kontakt kann nicht wiederhergestellt werden.
 
 <<<
 
@@ -502,10 +572,10 @@
 [options="header,footer"]
 image::uebersicht-anrede.png[]
 
-Über die Schaltfläche "Neu" kann einer Eintrag angelegt werden.
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
 Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
 
-.Maske zur Anlage eines Anreden
+.Maske zur Anlage von Anreden
 [options="header,footer"]
 image::anrede-anlegen.png[]
 
@@ -518,7 +588,7 @@
 [options="header,footer"]
 image::adresstypen-uebersicht.png[]
 
-Über die Schaltfläche "Neu" kann einer Eintrag angelegt werden.
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
 Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
 
 .Maske zur Anlage eines Adresstyps
@@ -534,7 +604,7 @@
 [options="header,footer"]
 image::kommunikationstypen-uebersicht.png[]
 
-Über die Schaltfläche "Neu" kann einer Eintrag angelegt werden.
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
 Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
 
 .Maske zur Anlage eines Kommunikationstypens
@@ -546,7 +616,7 @@
 gekennzeichnet. Wird der entsprechende Eintrag über dieses Symbol geöffnet,
 so können keine Anpassungen vorgenommen werden.
 
-.Maske zur Anlage eines Kommunikationstypens
+.Maske zur Ansicht eines Kommunikationstyps
 [options="header,footer"]
 image::kommunikationstyp-nur-ansicht.png[]
 
@@ -559,7 +629,7 @@
 [options="header,footer"]
 image::personentypen-uebersicht.png[]
 
-Über die Schaltfläche "Neu" kann einer Eintrag angelegt werden.
+Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
 Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:
 
 .Maske zur Anlage eines Personentyps
@@ -584,6 +654,7 @@
 erscheinen im folgenden Fall:
 
 * Fehlenden Informationen (Pflichtfelder füllen)
+* LDAP- und Auth&Auth-User dürfen für einen Kontakt nicht gleichzeitig synchronisiert werden
 
 .Hinweis Pflichtfelder
 [options="header,footer"]
@@ -647,9 +718,9 @@
 [options="header,footer"]
 image::haus-symbol.png[]
 
-CAUTION: DEr Aufruf des Home-Buttons setzt die Suche, Filter und Sortierfunktion wieder zurück, sodass die Standardansicht wieder hergestellt ist.
+CAUTION: Der Aufruf des Home-Buttons setzt die Suche, Filter und Sortierfunktion wieder zurück, sodass die Standardansicht wiederhergestellt ist.
 
-[[suche]]
+[[suche-suche]]
 === Suche
 In der Übersicht ist eine Such-Funktion integriert, die eingegebenen Zeichen in
 den Datensätzen der Kontaktstammdaten sucht. Bei der Suche werden alle Felder
@@ -659,23 +730,22 @@
 [options="header,footer"]
 image::suche-beispiel.png[]
 
-Das Auswahlfeld "Alle Kontakttypen" bestimmt den Suchumfang:
+Das Auswahlfeld "Kontakttypen" bestimmt den Suchumfang:
 
 * Alle Kontakttypen
 * Interne Personen
 * Externe Personen
 * Unternehmen
+* Ansprechpartner
 
-Die Suche wird entweder über die "Enter-Taste" oder über das Lupen-Symbol
-ausgeführt:
+Die Suche wird direkt beim Eintippen des Suchbegriffs bzw. bei der Auswahl
+eines Filterkriteriums ausgeführt.
 
-.Schaltfläche zum Starten der Suche
-[options="header,footer"]
-image::such-symbol.png[]
+Darüber hinaus steht eine <<dsgvo-suche,DSGVO-Suche>> zur Verfügung.
 
-
+[[sortieren]]
 === Sortieren
-Die Sortierung in der Haupttabelle funktioniert über zwei Auswahlfelder:
+Die Sortierung in der Haupttabelle erfolgt über zwei Auswahlfelder:
 
 .Auswahl des Attributs für die Sortierung
 [options="header,footer"]
@@ -688,16 +758,19 @@
 Nach Auswahl der entsprechenden Felder erfolgt die Suche automatisch.
 
 === Hilfe
-TODO
+Diese Benutzerdokumentation ist über das Hilfe-Symbol in der Kopfzeile erreichbar:
+
+.Hilfe-Symbol
+[options="header,footer"]
+image::hilfe.png[]
 
 === Synchronisierung mit Verzeichnisdiensten
 Die Aktivierung der Synchronisierung der Kontaktstammdaten mit den Verzeichnisdiensten
 LDAP und/oder Auth&Auth erfolgt durch den Administrator.
 
-
 <<<
 
-== Allgemeiner Hinweis
+== Kompatibilität
 Die Anwendung ist für folgende Endgeräte optimiert:
 
 * Desktop-PC
@@ -712,3 +785,5 @@
 Werte nicht unterschreiten:
 
 * 1.024 x 768 Pixel
+
+<<<
diff --git a/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
new file mode 100644
index 0000000..ad8806d
--- /dev/null
+++ b/src/main/asciidoc/userDocumentation/userDocumentation.adoc.html
@@ -0,0 +1,2177 @@
+  <html>
+    <head>
+      <meta charset="utf-8">
+      <title>Benutzerhandbuch: KontaktstammdatenCreate Repository</title>
+      <style>
+        #wrapper {width: 960px; margin: 0 auto;}
+        /* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
+/* Uncomment @import statement to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
+audio,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:none}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:0}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt{background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+:not(pre)>code.nobreak{word-wrap:normal}
+:not(pre)>code.nowrap{white-space:nowrap}
+pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
+pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
+pre>code{display:block}
+pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
+#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #e7e7e9}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
+@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
+.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
+.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.prettyprint{background:#f7f7f8}
+pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
+pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
+pre.prettyprint li code[data-lang]::before{opacity:1}
+pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
+table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
+table.linenotable td.code{padding-left:.75em}
+table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
+pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
+pre.pygments .lineno::before{content:"";margin-right:-.125em}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
+.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.excerpt,.quoteblock .quoteblock{margin:0 0 1.25em;padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
+.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
+.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content>:last-child{margin-bottom:-1.25em}
+td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left{margin:.25em .625em 1.25em 0}
+.imageblock.right{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background:#00fafa}
+.black{color:#000}
+.black-background{background:#000}
+.blue{color:#0000bf}
+.blue-background{background:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background:#fa00fa}
+.gray{color:#606060}
+.gray-background{background:#7d7d7d}
+.green{color:#006000}
+.green-background{background:#007d00}
+.lime{color:#00bf00}
+.lime-background{background:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background:#7d0000}
+.navy{color:#000060}
+.navy-background{background:#00007d}
+.olive{color:#606000}
+.olive-background{background:#7d7d00}
+.purple{color:#600060}
+.purple-background{background:#7d007d}
+.red{color:#bf0000}
+.red-background{background:#fa0000}
+.silver{color:#909090}
+.silver-background{background:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}}
+
+      </style>
+      <link href='https://fonts.googleapis.com/css?family=Noto+Serif' rel='stylesheet' type='text/css'>
+      <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
+      <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
+      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/default.min.css">
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/asciidoc.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/yaml.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/dockerfile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/makefile.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/go.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/rust.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/haskell.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/typescript.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scss.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/less.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/handlebars.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/groovy.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/scala.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/bash.min.js"></script>
+      <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/languages/ini.min.js"></script>
+      <script>hljs.initHighlightingOnLoad();</script>
+    </head>
+    <body>
+      <div id="wrapper">
+        <div class="article">
+          <h1>Benutzerhandbuch: Kontaktstammdaten</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div style="page-break-after: always;"></div>
+<div class="ulist">
+<ul>
+<li>
+<p>Version: 1.0.1</p>
+</li>
+<li>
+<p>Datum: 25.02.2020</p>
+</li>
+<li>
+<p>Status: Final</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+<!-- toc disabled -->
+<div style="page-break-after: always;"></div>
+</div>
+<div id="toc" class="toc">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_sinn_und_zweck_des_moduls_kontaktstammdaten">1. Sinn und Zweck des Moduls Kontaktstammdaten</a></li>
+<li><a href="#uebersicht-benutzerrollen">2. Benutzerrollen und Aufgaben</a>
+<ul class="sectlevel2">
+<li><a href="#lesende-rolle">2.1. Lesende Rolle</a></li>
+<li><a href="#schreibende-rolle">2.2. Schreibende Rolle</a></li>
+<li><a href="#admin-rolle">2.3. Administrator</a></li>
+</ul>
+</li>
+<li><a href="#_verwaltung_der_kontakte">3. Verwaltung der Kontakte</a>
+<ul class="sectlevel2">
+<li><a href="#uebersicht-aller-kontakte">3.1. Übersicht</a></li>
+<li><a href="#uebersicht-bearbeitungssymbole">3.2. Kontakt anlegen, anzeigen, bearbeiten und löschen</a></li>
+<li><a href="#_kontakttypen">3.3. Kontakttypen</a></li>
+<li><a href="#_weitere_informationen_zu_einem_kontakt">3.4. Weitere Informationen zu einem Kontakt</a></li>
+</ul>
+</li>
+<li><a href="#dsgvo-funktionen">4. DSGVO-Funktionen</a>
+<ul class="sectlevel2">
+<li><a href="#dsgvo-erfassen">4.1. Erfassung der DSGVO-Informationen zu einem Kontakt</a></li>
+<li><a href="#dsgvo-suche">4.2. Abgelaufene Kontakte identifizieren</a></li>
+<li><a href="#dsgvo-anonymisieren">4.3. Kontakt anonymisieren</a></li>
+</ul>
+</li>
+<li><a href="#verwaltung-stammdaten">5. Verwaltung der Stammdaten</a>
+<ul class="sectlevel2">
+<li><a href="#_anreden">5.1. Anreden</a></li>
+<li><a href="#_adresstypen">5.2. Adresstypen</a></li>
+<li><a href="#_kommunikationstypen">5.3. Kommunikationstypen</a></li>
+<li><a href="#_personentypen">5.4. Personentypen</a></li>
+</ul>
+</li>
+<li><a href="#meldungen-hinweise">6. Hinweise und Meldungen nach Benutzeraktionen</a>
+<ul class="sectlevel2">
+<li><a href="#_erfolg_einer_aktion">6.1. Erfolg einer Aktion</a></li>
+<li><a href="#_handlungsanweisung">6.2. Handlungsanweisung</a></li>
+<li><a href="#_fehlermeldungen">6.3. Fehlermeldungen</a></li>
+</ul>
+</li>
+<li><a href="#_allgemeine_funktionen">7. Allgemeine Funktionen</a>
+<ul class="sectlevel2">
+<li><a href="#_an_und_abmelden">7.1. An- und abmelden</a></li>
+<li><a href="#_home_button">7.2. Home-Button</a></li>
+<li><a href="#suche-suche">7.3. Suche</a></li>
+<li><a href="#sortieren">7.4. Sortieren</a></li>
+<li><a href="#_hilfe">7.5. Hilfe</a></li>
+<li><a href="#_synchronisierung_mit_verzeichnisdiensten">7.6. Synchronisierung mit Verzeichnisdiensten</a></li>
+</ul>
+</li>
+<li><a href="#_kompatibilität">8. Kompatibilität</a></li>
+</ul>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_sinn_und_zweck_des_moduls_kontaktstammdaten"><a class="anchor" href="#_sinn_und_zweck_des_moduls_kontaktstammdaten"></a>1. Sinn und Zweck des Moduls Kontaktstammdaten</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Das Modul Kontaktstammdaten ist ein Domain-Modul der openKONSEQUENZ-Plattform.</p>
+</div>
+<div class="paragraph">
+<p>Das Modul Kontaktstammdaten übernimmt die Verwaltung aller Kontaktdaten
+in einer openKONSEQUENZ-Installation. D.h. es synchronisiert sich mit den
+Benutzern des Auth&amp;Auth-Moduls oder mit dem Unternehmens-LDAP. Des Weiteren
+verwaltet es alle (Internen und Externen) Personen sowie Unternehmen, die in den
+User Modulen benötigt werden.</p>
+</div>
+<div class="paragraph">
+<p>Das Modul Kontaktstammdaten ist somit die zentrale Stelle zur Verwaltung
+aller Kontakte und personenbezogener Daten in einer openKONSEQUENZ-Installation.
+Es setzt die DSGVO-Vorgaben um.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="uebersicht-benutzerrollen"><a class="anchor" href="#uebersicht-benutzerrollen"></a>2. Benutzerrollen und Aufgaben</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Zur Bearbeitung von Kontaktstammdaten sind folgende Benutzerrollen
+definiert.</p>
+</div>
+<div class="sect2">
+<h3 id="lesende-rolle"><a class="anchor" href="#lesende-rolle"></a>2.1. Lesende Rolle</h3>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#uebersicht-aller-kontakte">Darf alle Kontakte sehen</a></p>
+</li>
+<li>
+<p><a href="#suche-suche">Darf nach Kontakten suchen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="schreibende-rolle"><a class="anchor" href="#schreibende-rolle"></a>2.2. Schreibende Rolle</h3>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#lesende-rolle">Darf alles, was die Lesende Rolle darf</a></p>
+</li>
+<li>
+<p><a href="#kontakt-erstellen">Darf neue Kontakte anlegen</a></p>
+</li>
+<li>
+<p><a href="#kontakt-bearbeiten">Darf bestehende Kontakte bearbeiten</a></p>
+</li>
+<li>
+<p><a href="#ansprechparter-loeschen">Darf Ansprechpartner eines Unternehmens entfernen</a></p>
+</li>
+<li>
+<p><a href="#dsgvo-funktionen">Darf DSGVO-Funktionen ausführen</a></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect2">
+<h3 id="admin-rolle"><a class="anchor" href="#admin-rolle"></a>2.3. Administrator</h3>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="#schreibende-rolle">Darf alles, was die Schreibende Rolle darf</a></p>
+</li>
+<li>
+<p><a href="#verwaltung-stammdaten">Darf Stammdaten anlegen, bearbeiten, löschen</a></p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_verwaltung_der_kontakte"><a class="anchor" href="#_verwaltung_der_kontakte"></a>3. Verwaltung der Kontakte</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="uebersicht-aller-kontakte"><a class="anchor" href="#uebersicht-aller-kontakte"></a>3.1. Übersicht</h3>
+<div class="paragraph">
+<p>Die Übersichtsseite stellt standardmäßig alle Kontakte
+in einer Tabelle dar.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kontakte_uebersichtstabelle.png" alt="kontakte uebersichtstabelle">
+</div>
+<div class="title">Figure 1. Übersicht der Kontakte</div>
+</div>
+<div class="paragraph">
+<p>Die Übersichtstabelle zeigt zu jedem Kontakt folgende Informationen an:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 1. Felder in der Tabellenübersicht</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Feld</th>
+<th class="tableblock halign-left valign-top">Erläuterung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Name des Kontakts (Personen- oder Firmen-Name)</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">E-Mail</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>E-Mail-Adresse des Kontakts</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Kontakttyp</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Unternehmen</p>
+</li>
+<li>
+<p>Interne Person</p>
+</li>
+<li>
+<p>Externe Person</p>
+</li>
+<li>
+<p>Ansprechpartner</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Bemerkung bzw. Hinweis zu einem Kontakt</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hauptadresse</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Primäre Anschrift</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">(ohne Überschrift)</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Benutzeraktionen, siehe <a href="#uebersicht-bearbeitungssymbole">Symbole</a></p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="uebersicht-bearbeitungssymbole"><a class="anchor" href="#uebersicht-bearbeitungssymbole"></a>3.2. Kontakt anlegen, anzeigen, bearbeiten und löschen</h3>
+<div class="paragraph">
+<p>Jeder Kontakt kann direkt aus der Tabelle zur Anzeige oder zur Bearbeitung
+geöffnet werden.</p>
+</div>
+<div class="sect3">
+<h4 id="_kontakt_anzeigen"><a class="anchor" href="#_kontakt_anzeigen"></a>3.2.1. Kontakt anzeigen</h4>
+<div class="paragraph">
+<p>Über folgendes Symbol öffnet sich der entsprechende Kontakt zur Anzeige.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/auge-symbol.png" alt="auge symbol">
+</div>
+<div class="title">Figure 2. Auge-Symbol zum Anzeigen eines Kontakts</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Auge-Symbol ist nur bei der "Lesenden Rolle" sichtbar.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="kontakt-bearbeiten"><a class="anchor" href="#kontakt-bearbeiten"></a>3.2.2. Kontakt bearbeiten</h4>
+<div class="paragraph">
+<p>Über folgendes Symbol öffnet sich der entsprechende Kontakt
+zur Bearbeitung.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/stift-symbol.png" alt="stift symbol">
+</div>
+<div class="title">Figure 3. Stift-Symbol zum Bearbeiten eines Kontakts</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Stift-Symbol ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_kontakt_löschen"><a class="anchor" href="#_kontakt_löschen"></a>3.2.3. Kontakt löschen</h4>
+<div class="paragraph">
+<p>Kontakte können nicht entfernt, sondern lediglich <a href="#dsgvo-anonymisieren">anonymisiert</a> werden.
+Die einzige Ausnahme bilden die <a href="#ansprechparter-loeschen">Ansprechpartner eines Unternehmens</a>,
+die entfernt werden können.</p>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Anonymisieren und löschen ist nur bei der "Schreibenden Rolle" und der Rolle "Administrator" sichtbar.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect3">
+<h4 id="kontakt-erstellen"><a class="anchor" href="#kontakt-erstellen"></a>3.2.4. Kontakt anlegen</h4>
+<div class="paragraph">
+<p>Ist ein Benutzer mit der Benutzerrolle "Schreibende Rolle" angemeldet,
+so besteht die Möglichkeit über die Schaltfläche "Neuen Kontakt anlegen" einen
+neuen Kontakt hinzuzufügen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/auswahl-kontakt-anlegen.png" alt="auswahl kontakt anlegen">
+</div>
+<div class="title">Figure 4. Schaltfläche zum Erstellen von Kontakten</div>
+</div>
+<div class="paragraph">
+<p>Hier muss der Bearbeiter den Kontakttyp bestimmen:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 2. Kontakttypen</caption>
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Kontakttyp</th>
+<th class="tableblock halign-left valign-top">Erläuterung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Interner Kontakt</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Eine natürliche Person, die dem Unternehmen angehört</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Externer Kontakt</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Eine natürliche Person, die dem Unternehmen nicht angehört</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Unternehmen</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="ulist">
+<ul>
+<li>
+<p>Eine juristische Person</p>
+</li>
+</ul>
+</div></div></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Anschließend öffnet sich die Eingabemaske für den ausgewählten Kontakttypen.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_kontakttypen"><a class="anchor" href="#_kontakttypen"></a>3.3. Kontakttypen</h3>
+<div class="sect3">
+<h4 id="_interne_person"><a class="anchor" href="#_interne_person"></a>3.3.1. Interne Person</h4>
+<div class="paragraph">
+<p>Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.</p>
+</div>
+<div class="paragraph">
+<p>Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/interne-person-1.png" alt="interne person 1">
+</div>
+<div class="title">Figure 5. Basis-Informationen eines Kontakts am Beispiel einer internen Person</div>
+</div>
+<div class="paragraph">
+<p>Eine interne Person besitzt folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 3. Attribute einer internen Person</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname der natürlichen Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nachname der natürlichen Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">z.B. Prof. oder Dr.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anrede</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl einer Anrede, z.B. Herr oder Frau</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Personentyp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines Personentyps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">LDAP User</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Bezeichnung des Benutzers im Unternehmens-LDAP. Im linken Feld kann durch Erfassung eines Namens im LDAP gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Portal User</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Bezeichnung des Benutzers im Portal. Im linken Feld kann durch Erfassung eines Namens im Portal gesucht werden. Der ausgewählte Benutzer (im rechten Feld) wird zur Synchronisation verwendet.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Abteilung</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Abteilung der Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zur Person</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Um den Kontakt zu speichern, muss die folgende Schaltfläche betätigt werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/speichern.png" alt="speichern">
+</div>
+<div class="title">Figure 6. Schaltfläche zum Speichern</div>
+</div>
+<div class="paragraph">
+<p>Wenn die neu erfassten Daten nicht gespeichert werden sollen, dann ist folgende Schaltfläche zu drücken:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/abbrechen.png" alt="abbrechen">
+</div>
+<div class="title">Figure 7. Schaltfläche zum Abbrechen (ohne speichern)</div>
+</div>
+<div class="paragraph">
+<p>Anschließend erscheint ein Dialog, der mit "Ja" zu bestätigen ist.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/dialog-nach-abbrechen.png" alt="dialog nach abbrechen">
+</div>
+<div class="title">Figure 8. Dialog nach Abbrechen</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_externe_person"><a class="anchor" href="#_externe_person"></a>3.3.2. Externe Person</h4>
+<div class="paragraph">
+<p>Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.</p>
+</div>
+<div class="paragraph">
+<p>Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/externe-person-1.png" alt="externe person 1">
+</div>
+<div class="title">Figure 9. Basis-Informationen eines Kontakts am Beispiel einer externen Person</div>
+</div>
+<div class="paragraph">
+<p>Eine externe Person besitzt folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 4. Attribute einer externen Person</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname der natürlichen Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nachname der natürlichen Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">z.B. Prof. oder Dr.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anrede</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl einer Anrede, z.B. Herr oder Frau</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Personentyp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines Personentyps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zur Person</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_unternehmen"><a class="anchor" href="#_unternehmen"></a>3.3.3. Unternehmen</h4>
+<div class="paragraph">
+<p>Die Basisinformationen eines Kontakts befindet sich im oberen
+Teil des Benutzerdialogs.</p>
+</div>
+<div class="paragraph">
+<p>Pflichtfelder sind farblich markiert. Zunächst sind diese rot. Erst wenn die
+Inhalte entsprechend eingetragen sind, ändert sich die Markierung auf grün.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/unternehmen.png" alt="unternehmen">
+</div>
+<div class="title">Figure 10. Basis-Informationen eines Kontakts am Beispiel eines Unternehmens</div>
+</div>
+<div class="paragraph">
+<p>Ein Unternehmen besitzt folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 5. Attribute eines Unternehmens</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nachname der natürlichen Person</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Rechtsform</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">z.B. GmbH oder AG</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Handelsregisternummer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nummer in der Form HR A 11111</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zum unternehmen</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_ansprechpartner"><a class="anchor" href="#_ansprechpartner"></a>3.3.4. Ansprechpartner</h4>
+<div class="paragraph">
+<p>Der Ansprechpartner ist kein eigener Kontakttyp. Dieser kann ausschließlich
+ <a href="#ansprechpartner-unternehmen">über das Unternehmen erfasst werden, zudem der Ansprechpartner gehört.</a></p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_weitere_informationen_zu_einem_kontakt"><a class="anchor" href="#_weitere_informationen_zu_einem_kontakt"></a>3.4. Weitere Informationen zu einem Kontakt</h3>
+<div class="paragraph">
+<p>Die Detailinformationen zu einem Kontakt befinden sich im unteren
+Teil der Erfassungsmaske in aufklappbaren Bereichen:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/unternehmen-2.png" alt="unternehmen 2">
+</div>
+<div class="title">Figure 11. Detail-Informationen eines Kontakts</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Bei der Neu-Anlage eines Kontakts sind die Details zunächst nicht sichtbar. Erst nach dem Speichern und dem erneuten Aufruf des neuen Kontakts werden die folgenden Detailinformationen angezeigt.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Dieser Bereich ist in folgende Abschnitte unterteilt:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Adressen</p>
+</li>
+<li>
+<p>Kommunikationskanäle</p>
+</li>
+<li>
+<p>Modulzuordnung</p>
+</li>
+<li>
+<p>Ansprechpartner (nur bei Unternehmen)</p>
+</li>
+</ul>
+</div>
+<div class="sect3">
+<h4 id="_adressen"><a class="anchor" href="#_adressen"></a>3.4.1. Adressen</h4>
+<div class="paragraph">
+<p>Die Adressliste beinhaltet alle Adressen der internen Person. Eine Adresse besteht aus folgenden Attributen:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 6. Attribute einer Adresse (Kontakt-Detailinformationen)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adresstyp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines Adresstyps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hauptadresse</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Checkbox</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Kennzeichen, ob dies die Hauptadresse ist (nur relevant, wenn mehrere Adressen vorhanden)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Postleitzahl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zahl</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adressdaten</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ort</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adressdaten</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adresse (Zusatz)</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adressdaten</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Straße</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adressdaten</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Hausnummer</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Adressdaten</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">WGS84-Zone</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">World Geodetic System 1984 für Positionsangaben</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Längengrad</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geographische Länge: Ein Winkel, der ausgehend vom Nullmeridian (0°) bis 180° in östlicher und 180° in westlicher Richtung angegeben wird</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Breitengrad</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Geographische Breite: Angabe in Grad, Minuten und Sekunden</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Google Maps URL</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">URL zu Google Maps mit den entsprechenden Parametern</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zur Person</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Der geöffnete Bereich sieht folgendermaßen aus:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/adresseliste-gefuellt.png" alt="adresseliste gefuellt">
+</div>
+<div class="title">Figure 12. Tabellenansicht der Adressen unter einem Kontakt</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neue Adresse anlegen" kann eine Adresse angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/adresse-anlegen.png" alt="adresse anlegen">
+</div>
+<div class="title">Figure 13. Maske zur Anlage einer Adresse unter einem Kontakt</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_kommunikationskanäle"><a class="anchor" href="#_kommunikationskanäle"></a>3.4.2. Kommunikationskanäle</h4>
+<div class="paragraph">
+<p>Die Kommunikationskanäle beinhalten alle Kontaktinformationen. Ein Kommunikationskanal besteht aus folgenden Attributen:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 7. Attribute eines Kommunikationskanals (Kontakt-Detailinformationen)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Typ</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines Kommunikationskanals</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Daten</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Kontaktinformationen des entsprechenden Kommunikationskanals</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zum Kommunikationskanal</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Der geöffnete Bereich sieht folgendermaßen aus:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kommunikationskanal-gefuellt.png" alt="kommunikationskanal gefuellt">
+</div>
+<div class="title">Figure 14. Tabellenansicht der Kommunikationskanäle unter einem Kontakt</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neuen Kommunikationskanal anlegen" kann ein Kommunikationskanal angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kommunikationskanal-anlegen.png" alt="kommunikationskanal anlegen">
+</div>
+<div class="title">Figure 15. Maske zur Anlage eines Kommunikationskanals unter einem Kontakt</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="zugeordnete-module"><a class="anchor" href="#zugeordnete-module"></a>3.4.3. Zugeordnete Module</h4>
+<div class="paragraph">
+<p>Die Modulzuordnung legt fest, in welchen Modulen der Kontakt genutzt wird.
+Des Weiteren kann hinterlegt werden, wie lange die Kontaktdaten mindestens
+aufbewahrt werden müssen und wann diese ablaufen.</p>
+</div>
+<div class="paragraph">
+<p>Eine Modulzuordnung besteht aus folgenden Attributen:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 8. Attribute einer Modulzuordnung (Kontakt-Detailinformationen)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Modulname</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines openKONSEQUENZ-Moduls</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Ablaufdatum</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zeitpunkt, ab wann die Kontaktdaten gemäß DSGVO gelöscht werden müssen</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Löschsperre bis</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Datum</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Zeitpunkt, bis wann die Kontaktdaten gemäß DSGVO nicht gelöscht werden dürfen</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zum Modul</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Der geöffnete Bereich sieht folgendermaßen aus:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/modulzuordnung-gefuellt.png" alt="modulzuordnung gefuellt">
+</div>
+<div class="title">Figure 16. Tabellenansicht der Modulzuordnungen unter einem Kontakt</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neue Modulzuordnung anlegen" kann eine Modulzuordnung angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/modul-zuordnen.png" alt="modul zuordnen">
+</div>
+<div class="title">Figure 17. Maske zur Anlage einer Modulzuordnung unter einem Kontakt</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="ansprechpartner-unternehmen"><a class="anchor" href="#ansprechpartner-unternehmen"></a>3.4.4. Ansprechpartner (nur bei Unternehmen)</h4>
+<div class="paragraph">
+<p>Die Ansprechpartner sind Personen, die zu einem Unternehmen gehören. Deshalb gibt es diese Daten nur bei dem Kontakttyp Unternehmen.
+Ein Ansprechpartner besitzt folgende Attribute:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<caption class="title">Table 9. Attribute eines Ansprechpartners (Kontakt-Detailinformationen)</caption>
+<colgroup>
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+<col style="width: 25%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Attribut</th>
+<th class="tableblock halign-left valign-top">Pflichtfeld</th>
+<th class="tableblock halign-left valign-top">Inhaltsart</th>
+<th class="tableblock halign-left valign-top">Beschreibung</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Vorname des Ansprechpartners</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Name</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ja</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Nachname des Ansprechpartners</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Titel</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">z.B. Prof. oder Dr.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Anrede</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl einer Anrede, z.B. Herr oder Frau</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Personentyp</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahlfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Auswahl eines Personentyps</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Notiz</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nein</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Textfeld</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Beliebige Hinweise zum Ansprechpartner</p></td>
+</tr>
+</tbody>
+</table>
+<div class="paragraph">
+<p>Der geöffnete Bereich sieht folgendermaßen aus:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/ansprechpartner-gefuellt.png" alt="ansprechpartner gefuellt">
+</div>
+<div class="title">Figure 18. Tabellenansicht der Ansprechpartner unter einem Kontakt</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neuen Ansprechpartner anlegen" kann ein Ansprechpartner angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/ansprechpartner-anlegen.png" alt="ansprechpartner anlegen">
+</div>
+<div class="title">Figure 19. Maske zur Anlage eines Ansprechpartners unter einem Kontakt</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="ansprechparter-loeschen"><a class="anchor" href="#ansprechparter-loeschen"></a>3.4.5. Löschen von weiteren Informationen eines Kontakts</h4>
+<div class="paragraph">
+<p>Über das folgende Symbol in der Tabelle kann der entsprechende Eintrag
+(Adresse, Kommunikationskanal, Modulzuordnung oder Ansprechpartner)
+gelöscht werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/loesch-symbol.png" alt="loesch symbol">
+</div>
+<div class="title">Figure 20. Löschen-Symbol</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Mülleimer-Symbol ist nur bei der "Schreibenden Rolle" und bei der Rolle "Administrator" sichtbar.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Die Löschfunktion steht nur beim Kontakttyp "Ansprechpartner" zur Verfügung. Andere Kontakte können nicht gelöscht werden.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Nach Klick auf das Löschen-Symbol erscheint ein Dialog, der mit "Ja" zu bestätigen ist.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/meldung-loeschen.png" alt="meldung loeschen">
+</div>
+<div class="title">Figure 21. Dialog nach Klick auf Löschen</div>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="dsgvo-funktionen"><a class="anchor" href="#dsgvo-funktionen"></a>4. DSGVO-Funktionen</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Das Modul Kontaktstammdaten ermöglicht für eine openKONSEQUENZ-Installation
+die zentrale Umsetzung der DSGVO-Aufgaben:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Alle Informationen zu einem Kontakt finden</p>
+</li>
+<li>
+<p>Gültigkeitszeiträume für Personendaten festlegen</p>
+</li>
+<li>
+<p>Sperrfristen für Personendaten festlegen</p>
+</li>
+<li>
+<p>Abgelaufene Kontakte identifizieren</p>
+</li>
+<li>
+<p>Kontakte anonymisieren</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="dsgvo-erfassen"><a class="anchor" href="#dsgvo-erfassen"></a>4.1. Erfassung der DSGVO-Informationen zu einem Kontakt</h3>
+<div class="paragraph">
+<p>Kontaktdaten können grundsätzlich in mehreren openKONSEQUENZ-Modulen verwendet werden.
+Deshalb ist es bei jedem Kontakt (Interne und externe Person) möglich, die einzelnen
+Module bei den Detailinformationen unter <a href="#zugeordnete-module">Zugeordnete Module</a>
+zu erfassen.</p>
+</div>
+<div class="paragraph">
+<p>In diesem Vorgang können zu jeder Modulzuordnung weitere DSGVO-relevante Informationen
+hinterlegt werden:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>openKONSEQUENZ-Modul: Modul, dass diesen Kontakt verwendet</p>
+</li>
+<li>
+<p>Zuweisungsdatum: Wann der Kontakt erstmalig dem Modul verwendet wurde</p>
+</li>
+<li>
+<p>Ablaufdatum: Zeitpunkt nachdem der Kontakt zu anonymisieren ist</p>
+</li>
+<li>
+<p>Löschsperre bis: Zeitpunkt bis wann der Kontakt nicht anonymisiert werden darf</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Ein Beispiel für einen Kontakt mit mehreren Modulzuordnungen:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/dsgvo-module.png" alt="dsgvo module">
+</div>
+<div class="title">Figure 22. Beispiel Modulzuordnungen</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="dsgvo-suche"><a class="anchor" href="#dsgvo-suche"></a>4.2. Abgelaufene Kontakte identifizieren</h3>
+<div class="paragraph">
+<p>In der Hauptübersicht befindet sich eine DSGVO-Suchfunktion. Mit dieser Suche
+können folgende DSGVO-Informationen abgefragt werden:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Auswahl Module</p>
+</li>
+<li>
+<p>Ablaufdatum überschritten</p>
+</li>
+<li>
+<p>Löschsperre abgelaufen</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Des Weiteren kann diese Suche mit den Such-Kriterien der Standardsuche kombiniert werden.
+Das folgende Beispiel zeigt eine Suche nach abgelaufenen Kontakten:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/dsgvo-suche.png" alt="dsgvo suche">
+</div>
+<div class="title">Figure 23. DSGVO-Suche</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Es erfolgt keine automatische Anonymisierung nachdem das Ablaufdatum und/oder die Löschsperre abgelaufen sind.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="dsgvo-anonymisieren"><a class="anchor" href="#dsgvo-anonymisieren"></a>4.3. Kontakt anonymisieren</h3>
+<div class="paragraph">
+<p>Kontakte einer openKONSEQUENZ-Installation werden ausschließlich über das Modul
+Kontaktstammdaten anonymisiert. Dabei ist folgendes zu beachten:</p>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Das Anonymisieren von Kontakten erfolgt immer manuell und für jeden Kontakt einzeln.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Des Weiteren sind entsprechende Berechtigungen notwendig:</p>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Für das Anonymisieren von Kontakten ist die "Schreibende Rolle" oder die Rolle "Administrator" notwendig.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Sind alle Voraussetzung erfüllt, wird der Kontakt wird über das <a href="#kontakt-bearbeiten">Bearbeiten-Symbol</a> in der Haupttabelle
+aufgerufen, anschließend öffnet sich die Erfassungsmaske zur Bearbeitung eines
+Kontakts:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/dsgvo-anonymisieren-vorher.png" alt="dsgvo anonymisieren vorher">
+</div>
+<div class="title">Figure 24. Kontaktansicht mit Anonymisieren-Button</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Anonymisieren" erfolgt das Unkenntlichmachen des Kontakts.
+Dazu wird der Name auf "* * *" geändert und alle anderen Felder geleert.</p>
+</div>
+<div class="paragraph">
+<p>Zuvor muss aber noch der folgende Dialog bestätigt werden:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/dsgvo-anonymisieren-hinweis.png" alt="dsgvo anonymisieren hinweis">
+</div>
+<div class="title">Figure 25. Hinweis vor dem Anonymisieren</div>
+</div>
+<div class="paragraph">
+<p>Ist dies erfolgt, öffnet sich anschließend die Hauptansicht und der anonymisierte
+Kontakt ist nicht mehr auffindbar.</p>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Ein anonymisierter Kontakt kann nicht wiederhergestellt werden.
+</td>
+</tr>
+</table>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="verwaltung-stammdaten"><a class="anchor" href="#verwaltung-stammdaten"></a>5. Verwaltung der Stammdaten</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Die Funktionen zur Verwaltung der Stammdaten verbirgt sich hinter dem folgenden
+Symbol in der Menüleiste:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/admin-menue-symbol.png" alt="admin menue symbol">
+</div>
+<div class="title">Figure 26. Symbol zum Aufruf der Stammdaten-Verwaltung</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Die Stammdaten-Verwaltung ist nur für die Rolle "Administrator" verfügbar.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Es können folgende Stammdaten bearbeitet werden:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Anreden</p>
+</li>
+<li>
+<p>Adresstypen</p>
+</li>
+<li>
+<p>Kommunikationstypen</p>
+</li>
+<li>
+<p>Personentypen</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="_anreden"><a class="anchor" href="#_anreden"></a>5.1. Anreden</h3>
+<div class="paragraph">
+<p>Nach dem Aufruf der Anreden-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Anreden:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/uebersicht-anrede.png" alt="uebersicht anrede">
+</div>
+<div class="title">Figure 27. Tabellenansicht der Anreden</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/anrede-anlegen.png" alt="anrede anlegen">
+</div>
+<div class="title">Figure 28. Maske zur Anlage von Anreden</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_adresstypen"><a class="anchor" href="#_adresstypen"></a>5.2. Adresstypen</h3>
+<div class="paragraph">
+<p>Nach dem Aufruf der Adresstypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Adresstypen:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/adresstypen-uebersicht.png" alt="adresstypen uebersicht">
+</div>
+<div class="title">Figure 29. Tabellenansicht der Adresstypen</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/adresstyp-anlegen.png" alt="adresstyp anlegen">
+</div>
+<div class="title">Figure 30. Maske zur Anlage eines Adresstyps</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_kommunikationstypen"><a class="anchor" href="#_kommunikationstypen"></a>5.3. Kommunikationstypen</h3>
+<div class="paragraph">
+<p>Nach dem Aufruf der Kommunikationstypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Kommunikationstypen:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kommunikationstypen-uebersicht.png" alt="kommunikationstypen uebersicht">
+</div>
+<div class="title">Figure 31. Tabellenansicht der Kommunikationstypen</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kommunikationstypen-anlegen.png" alt="kommunikationstypen anlegen">
+</div>
+<div class="title">Figure 32. Maske zur Anlage eines Kommunikationstypens</div>
+</div>
+<div class="paragraph">
+<p>Einige Einträge sind in der Standardkonfiguration enthalten und dürfen somit
+nicht geändert werden. Diese sind in der Übersichtstabelle mit einem Auge-Symbol
+gekennzeichnet. Wird der entsprechende Eintrag über dieses Symbol geöffnet,
+so können keine Anpassungen vorgenommen werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/kommunikationstyp-nur-ansicht.png" alt="kommunikationstyp nur ansicht">
+</div>
+<div class="title">Figure 33. Maske zur Ansicht eines Kommunikationstyps</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_personentypen"><a class="anchor" href="#_personentypen"></a>5.4. Personentypen</h3>
+<div class="paragraph">
+<p>Nach dem Aufruf der Personentypen-Verwaltung erscheint die Übersicht mit allen bereits
+angelegten Personentypen:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/personentypen-uebersicht.png" alt="personentypen uebersicht">
+</div>
+<div class="title">Figure 34. Tabellenansicht der Personentypen</div>
+</div>
+<div class="paragraph">
+<p>Über die Schaltfläche "Neu" kann ein Eintrag angelegt werden.
+Anschließend öffnet sich die folgende Maske, die auch bei der Bearbeitung zum Einsatz kommt:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/personentypen-anlegen.png" alt="personentypen anlegen">
+</div>
+<div class="title">Figure 35. Maske zur Anlage eines Personentyps</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="meldungen-hinweise"><a class="anchor" href="#meldungen-hinweise"></a>6. Hinweise und Meldungen nach Benutzeraktionen</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Nach Benutzeraktionen erscheinen in bestimmten Fällen Meldungen des Systems,
+um den Benutzer:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Handlungsanweisungen zu geben,</p>
+</li>
+<li>
+<p>über Fehler des Systems zu informieren.</p>
+</li>
+</ul>
+</div>
+<div class="sect2">
+<h3 id="_erfolg_einer_aktion"><a class="anchor" href="#_erfolg_einer_aktion"></a>6.1. Erfolg einer Aktion</h3>
+<div class="paragraph">
+<p>Ist eine Benutzeraktion erfolgreich, so erscheint keine Meldung.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_handlungsanweisung"><a class="anchor" href="#_handlungsanweisung"></a>6.2. Handlungsanweisung</h3>
+<div class="paragraph">
+<p>In einigen Situationen muss der Benutzer weitere Aktionen ausführen, damit die
+Handlung erfolgreich abgeschlossen werden kann. Diese gelb hinterlegten Hinweise
+erscheinen im folgenden Fall:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Fehlenden Informationen (Pflichtfelder füllen)</p>
+</li>
+<li>
+<p>LDAP- und Auth&amp;Auth-User dürfen für einen Kontakt nicht gleichzeitig synchronisiert werden</p>
+</li>
+</ul>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/meldung-hinweis.png" alt="meldung hinweis">
+</div>
+<div class="title">Figure 36. Hinweis Pflichtfelder</div>
+</div>
+<div class="paragraph">
+<p>Diese Meldungen bleiben für fünf Sekunden sichtbar und verschwinden dann wieder
+automatisch.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_fehlermeldungen"><a class="anchor" href="#_fehlermeldungen"></a>6.3. Fehlermeldungen</h3>
+<div class="paragraph">
+<p>Wenn Aktionen aufgrund technischer Gegebenheiten nicht erfolgreich durchgeführt
+werden können, erscheinen rot hinterlegte Fehlermeldungen. Das kann u.a. in
+folgenden Situationen passieren:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Speichern fehlgeschlagen</p>
+</li>
+<li>
+<p>Web Services nicht verfügbar</p>
+</li>
+</ul>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/meldung-fehler.png" alt="meldung fehler">
+</div>
+<div class="title">Figure 37. Fehlermeldung</div>
+</div>
+<div class="paragraph">
+<p>Diese Meldungen bleiben solange sichtbar bis sie durch den Benutzer über das
+kleine x geschlossen werden. In diesen Fällen ist der Administrator zu
+informieren.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_allgemeine_funktionen"><a class="anchor" href="#_allgemeine_funktionen"></a>7. Allgemeine Funktionen</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_an_und_abmelden"><a class="anchor" href="#_an_und_abmelden"></a>7.1. An- und abmelden</h3>
+<div class="sect3">
+<h4 id="_modul_kontaktstammdaten_aus_portal_starten"><a class="anchor" href="#_modul_kontaktstammdaten_aus_portal_starten"></a>7.1.1. Modul "Kontaktstammdaten" aus Portal starten</h4>
+<div class="paragraph">
+<p>Nach erfolgreicher Anmeldung am openKONSEQUENZ-Portal und mit entsprechender
+Berechtigung für das Modul "Kontaktstammdaten" ist die Kachel für das Modul
+sichtbar. Mit einem Klick auf die Kachel startet das Modul "Kontaktstammdaten"
+in einem neuen Fenster.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/oeffnen-modul.png" alt="oeffnen modul">
+</div>
+<div class="title">Figure 38. Kachel zum Starten des Moduls "Kontaktstammdaten"</div>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_abmelden"><a class="anchor" href="#_abmelden"></a>7.1.2. Abmelden</h4>
+<div class="paragraph">
+<p>Die Schaltfläche zum Abmelden befindet sich hinter dem Benutzernamen.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/abmelden.png" alt="abmelden">
+</div>
+<div class="title">Figure 39. Abmelden vom openKONSEQUENZ-System</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Beim Klick auf "Abmelden" erfolgt nicht nur die Abmeldung vom Modul
+Kontaktstammdaten, sondern die Abmeldung vom Portal. D.h. alle parallel geöffneten
+openKONSEQUENZ-Module (wie z.B. Betriebstagebuch, Geplante Netzmaßnahme) werden
+automatisch mit abgemeldet.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Um die parallel geöffneten openKONSEQUENZ-Module nicht mit abzumelden, ist
+lediglich das Browserfenster mit dem Modul Kontaktstammdaten zu schließen.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_home_button"><a class="anchor" href="#_home_button"></a>7.2. Home-Button</h3>
+<div class="paragraph">
+<p>Über den folgenden Home-Button in der Menüleiste kann jederzeit zur Tabellenansicht
+zurückgekehrt werden.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/haus-symbol.png" alt="haus symbol">
+</div>
+<div class="title">Figure 40. Home-Button</div>
+</div>
+<div class="admonitionblock caution">
+<table>
+<tr>
+<td class="icon">
+<img src="../images/icons/caution.png" alt="Caution">
+</td>
+<td class="content">
+Der Aufruf des Home-Buttons setzt die Suche, Filter und Sortierfunktion wieder zurück, sodass die Standardansicht wiederhergestellt ist.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="suche-suche"><a class="anchor" href="#suche-suche"></a>7.3. Suche</h3>
+<div class="paragraph">
+<p>In der Übersicht ist eine Such-Funktion integriert, die eingegebenen Zeichen in
+den Datensätzen der Kontaktstammdaten sucht. Bei der Suche werden alle Felder
+berücksichtigt.</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/suche-beispiel.png" alt="suche beispiel">
+</div>
+<div class="title">Figure 41. Suchfunktion</div>
+</div>
+<div class="paragraph">
+<p>Das Auswahlfeld "Kontakttypen" bestimmt den Suchumfang:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Alle Kontakttypen</p>
+</li>
+<li>
+<p>Interne Personen</p>
+</li>
+<li>
+<p>Externe Personen</p>
+</li>
+<li>
+<p>Unternehmen</p>
+</li>
+<li>
+<p>Ansprechpartner</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Die Suche wird direkt beim Eintippen des Suchbegriffs bzw. bei der Auswahl
+eines Filterkriteriums ausgeführt.</p>
+</div>
+<div class="paragraph">
+<p>Darüber hinaus steht eine <a href="#dsgvo-suche">DSGVO-Suche</a> zur Verfügung.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="sortieren"><a class="anchor" href="#sortieren"></a>7.4. Sortieren</h3>
+<div class="paragraph">
+<p>Die Sortierung in der Haupttabelle erfolgt über zwei Auswahlfelder:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/auswahl-sortierung.png" alt="auswahl sortierung">
+</div>
+<div class="title">Figure 42. Auswahl des Attributs für die Sortierung</div>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/auswahl-sortierung-2.png" alt="auswahl sortierung 2">
+</div>
+<div class="title">Figure 43. Auswahl der Reihenfolge</div>
+</div>
+<div class="paragraph">
+<p>Nach Auswahl der entsprechenden Felder erfolgt die Suche automatisch.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_hilfe"><a class="anchor" href="#_hilfe"></a>7.5. Hilfe</h3>
+<div class="paragraph">
+<p>Diese Benutzerdokumentation ist über das Hilfe-Symbol in der Kopfzeile erreichbar:</p>
+</div>
+<div class="imageblock">
+<div class="content">
+<img src="../images/hilfe.png" alt="hilfe">
+</div>
+<div class="title">Figure 44. Hilfe-Symbol</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_synchronisierung_mit_verzeichnisdiensten"><a class="anchor" href="#_synchronisierung_mit_verzeichnisdiensten"></a>7.6. Synchronisierung mit Verzeichnisdiensten</h3>
+<div class="paragraph">
+<p>Die Aktivierung der Synchronisierung der Kontaktstammdaten mit den Verzeichnisdiensten
+LDAP und/oder Auth&amp;Auth erfolgt durch den Administrator.</p>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_kompatibilität"><a class="anchor" href="#_kompatibilität"></a>8. Kompatibilität</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Die Anwendung ist für folgende Endgeräte optimiert:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Desktop-PC</p>
+</li>
+<li>
+<p>Tablet</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Es unterstützt folgende Browser:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Google Chrome</p>
+</li>
+<li>
+<p>Firefox</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Die Bildschirmauflösung bzw. die Fenstergröße des Browsers sollte folgende
+Werte nicht unterschreiten:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>1.024 x 768 Pixel</p>
+</li>
+</ul>
+</div>
+<div style="page-break-after: always;"></div>
+</div>
+</div>
+        </div>
+      </div>
+    </body>
+  </html>
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
index f608005..321ec63 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/LdapService.java
@@ -27,7 +27,7 @@
 @Service
 public class LdapService {
 
-    @Value("${ldap.enabled}")
+    @Value("${authnauth-sync.scheduling.enabled}")
     private Boolean ldapEnabled;
 
     @Value("${ldap-sync.attribute-mapping.uid}")
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 4385016..6e2d89d 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -24,8 +24,6 @@
     port: 10389
     urls: ldap://entopkon:10389
 
-ldap:
-  enabled: true
 ldap-sync:
   attribute-mapping:
     uid: uid
@@ -41,7 +39,7 @@
     telephone-number-id: 2
   scheduling:
     enabled: false
-    cron-expression: '*/10 * * * * *'
+    cron-expression: '0 0 0 * * ?'
 
 authnauth-sync:
   attribute-mapping:
@@ -49,9 +47,9 @@
     firstname: true
   scheduling:
     enabled: false
-    cron-expression: '*/10 * * * * *'
-  technical-userpassword: admin
+    cron-expression: '0 0 0 * * ?'
   technical-username: admin
+  technical-userpassword: admin
 
 server:
   max-http-header-size: 262144
@@ -92,8 +90,9 @@
 flyway:
   enabled: false
 
-ldap:
-  enabled: false
+ldap-sync:
+  scheduling:
+    enabled: false
 
 jwt:
   tokenHeader: Authorization
@@ -111,8 +110,6 @@
   staticJwt: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJIYlI3Z2pobmE2eXJRZnZJTWhUSV9tY2g3ZmtTQWVFX3hLTjBhZVl0bjdjIn0.eyJqdGkiOiI5MGI0NGFkOC1iYjlmLTQ1MzktYTQwYy0yYjQyZTNkNjNiOGEiLCJleHAiOjE1Nzg2NTU3OTUsIm5iZiI6MCwiaWF0IjoxNTc4NjU1NDk1LCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvRWxvZ2Jvb2siLCJhdWQiOiJlbG9nYm9vay1iYWNrZW5kIiwic3ViIjoiODYyNjY5NmYtZjFhMi00ZGI1LTkyZWYtZTlhMjQ2Njg1YTU0IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiZWxvZ2Jvb2stYmFja2VuZCIsImF1dGhfdGltZSI6MCwic2Vzc2lvbl9zdGF0ZSI6IjJmMWIzODE5LWZjNjQtNDEzNC1iNWQxLWY3ZWY4NzU5NDBkNCIsImFjciI6IjEiLCJhbGxvd2VkLW9yaWdpbnMiOlsiKiJdLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsia29uLWFkbWluIiwia29uLXdyaXRlciIsImtvbi1hY2Nlc3MiLCJrb24tcmVhZGVyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnt9LCJuYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSBUZXN0ZXJMYXN0bmFtZV9yd2EiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJ0ZXN0dXNlcl9yd2EiLCJnaXZlbl9uYW1lIjoiVGVzdGVyRmlyc3RuYW1lX3J3YSIsImZhbWlseV9uYW1lIjoiVGVzdGVyTGFzdG5hbWVfcndhIn0.DAYXuv4tKn8RXqO1jyttnD-tF4nShUBQyfe4bKbAiPAyY2x5YbAf3M4eXnLrGqo8-loGKldICC28bL0LaMA3KKkQEOfW5sfpGqoN6212vs89mOklt0TJYc5PMXwFgJ5WC_TKjdwq7-aaDafOEWehV0U1ut3s-94ovNYIEn29nzXm2W1ldoXJEq03F880jlysQ5zlRvGF7eXEEpFfI2URyyNQ2UWh0Ssfq-gOAt2pbF1u6prA5RfvUmZ3v1eu21YLGZtgqPqxb1l6odyH3ip15j_HdgnTeo52ymxuRUj65Mskme3V5ev2DitHI9vZgnpV8Idhb4TTWliBeGCOMfDFCg
 
 
-ldap:
-  enabled: true
 ldap-sync:
   attribute-mapping:
     uid: uid
@@ -137,8 +134,8 @@
   scheduling:
     enabled: false
     cron-expression: '*/12 * * * * *'
-  technical-userpassword: admin
   technical-username: admin
+  technical-userpassword: admin
 
 server:
   port: 9155
@@ -155,9 +152,9 @@
 spring:
   profiles: devserver
 
-
-ldap:
-  enabled: true
+ldap-sync:
+  scheduling:
+    enabled: true
 
 jwt:
   tokenHeader: Authorization
@@ -176,8 +173,9 @@
 spring:
   profiles: devserver-unsecure
 
-ldap:
-  enabled: true
+ldap-sync:
+  scheduling:
+    enabled: true
 
 jwt:
   tokenHeader: Authorization
@@ -201,8 +199,9 @@
   flyway:
     enabled: false
 
-ldap:
-  enabled: false
+ldap-sync:
+  scheduling:
+    enabled: false
 
 server:
   port: 9155
diff --git a/src/main/resources/application_localdev.yml b/src/main/resources/application_localdev.yml
index cbd9380..9f105ab 100644
--- a/src/main/resources/application_localdev.yml
+++ b/src/main/resources/application_localdev.yml
@@ -24,8 +24,6 @@
     port: 10389
     urls: ldap://entopkon:10389
 
-ldap:
-  enabled: true
 ldap-sync:
   attribute-mapping:
     uid: uid
@@ -50,8 +48,8 @@
   scheduling:
     enabled: false
     cron-expression: '*/10 * * * * *'
-  technical-userpassword: admin
   technical-username: admin
+  technical-userpassword: admin
 
 server:
   port: 9155