From a27c6822a00a1251d75c154627eab783c43fcddb Mon Sep 17 00:00:00 2001
From: ulrich
Date: Wed, 21 Apr 2021 08:45:53 +0000
Subject: [PATCH] Menues und Symbolleisten vereinheitlicht

---
 www/ui/js/app.js |   80 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 5 deletions(-)

diff --git a/www/ui/js/app.js b/www/ui/js/app.js
index 5be012f..bb29ba2 100644
--- a/www/ui/js/app.js
+++ b/www/ui/js/app.js
@@ -31,6 +31,8 @@
     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.addEvtListener('#mi-switch', 'click', self.geraet_schalt_liste);
     
     self.fusszeile_umschalten();
     self.seitenleiste_umschalten();
@@ -154,6 +156,41 @@
     }
   };
   
+  this.geraet_schalt_liste = function() {
+    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);
+        self.geraet_status_form(geraet);
+      }, function() {
+        self.addEvtListener('#ein-btn', 'click', function (event) {
+          var geraetName = event.target.attributes.gname.nodeValue;
+          //var geraetName = document.querySelector('.schalt-geraet-name').textContent;
+          self.http_get('../api/gstrg/geraet/' + geraetName + "/ein", function(responseText) {
+            // console.log(responseText);
+            self.geraet_schalt_liste();
+          });
+        });
+        self.addEvtListener('#aus-btn', 'click', function (event) {
+          var geraetName = event.target.attributes.gname.nodeValue;
+          //var geraetName = document.querySelector('.schalt-geraet-name').textContent;
+          self.http_get('../api/gstrg/geraet/' + geraetName + "/aus", function(responseText) {
+            // console.log(responseText);
+            self.geraet_schalt_liste();
+          });
+        });        
+      });
+  };
+  
+  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/', 
@@ -231,6 +268,22 @@
     });
   };
 
+  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();
+    });
+  };
+
+  this.geraet_status_form = function(ge) {
+    self.entitaet_form('Gerät', ge, ge.name,
+      "data/tpl/form_geraet_status.txt", '../api/store/Geraet/',
+      '#geraet-name', function() { 
+          self.geraet_schalt_liste();
+    });
+  };
+
   this.prefs_form = function(k) {
     self.entitaet_form('Einstellung', k, k.key,
       "data/tpl/form_einstellung.txt", '../api/store/Einstellung/',
@@ -287,7 +340,7 @@
   this.dialog_unten_zeigen = function() {
     self.vorlage_laden_und_fuellen("data/tpl/ctrl.txt", "", function (html) {
       var dlg = document.querySelector(".dialog-unten");
-      dlg.style.height = '4.5em';
+      dlg.style.height = '10em';
       dlg.innerHTML = html;
       self.abspieler_auswahl_fuellen();
       self.abspielliste_auswahl_fuellen();
@@ -309,6 +362,12 @@
       
       self.addEvtListener('#weg-btn', 'click', self.titelWeg);
       self.addEvtListener('#leeren-btn', 'click', self.alleTitelEntfernen);
+      
+      self.addEvtListener('#media-btn', 'click', self.media_liste);
+      self.addEvtListener('#plst-btn', 'click', self.titel_liste);
+      self.addEvtListener('#live-btn', 'click', self.livestream_liste);
+      self.addEvtListener('#switch-btn', 'click', self.geraet_schalt_liste);
+    
       self.media_liste();
     });
   };
@@ -458,7 +517,7 @@
    *     self.ablageort_form(ablageort);
    *   });
    */
-  this.entitaet_liste = function(bname, listUrl, tpl, storeUrl, formFunc, cb) {
+  this.entitaet_liste = function(bname, listUrl, tpl, storeUrl, formFunc, cb, customListCode) {
     self.reset_top_buttons();
     document.querySelector('.bereich-name').textContent = bname;
     var bb = document.querySelector('.breadcrumb-behaelter');
@@ -473,7 +532,12 @@
         //self.addEvtListener('#neu-btn', 'click', function (event) {
         self.addEvtListener('#top-neu-btn', 'click', function(event) {
           eval(formFunc + "(this)");
-        });        
+        });                
+        if(typeof(customListCode) !== 'function') {
+          // ..
+        } else {
+          customListCode();
+        }        
       });
     });
   };  
@@ -521,8 +585,6 @@
     event.preventDefault();
     const data = new FormData(event.target);
     const value = Object.fromEntries(data.entries());
-    //console.log({ value });
-    //console.log(JSON.stringify(value));
     var daten = JSON.stringify(value);
     var formkey = document.querySelector(keySelector).value;
     formkey = formkey.replace(' ', '').replace(/[\W]+/g, '');
@@ -832,4 +894,12 @@
   this.interpret = i;
   this.titelAnzName = t;
   this.album  = a;
+}
+
+function Geraet(n, e, a, s, st) {
+  this.name = n;
+  this.einUrl = e;
+  this.ausUrl = a;
+  this.statusUrl = s;
+  this.status = st;
 }
\ No newline at end of file

--
Gitblit v1.9.3