From 576085b482f4579ce47ad0590df0073560eec0bb Mon Sep 17 00:00:00 2001
From: ulrich <not disclosed>
Date: Sun, 07 Jan 2018 09:45:39 +0000
Subject: [PATCH] Abspielerauswahl hinzugefügt

---
 app.js                            |   14 ++++
 data/abspieler.json               |   31 ++++++++++
 data/tpl/dlg-sender-edit-form.tpl |    6 +-
 index.html                        |    3 
 data/tpl/abspieler.tpl            |    8 ++
 data/tpl/dlg-sender-neu.tpl       |    6 +-
 app.css                           |   30 ++++++++--
 README.md                         |   61 ++++++++++++++++++++
 8 files changed, 146 insertions(+), 13 deletions(-)

diff --git a/README.md b/README.md
index c48f52f..6d0680c 100644
--- a/README.md
+++ b/README.md
@@ -177,3 +177,64 @@
 128kbps http://mp3.ffh.de/radioffh/hqlivestream.mp3
 
 48kbps http://mp3.ffh.de/radioffh/livestream.aac
+
+## Noch zu erledigen
+
+### Templates für Mustache dynamisch laden
+
+Spart Ladezeit zu Beginn. Lösungsansatz: Eine Funktion, die als Parameter das Element erhält, dessen html mit dem gerenderten Template ersetzt werden soll und den zu rendernden Inhalt. Die dynamische Ladefunktion
+
+1. prüft, ob das Template schon im cache ist
+1. Lädt das Template, wenn nicht
+1. wartet, bis das Template geladen ist
+1. rendert das Template mit dem übergebenen Inhalt
+1. schreibt das Ergebnis ins html des übergebenen Elements
+
+Der letzte Teil des Ablaufs muss asynchron gefasst sein, damit auf das Laden gewartet werden kann.
+
+## Schnittstellenbeschreibung
+
+Die folgenden Funktionen sind Mocks für eine noch zu erstellende Schnittstelle.
+
+### Senderliste lesen
+
+Aufruf
+````
+data/sender.json
+````
+
+Antwort
+````
+{
+  "senderliste": {
+    "titel": "Senderliste",
+    "inhalt":  [
+      {
+        "senderid": 1,
+        "sendername": "hr info",
+        "senderurl": "http://hr-hrinfo-live.cast.addradio.de/hr/hrinfo/live/mp3/128/stream.mp3",
+        "senderlogo": "../bilder/hr-info.png"
+      },
+      {
+        "senderid": 2,
+        "sendername": "radiobob",
+        "senderurl": "http://bob.hoerradar.de/radiobob-live-mp3-hq",
+        "senderlogo": "../bilder/radio-bob-logo-80.png"
+      },
+      usw.
+    ]
+  }
+}
+````
+
+### Neuen Sender speichern
+
+Noch nicht realisiert.
+
+### Änderungen an einem Sender speichern
+
+Noch nicht realisiert.
+
+### Sender löschen
+
+Noch nicht realisiert.
diff --git a/app.css b/app.css
index 44c697b..58e3917 100644
--- a/app.css
+++ b/app.css
@@ -82,6 +82,12 @@
   flex-flow: column;
 }
 
+.inline-label {
+  display: inline-block;
+  width: 3em;
+  text-align: right;
+}
+
 /* Dialogfeld */
 
 .dialog {
@@ -109,12 +115,6 @@
   background-color: #f6f6f6; // grau
 }
 
-.sender-edit-label {
-  display: inline-block;
-  width: 3em;
-  text-align: right;
-}
-
 .sender-eingabe {
   width: 80%;
 }
@@ -137,6 +137,24 @@
   color: #b8b8b8;
 }
 
+/* Abspieler */
+
+.abspieler-behaelter {
+  display: flex;
+  flex-flow: row;
+  padding: 0.6em;
+}
+
+.abspieler-label {
+  display: inline-block;
+  width: 4.5em;
+  padding-right: 0.2em;
+  text-align: right;
+}
+
+.abspieler-auswahl {
+  width: 70%;
+}
 /* Sender */
 
 .sender-behaelter {
diff --git a/app.js b/app.js
index e1dac03..3b56e63 100644
--- a/app.js
+++ b/app.js
@@ -7,6 +7,7 @@
 var TPL_DLG_SENDER_EDIT = 'dlg-sender-edit';
 var TPL_SENDER_EDIT_FORM = 'sender-edit-form';
 var TPL_SENDER_KACHEL = 'sender-kachel';
+var TPL_ABSPIELER = 'abspieler';
 var templateCache = {}; // mustache templates
 var prefsRendered = false;
 var senderKlickModus = "0"; // 1=abspielen, 2=bearbeiten, 3=loeschen
@@ -28,9 +29,11 @@
   app_get_template('data/tpl/dlg-sender-edit.tpl', TPL_DLG_SENDER_EDIT);
   app_get_template('data/tpl/dlg-sender-edit-form.tpl', TPL_SENDER_EDIT_FORM);
   app_get_template('data/tpl/kachel.tpl', TPL_SENDER_KACHEL);
+  app_get_template('data/tpl/abspieler.tpl', TPL_ABSPIELER);
   //app_get_template('tpl/prefs.tpl', 'prefs');
   $('.sued').text('Bereit.');
   setTimeout(function() {
+    app_get_abspieler();
     app_get_sender();
   }, 200);
 }
@@ -172,6 +175,17 @@
   });
 }
 
+function app_get_abspieler() {
+  $.ajax({
+    url: "data/abspieler.json",
+    type: "GET",
+    dataType : "json"
+  }).done(function( abspielerliste ) {
+    $(".abspieler-behaelter").html(
+      Mustache.render(templateCache[TPL_ABSPIELER], abspielerliste));
+  });
+}
+
 function app_dialog_laden_und_zeigen(vorlage, adresse) {
   if(adresse !== '') {
     $.ajax({
diff --git a/data/abspieler.json b/data/abspieler.json
new file mode 100644
index 0000000..b1b167c
--- /dev/null
+++ b/data/abspieler.json
@@ -0,0 +1,31 @@
+{
+  "abspielerliste": {
+    "titel": "Abspielerliste",
+    "inhalt":  [
+      {
+        "abspielerid": 1,
+        "abspielername": "dieses Gerät",
+        "abspielerurl": "",
+        "abspielertyp":"lokal",
+        "abspielerbild": "",
+        "abspielerzustand":""
+      },
+      {
+        "abspielerid": 2,
+        "abspielername": "Raspberry Pi Wohnzimmer",
+        "abspielerurl": "",
+        "abspielertyp":"pirc",
+        "abspielerbild": "",
+        "abspielerzustand":"selected"
+      },
+      {
+        "abspielerid": 3,
+        "abspielername": "Raspberry Pi Arbeitszimmer",
+        "abspielerurl": "",
+        "abspielertyp":"pirc",
+        "abspielerbild": "",
+        "abspielerzustand":""
+      }
+    ]
+  }
+}
diff --git a/data/tpl/abspieler.tpl b/data/tpl/abspieler.tpl
new file mode 100644
index 0000000..14eceee
--- /dev/null
+++ b/data/tpl/abspieler.tpl
@@ -0,0 +1,8 @@
+<label class="abspieler-label">Abspieler:</label>
+<select name="abspieler" size="1" class="abspieler-auswahl">
+  {{#abspielerliste}}
+    {{#inhalt}}
+    <option {{abspielerzustand}} atyp="{{abspielertyp}}">{{abspielername}}</option>
+    {{/inhalt}}
+  {{/abspielerliste}}
+</select>
diff --git a/data/tpl/dlg-sender-edit-form.tpl b/data/tpl/dlg-sender-edit-form.tpl
index 61734f9..1522751 100644
--- a/data/tpl/dlg-sender-edit-form.tpl
+++ b/data/tpl/dlg-sender-edit-form.tpl
@@ -2,13 +2,13 @@
 <form>
   <input value="{{id}}" id="sender-id" name="sender-id" type="hidden"
       class="sender-eingabe"></br>
-  <label class="sender-edit-label">Name:</label>
+  <label class="inline-label">Name:</label>
   <input value="{{name}}" id="sender-name" name="sender-name" placeholder="Name"
       type="text" class="sender-eingabe"></br>
-  <label class="sender-edit-label">Logo:</label>
+  <label class="inline-label">Logo:</label>
   <input value="{{logo}}" id="sender-logo" name="sender-logo" placeholder="Logo"
       type="text" class="sender-eingabe"></br>
-  <label class="sender-edit-label">URL:</label>
+  <label class="inline-label">URL:</label>
   <input value="{{url}}" id="sender-url"  name="sender-url" placeholder="URL"
       type="text" class="sender-eingabe"></br>
   <div class="form-button-footer">
diff --git a/data/tpl/dlg-sender-neu.tpl b/data/tpl/dlg-sender-neu.tpl
index 015acd5..65862ff 100644
--- a/data/tpl/dlg-sender-neu.tpl
+++ b/data/tpl/dlg-sender-neu.tpl
@@ -3,11 +3,11 @@
   <div class="dlg-behaelter">
     <div class="dlg-sender-titel">Neuer Sender</div>
     <form>
-      <label class="sender-edit-label">Name:</label>
+      <label class="inline-label">Name:</label>
       <input id="sender-name" placeholder="Name" type="text" class="sender-eingabe"></br>
-      <label class="sender-edit-label">Logo:</label>
+      <label class="inline-label">Logo:</label>
       <input id="sender-logo" placeholder="Logo" type="text" class="sender-eingabe"></br>
-      <label class="sender-edit-label">URL:</label>
+      <label class="inline-label">URL:</label>
       <input id="sender-url" placeholder="URL" type="text" class="sender-eingabe"></br>
       <div class="form-button-footer">
         <button type="button" id="sender-speichern">Speichern</button>
diff --git a/index.html b/index.html
index 4fbf529..490bfa6 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,6 @@
     <title>Radio-UI</title>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <!-- <link rel="stylesheet" type="text/css" href="../jslib/app-layout/app-layout.css"> -->
     <link rel="stylesheet" type="text/css" href="../jslib/app-menu/nav-toggle.css">
     <link rel="stylesheet" type="text/css" href="../jslib/app-menu/app-menu.css">
     <link rel="stylesheet" type="text/css" href="app.css">
@@ -27,6 +26,8 @@
       <div class="zentrum-behaelter">
         <!-- Einblendbereich -->
         <div class="dialog"></div>
+        <!-- Abspieler-Auswahl -->
+        <div class="abspieler-behaelter"></div>
         <!-- zentraler Inhaltsbereich -->
         <div class="zentrum">
           <div id="prefs"></div>

--
Gitblit v1.9.3