From 3929b0fe2a7678b31f8971c9b9eb4536330f6c80 Mon Sep 17 00:00:00 2001 From: ulrich Date: Wed, 14 Apr 2021 16:26:58 +0000 Subject: [PATCH] Entitaet Geraet hinzugenommen, Aenderungen an Menues und UI --- src/de/uhilger/mediaz/store/FileStorage.java | 4 + www/ui/data/menu/hauptmenue.json | 34 ---------- www/ui/data/tpl/form_geraet.txt | 13 ++++ www/ui/data/menu/einstellungen.json | 43 ++++++++++++++ www/ui/js/app.js | 25 ++++++++ src/de/uhilger/mediaz/entity/Geraet.java | 30 ++++++++++ www/ui/data/tpl/geraet_liste.txt | 7 ++ www/ui/index.html | 5 + 8 files changed, 127 insertions(+), 34 deletions(-) diff --git a/src/de/uhilger/mediaz/entity/Geraet.java b/src/de/uhilger/mediaz/entity/Geraet.java index c498d33..4408cda 100644 --- a/src/de/uhilger/mediaz/entity/Geraet.java +++ b/src/de/uhilger/mediaz/entity/Geraet.java @@ -18,12 +18,18 @@ package de.uhilger.mediaz.entity; /** + * + * Beispiele + * HTTP GET http://192.168.178.64/relay/0 liefert {"ison":false,"has_timer":false,"overpower":false} * * @author Ulrich Hilger */ public class Geraet implements Entity { private String name; + private String einUrl; + private String ausUrl; + private String statusUrl; public void setName(String name) { this.name = name; @@ -34,4 +40,28 @@ return name; } + public String getEinUrl() { + return einUrl; + } + + public void setEinUrl(String einUrl) { + this.einUrl = einUrl; + } + + public String getAusUrl() { + return ausUrl; + } + + public void setAusUrl(String ausUrl) { + this.ausUrl = ausUrl; + } + + public String getStatusUrl() { + return statusUrl; + } + + public void setStatusUrl(String statusUrl) { + this.statusUrl = statusUrl; + } + } diff --git a/src/de/uhilger/mediaz/store/FileStorage.java b/src/de/uhilger/mediaz/store/FileStorage.java index ce6b60f..f855d4e 100644 --- a/src/de/uhilger/mediaz/store/FileStorage.java +++ b/src/de/uhilger/mediaz/store/FileStorage.java @@ -32,6 +32,7 @@ import java.io.IOException; import java.util.logging.Logger; import de.uhilger.mediaz.entity.Entity; +import de.uhilger.mediaz.entity.Geraet; import de.uhilger.mediaz.entity.Livestream; import de.uhilger.mediaz.entity.Titel; import java.util.ArrayList; @@ -61,6 +62,7 @@ public static final String ST_ABSPIELER = "Abspieler"; public static final String ST_ABSPIELLISTE = "Abspielliste"; public static final String ST_LIVESTREAM = "Livestream"; + public static final String ST_GERAET = "Geraet"; private final String fileBase; @@ -75,6 +77,7 @@ TypeToken<Abspieler> ttAbspieler = new TypeToken<Abspieler>() {}; TypeToken<Abspielliste> ttAbspielliste = new TypeToken<Abspielliste>() {}; TypeToken<Livestream> ttLivestream = new TypeToken<Livestream>() {}; + TypeToken<Geraet> ttGeraet = new TypeToken<Geraet>() {}; TypeToken<Titel> ttTitel = new TypeToken<Titel>() {}; types = new HashMap(); types.put(Ablageort.class.getSimpleName(), ttAblageort); @@ -83,6 +86,7 @@ types.put(Abspielliste.class.getSimpleName(), ttAbspielliste); types.put(Titel.class.getSimpleName(), ttTitel); types.put(Livestream.class.getSimpleName(), ttLivestream); + types.put(Geraet.class.getSimpleName(), ttGeraet); } /** diff --git a/www/ui/data/menu/einstellungen.json b/www/ui/data/menu/einstellungen.json new file mode 100644 index 0000000..fb76f56 --- /dev/null +++ b/www/ui/data/menu/einstellungen.json @@ -0,0 +1,43 @@ +{ + "menue": { + "menuetitel": "Einstellungen", + "wurzel": false, + "vorgaenger": { + "vtitel": "Hauptmenü", + "vverweis": "hauptmenue.json" + }, + "inhalt": [ + { + "titel": "Kataloge", + "umenue": false, + "funktion": "app.ablageort_liste" + }, + { + "titel": "Abspieler", + "umenue": false, + "funktion": "app.abspieler_liste" + }, + { + "titel": "Abspiellisten", + "umenue": false, + "funktion": "app.abspielliste_liste" + }, + { + "titel": "Livestreams", + "umenue": false, + "funktion": "app.livestream_liste" + }, + { + "titel": "Geraete", + "umenue": false, + "funktion": "app.geraet_liste" + }, + { + "titel": "Einstellungen", + "umenue": false, + "funktion": "app.prefs_liste" + } + ] + } +} + diff --git a/www/ui/data/menu/hauptmenue.json b/www/ui/data/menu/hauptmenue.json index b1b735f..b177874 100644 --- a/www/ui/data/menu/hauptmenue.json +++ b/www/ui/data/menu/hauptmenue.json @@ -18,44 +18,14 @@ "funktion": "app.livestream_selection" }, { - "titel": "", - "umenue": false, - "funktion": "" - }, - { "titel": "Abspielliste", "umenue": false, "funktion": "app.titel_liste" }, { - "titel": "Kataloge", - "umenue": false, - "funktion": "app.ablageort_liste" - }, - { - "titel": "Abspieler", - "umenue": false, - "funktion": "app.abspieler_liste" - }, - { - "titel": "Abspiellisten", - "umenue": false, - "funktion": "app.abspiellisten_liste" - }, - { - "titel": "Livestreams", - "umenue": false, - "funktion": "app.livestream_liste" - }, - { "titel": "Einstellungen", - "umenue": false, - "funktion": "app.prefs_liste" - }, - { - "titel": "", - "umenue": false, - "funktion": "" + "umenue": true, + "verweis": "einstellungen.json" }, { "titel": "Info", diff --git a/www/ui/data/tpl/form_geraet.txt b/www/ui/data/tpl/form_geraet.txt new file mode 100644 index 0000000..6d94060 --- /dev/null +++ b/www/ui/data/tpl/form_geraet.txt @@ -0,0 +1,13 @@ +<form> + <div class="entity-formular"> + <input name="name" class="entity-element" type="text" id="geraet-name" placeholder="Name" value="{{name}}" /> + <input name="einUrl" class="entity-element" type="text" id="geraet-einurl" placeholder="URL (Ein)" value="{{einUrl}}" /> + <input name="ausUrl" class="entity-element" type="text" id="geraet-ausurl" placeholder="URL (Aus)" value="{{ausUrl}}" /> + <input name="statusUrl" class="entity-element" type="text" id="geraet-statusurl" placeholder="URL (Status)" value="{{statusUrl}}" /> + <div class="entity-buttons"> + <button type="submit" class="button-primary" id="ok-btn">Speichern</button> + <button class="button" id="cancel-btn">Abbrechen</button> + <button class="button" id="loeschen-btn">Löschen</button> + </div> + </div> +</form> \ No newline at end of file diff --git a/www/ui/data/tpl/geraet_liste.txt b/www/ui/data/tpl/geraet_liste.txt new file mode 100644 index 0000000..d290bc6 --- /dev/null +++ b/www/ui/data/tpl/geraet_liste.txt @@ -0,0 +1,7 @@ +<div class='entity-formular'> + <ul class='entity-liste'> + {{#ArrayList}} + <li class='entity-eintrag'>{{.}}</li> + {{/ArrayList}} + </ul> +</div> \ No newline at end of file diff --git a/www/ui/index.html b/www/ui/index.html index 5ab8654..e559d66 100644 --- a/www/ui/index.html +++ b/www/ui/index.html @@ -52,7 +52,8 @@ <a id="mi-listen"><i class="icon-list"></i> Abspiellisten</a> <a id="mi-orte"><i class="icon-database"></i> Kataloge</a> <a id="mi-player"><i class="icon-play"></i> Abspieler</a> - <a id="mi-live"><i class="icon-ellipsis-vert"></i> Livestream</a> + <a id="mi-live"><i class="icon-ellipsis-vert"></i> Livestreams</a> + <a id="mi-devices"><i class="icon-ellipsis-vert"></i> Geräte</a> <a id="mi-prefs"><i class="icon-sliders"></i> Einstellungen</a> </div> </div> @@ -65,11 +66,11 @@ </div> <div class="zentrum-behaelter"> <!-- Einblendbereich oben --> + <div class="dialog"></div> <div class="top-band"> <div class="breadcrumb-behaelter">Breadcrumb hier</div> <div class="bereich-name">Name des Bereichs</div> </div> - <div class="dialog"></div> <!-- zentraler Inhaltsbereich --> <div class="zentrum"> <div class="zentraler-inhalt"> diff --git a/www/ui/js/app.js b/www/ui/js/app.js index 5be012f..0ef4266 100644 --- a/www/ui/js/app.js +++ b/www/ui/js/app.js @@ -31,6 +31,7 @@ self.addEvtListener('#mi-listen', 'click', self.abspielliste_liste); self.addEvtListener('#mi-list', 'click', self.titel_liste); self.addEvtListener('#mi-live', 'click', self.livestream_liste); + self.addEvtListener('#mi-devices', 'click', self.geraet_liste); self.fusszeile_umschalten(); self.seitenleiste_umschalten(); @@ -154,6 +155,15 @@ } }; + this.geraet_liste = function() { + self.entitaet_liste('Geräte','../api/store/Geraet/liste/', + "data/tpl/geraet_liste.txt", '../api/store/Geraet/', + "self.geraet_form", function(responseText) { + var geraet = JSON.parse(responseText); + self.geraet_form(geraet); + }); + }; + this.ablageort_liste = function() { self.entitaet_liste('Kataloge','../api/store/Ablageort/liste/', "data/tpl/ablageort_liste.txt", '../api/store/Ablageort/', @@ -228,6 +238,14 @@ "data/tpl/form_livestream.txt", '../api/store/Livestream/', '#livestream-name', function() { self.livestream_liste(); + }); + }; + + this.geraet_form = function(ge) { + self.entitaet_form('Gerät', ge, ge.name, + "data/tpl/form_geraet.txt", '../api/store/Geraet/', + '#geraet-name', function() { + self.geraet_liste(); }); }; @@ -832,4 +850,11 @@ this.interpret = i; this.titelAnzName = t; this.album = a; +} + +function Geraet(n, e, a, s) { + this.name = n; + this.einUrl = e; + this.ausUrl = a; + this.statusUrl = s; } \ No newline at end of file -- Gitblit v1.9.3