From 8ca5e8bfa494ec9af80b58b96cbf3e86f7a340ee Mon Sep 17 00:00:00 2001
From: ulrich <undisclosed>
Date: Sun, 15 Dec 2019 14:11:26 +0000
Subject: [PATCH] Diverse Aufraeumarbeiten

---
 js/app-menu.js        |   36 +++++++++++++++++++++---------------
 js/vorlagen.js        |    0 
 index.html            |    8 ++++----
 app-menu.css          |    6 +++++-
 readme.md             |    4 ++--
 js/app.js             |    2 +-
 data/tpl/app-menu.tpl |    0 
 7 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/jslib/app-menu/app-menu.css b/app-menu.css
similarity index 80%
rename from jslib/app-menu/app-menu.css
rename to app-menu.css
index 70ee509..aa3e116 100644
--- a/jslib/app-menu/app-menu.css
+++ b/app-menu.css
@@ -27,6 +27,10 @@
   cursor: pointer;
 }
 
+/*
+  Das div-Element, das das Menue aufnimmt erhaelt
+  die Klasse app-menu-content
+*/
 .app-menu-content {
   overflow: hidden;
-}
\ No newline at end of file
+}
diff --git a/jslib/app-menu/app-menu.tpl b/data/tpl/app-menu.tpl
similarity index 100%
rename from jslib/app-menu/app-menu.tpl
rename to data/tpl/app-menu.tpl
diff --git a/index.html b/index.html
index 833072c..a75d0e0 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="apple-mobile-web-app-capable" content="yes" />
     <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">
-    <link rel="stylesheet" type="text/css" href="jslib/app-menu/app-menu.css">
+    <link rel="stylesheet" type="text/css" href="app-menu.css">
     <link rel="stylesheet" type="text/css" href="hamburger.css">
     <link rel="stylesheet" type="text/css" href="app.css">
   </head>
@@ -64,9 +64,9 @@
     </div>
     <!-- Skripte -->
     <script src="https://cdnjs.cloudflare.com/ajax/libs/mustache.js/2.3.0/mustache.min.js"></script>
-    <script src="jslib/app-menu/app-menu.js"></script>
-    <script src="jslib/vorlagen.js"></script>
-    <script src="app.js"></script>
+    <script src="js/app-menu.js"></script>
+    <script src="js/vorlagen.js"></script>
+    <script src="js/app.js"></script>
     <script>
 		var app;
 		document.addEventListener('DOMContentLoaded', function () {
diff --git a/jslib/app-menu/app-menu.js b/js/app-menu.js
similarity index 83%
rename from jslib/app-menu/app-menu.js
rename to js/app-menu.js
index 49ffa6a..6a3b11e 100644
--- a/jslib/app-menu/app-menu.js
+++ b/js/app-menu.js
@@ -12,34 +12,26 @@
   this.init = function (url_prefix, mdesc, mtpl, mselector, mbreite) {
     self._app_menu_selector = mselector;
     self._app_menu_mbreite = mbreite;
-    /*document.querySelector( "#nav-toggle" ).addEventListener("click", function() {
-      app_menu_toggle();
-    });*/
     var menu = document.querySelector(self._app_menu_selector);
     menu.style.flexBasis = '0em';
     self._app_menu_url_prefix = url_prefix;
-
+    /*
+      Die Menue-Vorlage wird einmal zu Beginn geladen und
+      waehrend dem Programmlauf immer wieder neu zum Rendern
+      einer dynamisch gelandenen Menuebeschreibung verwendet
+    */
     var request = new XMLHttpRequest();
     request.open("GET", mtpl);
     request.addEventListener('load', function(event) {
        if (request.status >= 200 && request.status < 300) {
-          //console.log(request.responseText);
           self._app_menu_template = request.responseText;
           Mustache.parse(self._app_menu_template);   // optional, speeds up future uses
-          var menuDiv = document.createElement("div");
-          menuDiv.classList.add('app-menu-content');
-          menuDiv.style.position = 'relative';
-          menuDiv.style.left = '-300px';
-          menuDiv.style.right = '0px';
-          menu.appendChild(menuDiv);
-
           self.app_menu_laden(mdesc);
        } else {
           console.warn(request.statusText, request.responseText);
        }
     });
     request.send();
-
   };
 
   this.app_menu_do_toggle = function(elem) {
@@ -63,7 +55,9 @@
 
 
   /*
+   * Menuebeschreibung als JSON-Datei laden
    * mdesc: der URL einer JSON-Datei mit einer Menuebeschreibung
+   * richtung: z.Zt. unbenutzt: Animationsrichtung
    */
   this.app_menu_laden = function(mdesc, richtung) {
     var xmlhttp = new XMLHttpRequest();
@@ -77,23 +71,35 @@
     xmlhttp.send();
   };
 
+  /*
+    Aus einer Menuebeschreibung im JSON-Format mit Hilfe
+    von Mustache und der zu Beginn geladenen HTML-Vorlage
+    ein div-Element zusammenbauen, das als Menue eingeblendet
+    werden kann und dem Element _app_menu_selector hinzufuegen
+  */
   this.app_menu_bauen = function(menuejs, richtung) {
+
+    // neues Menue als div-Element zusammensetzen
     var menuDiv = document.createElement("div");
     menuDiv.classList.add('app-menu-content');
     menuDiv.style.position = 'relative';
     menuDiv.innerHTML = Mustache.render(self._app_menu_template, menuejs);
 
+    // altes Menue loeschen
     self.app_menu_remove_event_listener_multi('.smenu', 'click', self.app_menu_klick_herunter);
     self.app_menu_remove_event_listener_multi('.bitem', 'click', self.app_menu_klick_herauf);
     self.app_menu_remove_event_listener_multi('.mitem', 'click', self.app_menu_ausfuehren);
-
     var menu = document.querySelector(self._app_menu_selector);
     menu.innerHTML = '';
-    menu.append(menuDiv);
 
+    // neues Menue hinzufuegen
+    menu.append(menuDiv);
     self.app_menu_add_event_listener_multi('.smenu', 'click', self.app_menu_klick_herunter);
     self.app_menu_add_event_listener_multi('.bitem', 'click', self.app_menu_klick_herauf);
     self.app_menu_add_event_listener_multi('.mitem', 'click', self.app_menu_ausfuehren);
+
+    menuDiv = document.querySelector('.app-menu-content');
+    menuDiv.classList.add('slidein-from-right');
   };
 
   this.app_menu_klick_herunter = function() {
diff --git a/app.js b/js/app.js
similarity index 98%
rename from app.js
rename to js/app.js
index ae373f9..8280ca7 100644
--- a/app.js
+++ b/js/app.js
@@ -9,7 +9,7 @@
     self.appMenu.init(
       "data/menu/",
       "hauptmenue.json",
-      "jslib/app-menu/app-menu.tpl",
+      "data/tpl/app-menu.tpl",
       ".west",
       "8em");
 
diff --git a/jslib/vorlagen.js b/js/vorlagen.js
similarity index 100%
rename from jslib/vorlagen.js
rename to js/vorlagen.js
diff --git a/readme.md b/readme.md
index 913e2d5..ce3072b 100644
--- a/readme.md
+++ b/readme.md
@@ -4,9 +4,9 @@
 
 ## Eigenschaften
 
-Diese Vorlage etabliert eine Bedienoberfläche für Apps. Sie gruppiert Menü, Kopf- und Fußzeile sowie eine Seitenleiste um einen zentralen Bereich, dessen Inhalt nach unten aus dem sichtbaren Teil der Anzeige herausläuft, wenn der Platz auf der Anzeige nicht ausreicht.
+Die App-Vorlage gruppiert Menü, Kopf- und Fußzeile sowie eine Seitenleiste um einen zentralen Bereich, dessen Inhalt nach unten aus dem sichtbaren Teil der Anzeige herausläuft, wenn der Platz auf der Anzeige nicht ausreicht.
 
-Beim Rollen des Inhalts bleiben die umliegenden Elemente sichtbar. Damit verschwinden wichtige Bedienelemente wie das Menü nicht beim Rollen.
+Beim Rollen des Inhalts bleiben die umliegenden Elemente und damit die wesentlichen Bedienelemente sichtbar. 
 
 Der Inhalt des Menüs kann über Beschreibungsdateien an unterschiedliche Belange angepasst  und über eine Schaltfläche ein- und ausgeblendet werden. Die Menübeschreibungen müssen in der Javascript Object Notation (JSON) verfasst sein und können beliebig in eine hierarchische Struktur von Untermenüs verschachtelt werden.   
 

--
Gitblit v1.9.3