Persoenliche Mediazentrale
ulrich
2021-04-21 a29f5ca76074f014d2a82390610797907528efc1
Unterscheidung und Verarbeitung Geraete-Liste mit allen Angaben (auch Status) oder nur Name
5 files modified
29 ■■■■ changed files
src/de/uhilger/mediaz/App.java 1 ●●●● patch | view | raw | blame | history
src/de/uhilger/mediaz/api/StorageHandler.java 21 ●●●●● patch | view | raw | blame | history
src/mediaz_de_DE.properties 1 ●●●● patch | view | raw | blame | history
www/ui/data/tpl/form_geraet.txt 1 ●●●● patch | view | raw | blame | history
www/ui/js/app.js 5 ●●●●● patch | view | raw | blame | history
src/de/uhilger/mediaz/App.java
@@ -56,6 +56,7 @@
  public static final String RB_AP_CTX = "appParamCtx"; 
  public static final String RB_AP_UI = "appParamUi"; 
  public static final String RB_EP_LISTE = "epliste"; 
  public static final String RB_EP_LISTE_ALLES = "eplisteAlles";
  public static final String RB_AUDIOEXTS = "audioexts";
  public static final String RB_VIDEOEXTS = "videoexts";
  public static final String RB_PLAYERPARAMS = "playerparams";
src/de/uhilger/mediaz/api/StorageHandler.java
@@ -21,6 +21,7 @@
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.mediaz.App;
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.store.FileStorage;
import de.uhilger.mediaz.entity.Entity;
@@ -28,16 +29,8 @@
import static de.uhilger.mediaz.store.FileStorage.ST_ABLAGEORT;
import static de.uhilger.mediaz.store.FileStorage.ST_GERAET;
import de.uhilger.mediaz.store.Storage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.URI;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
@@ -46,7 +39,6 @@
import java.net.http.HttpClient;
import java.net.http.HttpClient.Version;
import java.net.http.HttpClient.Redirect;
import java.net.http.HttpClient.Builder;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
@@ -56,6 +48,9 @@
/**
 * HttpHandler fuer die Verwaltung von Entitaeten der Mediazentrale
 *
 * /mz/api/store/[name]/liste
 * /mz/api/store/[name]/listealles  (nur Typ Geraet)
 * 
 * @author Ulrich Hilger
 * @version 1, 5.4.2021
@@ -107,7 +102,7 @@
    FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
    if(path.endsWith(Server.SLASH)) {
      List list = null;
      if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE))) {
      if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE_ALLES))) {
        String type = elems[elems.length - 2];
        logger.fine(type);
        if(type.equalsIgnoreCase(ST_GERAET)) {
@@ -115,9 +110,11 @@
          Gson gson = new Gson();
          Object o = gson.fromJson(bodyLesen(e), fs.typeFromName(type).getType());
          return gson.toJson(list);
        } else {
          list = fs.list(type);
        }
      } else if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE))) {
        String type = elems[elems.length - 2];
        logger.fine(type);
        list = fs.list(type);
        if(type.equalsIgnoreCase(ST_ABLAGEORT)) {
          list.add("Livestreams");
        }
src/mediaz_de_DE.properties
@@ -20,6 +20,7 @@
strg=/api/strg
gstrg=/api/gstrg
epliste=liste
eplisteAlles=listealles
stopServer=/api/server/stop
testAblage=/api/test/ablage
testStore=/api/test/store
www/ui/data/tpl/form_geraet.txt
@@ -4,6 +4,7 @@
    <input name="einUrl" class="entity-form-element" type="text" id="geraet-einurl" placeholder="URL (Ein)" value="{{einUrl}}" />
    <input name="ausUrl" class="entity-form-element" type="text" id="geraet-ausurl" placeholder="URL (Aus)" value="{{ausUrl}}" />
    <input name="statusUrl" class="entity-form-element" type="text" id="geraet-statusurl" placeholder="URL (Status)" value="{{statusUrl}}" />
    <input name="status" class="entity-form-element" type="hidden" id="geraet-status" placeholder="URL (Status)" value="{{status}}" />
    <div class="entity-buttons">
      <button type="submit" class="button-primary" id="ok-btn">Speichern</button>
      <button type="button" class="button" id="cancel-btn">Abbrechen</button>
www/ui/js/app.js
@@ -156,7 +156,7 @@
  };
  
  this.geraet_schalt_liste = function() {
    self.entitaet_liste('Geräte schalten','../api/store/Geraet/liste/',
    self.entitaet_liste('Geräte schalten','../api/store/Geraet/listealles/',
      "data/tpl/geraet_schalt_liste.txt", '../api/store/Geraet/', 
      "self.form_geraet_status", function(responseText) {
        var geraet = JSON.parse(responseText);
@@ -889,9 +889,10 @@
  this.album  = a;
}
function Geraet(n, e, a, s) {
function Geraet(n, e, a, s, st) {
  this.name = n;
  this.einUrl = e;
  this.ausUrl = a;
  this.statusUrl = s;
  this.status = st;
}