From 7d31187663154286b4a49beaf49d98ffd004ec06 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 24 Apr 2021 08:33:16 +0000
Subject: [PATCH] UI-Anpassungen

---
 src/de/uhilger/mediaz/api/StorageHandler.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/src/de/uhilger/mediaz/api/StorageHandler.java b/src/de/uhilger/mediaz/api/StorageHandler.java
index 4fb549e..f84629f 100644
--- a/src/de/uhilger/mediaz/api/StorageHandler.java
+++ b/src/de/uhilger/mediaz/api/StorageHandler.java
@@ -23,6 +23,7 @@
 import static de.uhilger.mediaz.App.RB_EP_LISTE;
 import static de.uhilger.mediaz.App.RB_EP_LISTE_ALLES;
 import de.uhilger.mediaz.Server;
+import de.uhilger.mediaz.entity.Ablageort;
 import de.uhilger.mediaz.store.FileStorage;
 import de.uhilger.mediaz.entity.Entity;
 import de.uhilger.mediaz.entity.Geraet;
@@ -49,8 +50,9 @@
 /**
  * HttpHandler fuer die Verwaltung von Entitaeten der Mediazentrale
  * 
- * /mz/api/store/[name]/liste
- * /mz/api/store/[name]/listealles  (nur Typ Geraet)
+ * GET /mz/api/store/[typname]/[name]
+ * GET /mz/api/store/[typname]/liste
+ * GET /mz/api/store/[typname]/listealles  (nur Typ Geraet)
  * 
  * @author Ulrich Hilger
  * @version 1, 5.4.2021
@@ -72,11 +74,33 @@
       Object o = gson.fromJson(bodyLesen(e), fs.typeFromName(type).getType());
       if(o instanceof Entity) {
         Entity entity = (Entity) o;
-        if(fs.exists(type, elemName)) {
+        if(fs.exists(type, elemName)) { // Aenderung
           fs.delete(type, elemName);
+          // wenn Ablageort, hier noch alten Kontext entfernen
+          if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+            Entity aoe = fs.read(type, elemName);
+            if(aoe instanceof Ablageort) {
+              Ablageort ablageort = (Ablageort) aoe;
+              App.getServer().ablageortEntfernen(ablageort.getUrl());      
+            }
+          }
           fs.write(entity, true);
-        } else {
+          // wenn Ablageort, hier noch neuen Kontext anlegen
+          if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+            if(entity instanceof Ablageort) {
+              Ablageort ablageort = (Ablageort) entity;
+              App.getServer().ablageortHinzufuegen(ablageort);
+            }
+          }
+        } else { // Neu
           fs.write(entity, false);
+          // wenn Ablageort, hier noch neuen Kontext anlegen
+          if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+            if(entity instanceof Ablageort) {
+              Ablageort ablageort = (Ablageort) entity;
+              App.getServer().ablageortHinzufuegen(ablageort);
+            }
+          }
         }
         return type + Server.SLASH + entity.getName();
       } else {
@@ -93,6 +117,14 @@
     String type = elems[elems.length - 2];
     String elemName = elems[elems.length - 1];
     FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
+    if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+      // im laufenden Server den Context entfernen
+      Entity entity = fs.read(type, elemName);
+      if(entity instanceof Ablageort) {
+        Ablageort ablageort = (Ablageort) entity;
+        App.getServer().ablageortEntfernen(ablageort.getUrl());      
+      }
+    }
     return fs.delete(type, elemName);
   }
   

--
Gitblit v1.9.3