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