From 70d6da1fb28dffe54a4bbc8b09097485875da4e3 Mon Sep 17 00:00:00 2001 From: ulrich Date: Sat, 16 May 2020 08:36:18 +0000 Subject: [PATCH] Nicht mehr benoetigte Abhaengigkeiten entfernt, Stile verfeinert --- /dev/null | 66 ---------------------- web/ui2/js/app.js | 57 +++++++++++++++++++ web/ui2/index.html | 5 - web/ui2/stile.css | 8 ++ 4 files changed, 65 insertions(+), 71 deletions(-) diff --git a/web/ui2/data/menu/datei.json b/web/ui2/data/menu/datei.json deleted file mode 100644 index 7cbedb9..0000000 --- a/web/ui2/data/menu/datei.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "menue": { - "menuetitel": "Datei", - "wurzel": false, - "vorgaenger": { - "vtitel": "Hauptmenü", - "vverweis": "hauptmenue.json" - }, - "inhalt": [ - { - "titel": "Neuer Text", - "umenue": false, - "funktion": "app.datei_neuer_text" - }, - { - "titel": "noch mehr", - "umenue": true, - "verweis": "untermenue-2.json" - }, - { - "titel": "Benachrichtigung 2", - "umenue": false, - "funktion": "app.message_2" - } - ] - } -} diff --git a/web/ui2/data/menu/edit.json b/web/ui2/data/menu/edit.json deleted file mode 100644 index 24f547c..0000000 --- a/web/ui2/data/menu/edit.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "menue": { - "menuetitel": "Untermenü 1", - "wurzel": false, - "vorgaenger": { - "vtitel": "Hauptmenü", - "vverweis": "hauptmenue.json" - }, - "inhalt": [ - { - "titel": "Benachrichtigung 1", - "umenue": false, - "funktion": "app.message_1" - }, - { - "titel": "noch mehr", - "umenue": true, - "verweis": "untermenue-2.json" - }, - { - "titel": "Benachrichtigung 2", - "umenue": false, - "funktion": "app.message_2" - } - ] - } -} diff --git a/web/ui2/data/menu/hauptmenue.json b/web/ui2/data/menu/hauptmenue.json deleted file mode 100644 index 51eae86..0000000 --- a/web/ui2/data/menu/hauptmenue.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "menue": { - "menuetitel": "Hauptmenü", - "wurzel": true, - "vorgaenger": { - "vtitel": "", - "vverweis": "" - }, - "inhalt": [ - { - "titel": "Datei", - "umenue": true, - "verweis": "datei.json" - }, - { - "titel": "Bearbeiten", - "umenue": true, - "verweis": "edit.json" - }, - { - "titel": "Nutzer", - "umenue": true, - "verweis": "nutzer.json" - }, - { - "titel": "Info", - "umenue": false, - "funktion": "app.info_dialog_zeigen" - } - ] - } -} diff --git a/web/ui2/data/menu/nutzer.json b/web/ui2/data/menu/nutzer.json deleted file mode 100644 index 2106e22..0000000 --- a/web/ui2/data/menu/nutzer.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "menue": { - "menuetitel": "Nutzer", - "wurzel": false, - "vorgaenger": { - "vtitel": "Hauptmenü", - "vverweis": "hauptmenue.json" - }, - "inhalt": [ - { - "titel": "Neu", - "umenue": false, - "funktion": "app.nutzer_neu_dialog_zeigen" - }, - { - "titel": "noch mehr", - "umenue": true, - "verweis": "untermenue-2.json" - }, - { - "titel": "Abmelden", - "umenue": false, - "funktion": "app.fm_logout" - } - ] - } -} diff --git a/web/ui2/data/menu/untermenue-1.json b/web/ui2/data/menu/untermenue-1.json deleted file mode 100644 index 24f547c..0000000 --- a/web/ui2/data/menu/untermenue-1.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "menue": { - "menuetitel": "Untermenü 1", - "wurzel": false, - "vorgaenger": { - "vtitel": "Hauptmenü", - "vverweis": "hauptmenue.json" - }, - "inhalt": [ - { - "titel": "Benachrichtigung 1", - "umenue": false, - "funktion": "app.message_1" - }, - { - "titel": "noch mehr", - "umenue": true, - "verweis": "untermenue-2.json" - }, - { - "titel": "Benachrichtigung 2", - "umenue": false, - "funktion": "app.message_2" - } - ] - } -} diff --git a/web/ui2/data/menu/untermenue-2.json b/web/ui2/data/menu/untermenue-2.json deleted file mode 100644 index 00c0268..0000000 --- a/web/ui2/data/menu/untermenue-2.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "menue": { - "menuetitel": "Untermenü 2", - "wurzel": false, - "vorgaenger": { - "vtitel": "Untermenü 1", - "vverweis": "untermenue-1.json" - }, - "inhalt": [ - { - "titel": "Funktion U2.1", - "umenue": false, - "funktion": "app.message_3('U2.1')" - }, - { - "titel": "Funktion U2.2", - "umenue": false, - "funktion": "app.message_3('U2.2')" - }, - { - "titel": "Funktion U2.3", - "umenue": false, - "funktion": "app.message_3('U2.3')" - } - ] - } -} diff --git a/web/ui2/index.html b/web/ui2/index.html index 78a3d1e..5dd1f08 100644 --- a/web/ui2/index.html +++ b/web/ui2/index.html @@ -48,11 +48,6 @@ </div> <!-- Skripte --> <script src="/jslib/mustache/mustache.min.js"></script> - <script src="/jslib/moment/moment-with-locales.min.js"></script> - <script src="/jslib/numeral/numeral.min.js"></script> - <script src="js/app-menu.js"></script> - <script src="js/vorlagen.js"></script> - <script src="js/data.js"></script> <script src="js/app.js"></script> <script> var app; diff --git a/web/ui2/js/app-menu.js b/web/ui2/js/app-menu.js deleted file mode 100644 index 6a3b11e..0000000 --- a/web/ui2/js/app-menu.js +++ /dev/null @@ -1,137 +0,0 @@ -function AppMenu() { - var self = this; - var _app_menu_selector; - var _app_menu_mbreite; - var _app_menu_url_prefix = ""; - var _app_menu_template; - - /* - * die nachfolgenden Funktionen steuern das ein- und - * ausblenden des menues - */ - this.init = function (url_prefix, mdesc, mtpl, mselector, mbreite) { - self._app_menu_selector = mselector; - self._app_menu_mbreite = mbreite; - 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) { - self._app_menu_template = request.responseText; - Mustache.parse(self._app_menu_template); // optional, speeds up future uses - self.app_menu_laden(mdesc); - } else { - console.warn(request.statusText, request.responseText); - } - }); - request.send(); - }; - - this.app_menu_do_toggle = function(elem) { - self.toggle(); - }; - - this.toggle = function() { - var menuDiv = document.querySelector(self._app_menu_selector); - if(menuDiv.classList.contains('app-menu-open')) { - menuDiv.classList.remove('app-menu-open'); - menuDiv.style.flexBasis = '0em'; - } else { - menuDiv.classList.add('app-menu-open'); - menuDiv.style.flexBasis = self._app_menu_mbreite; - } - }; - - /* - * ab hier Steuerung des Menueinhalts - */ - - - /* - * 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(); - var url = self._app_menu_url_prefix + mdesc; - xmlhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - self.app_menu_bauen(JSON.parse(this.responseText), richtung); - } - }; - xmlhttp.open("GET", url, true); - 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 = ''; - - // 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() { - self.app_menu_laden(this.getAttribute('data-verweis'), 'herunter'); - }; - - this.app_menu_klick_herauf = function() { - self.app_menu_laden(this.getAttribute('data-verweis'), 'herauf'); - }; - - this.app_menu_ausfuehren = function() { - var functionName = this.getAttribute('data-verweis'); - eval(functionName + "(this)"); - }; - - /* --- Helferlein ---*/ - /* - sel - '.smenu' - evt - 'click' fuer onclick - func - der verweis auf die funktion - */ - this.app_menu_remove_event_listener_multi = function(sel, evt, func) { - var elem = document.querySelectorAll(sel); - for (var index = 0; index < elem.length; index++) { - elem[index].removeEventListener(evt, func); - } - }; - - this.app_menu_add_event_listener_multi = function(sel, evt, func) { - var elem = document.querySelectorAll(sel); - for (var index = 0; index < elem.length; index++) { - elem[index].addEventListener(evt, func); - } - }; -} diff --git a/web/ui2/js/app.js b/web/ui2/js/app.js index e94c99c..6c407e7 100644 --- a/web/ui2/js/app.js +++ b/web/ui2/js/app.js @@ -316,6 +316,63 @@ } +/* ----- Vorlagen ----- */ + +function Vorlagen() { + var self = this; + this.cache = {}; // mustache templates + + /* + Das HTML erzeugen, das entsteht, wenn eine Vorlage mit Inhalt + gefüllt wird + + Das Füllen erfolgt asynchron, d.h. der Programmlauf geht nach dem + Aufruf weiter ohne auf das Laden und Füllen der Vorlage zu warten. + Das fertige HTML wird der Callback-Funktion übergeben + sobald die Vorlage geladen und gefüllt ist, unabhängig davon, wo der + Programmlauf zu diesem Zeitpunkt mittlerweile ist. + + vurl - URL zur Vorlagendatei + inhalt - die JSON-Struktur, deren Inhalt in die + Vorlage gefüllt werden soll + cb - Callback-Funktion, die gerufen wird, wenn die Vorlage gefüllt ist. + Dieser Callback-Funktion wird das fertige HTML übergeben + */ + this.html_erzeugen = function(vurl, inhalt, cb) { + var vorlage = self.cache[vurl]; + if(vorlage === undefined) { + self.vorlage_laden_und_fuellen(vurl, inhalt, cb); + } else { + self.vorlage_fuellen(vurl, inhalt, cb); + } + }; + + this.vorlage_fuellen = function(vurl, inhalt, cb) { + cb(Mustache.render(self.cache[vurl], inhalt)); + }; + + /* + Eine Vorlage vom Server in den lokalen Speicher laden + vurl - der URL unter dem die Vorlage zu finden ist + inhalt - die JSON-Struktur, deren Inhalt in die + Vorlage gefüllt werden soll + cb - callback: Diese Funktion wird gerufen, wenn die Vorlage mit dem + Inhalt gefüllt ist + */ + this.vorlage_laden_und_fuellen = function(vurl, inhalt, cb) { + var xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + self.cache[vurl] = this.responseText; + self.vorlage_fuellen(vurl, inhalt, cb); + } + }; + xmlhttp.open("GET", vurl, true); + xmlhttp.send(); + }; + +} + /* ----- Objekte ----- */ diff --git a/web/ui2/js/data.js b/web/ui2/js/data.js deleted file mode 100644 index 821ba31..0000000 --- a/web/ui2/js/data.js +++ /dev/null @@ -1,148 +0,0 @@ -/* - Dateiverwaltung - File management in your browser - Copyright (C) 2017 Ulrich Hilger, http://uhilger.de - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as - published by the Free Software Foundation, either version 3 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - - - -/* - * In data.js finden sich die Objekte vom Browser-Client - * der Dateiverwaltung - */ - - - -/* ----- Objekte ----- */ - -function IssueList(il) { - this.issues = il; -} - -function CompilerIssue(sn, ms, ki, ln) { - var self = this; - this.sourceName = sn; - this.message = ms; - this.kind = ki; - this.lineNumber = ln; -} - -function FileList(fl) { - this.files = fl; -} - -function FileRef(obj) { - var self = this; - this.fr = obj; - this.fnx; - this.fext = ''; - - this.typeClass = function () { - if (modus == 'kacheln') { - if (self.fr.isDirectory) { - return 'fa-folder ordner'; - } else { - return 'fa-file datei'; - } - } else { - if (self.fr.isDirectory) { - return 'fa-folder ordner'; - } else { - return 'fa-file-o datei'; - } - } - }; - - this.mini = function () { - var miniatur = false; - var namen = self.fr.absolutePath.split('/'); - if (namen.length > 0) { - self.fnx = decodeURIComponent(namen[namen.length - 1]); - } else { - self.fnx = decodeURIComponent(self.fr.absolutePath); - } - if (self.fnx.indexOf('.jpg') > -1 || self.fnx.indexOf('.png') > -1 || - self.fnx.indexOf('.gif') > -1 || self.fnx.indexOf('.jpeg') > -1) { - miniatur = true; - } - return miniatur; - }; - - this.dia = function () { - return fm_slideshow; - }; - - this.miniurl = function () { - // var userid = $('#userMenu').text(); - if (self.fext === '') { - //self.fext = ''; - var dotpos = self.fnx.indexOf('.'); - if (dotpos > -1) { - var fny = self.fnx; - self.fnx = self.fnx.substring(0, dotpos); - self.fext = fny.substr(dotpos); - } - } - var path = fm_get_path(app.userid); - var imgurl = loc + path + '/' + self.fnx + '_tn' + self.fext; - return imgurl; - - }; - - this.bildurl = function () { - // var userid = $('#userMenu').text(); - if (self.fext === '') { - //self.fext = ''; - var dotpos = self.fnx.indexOf('.'); - if (dotpos > -1) { - var fny = self.fnx; - self.fnx = self.fnx.substring(0, dotpos); - self.fext = fny.substr(dotpos); - } - } - var path = fm_get_path(app.userid); - var imgurl = loc + path + '/' + self.fnx + self.fext; - return imgurl; - }; - - this.fileName = function () { - - var namen = self.fr.absolutePath.split('/'); - if (namen.length > 0) { - return decodeURIComponent(namen[namen.length - 1]); - } else { - return decodeURIComponent(self.fr.absolutePath); - } - - }; - - this.fileDate = function () { - return moment(self.fr.lastModified).format("YYYY-MM-DD-hh-mm-ss-SSS"); - }; - - this.fileSize = function () { - return numeral(self.fr.length).format("0.00 b"); - }; -} - -function BcrFiles(fl) { - this.files = fl; -} - -function BcrFile(rp, n) { - this.relPath = rp; - this.fName = n; -} - diff --git a/web/ui2/js/vorlagen.js b/web/ui2/js/vorlagen.js deleted file mode 100644 index d76cd94..0000000 --- a/web/ui2/js/vorlagen.js +++ /dev/null @@ -1,66 +0,0 @@ - - -function Vorlagen() { - var self = this; - this.cache = {}; // mustache templates - - /* - Das HTML erzeugen, das entsteht, wenn eine Vorlage mit Inhalt - gefüllt wird - - Das Füllen erfolgt asynchron, d.h. der Programmlauf geht nach dem - Aufruf weiter ohne auf das Laden und Füllen der Vorlage zu warten. - Das fertige HTML wird der Callback-Funktion übergeben - sobald die Vorlage geladen und gefüllt ist, unabhängig davon, wo der - Programmlauf zu diesem Zeitpunkt mittlerweile ist. - - vurl - URL zur Vorlagendatei - inhalt - die JSON-Struktur, deren Inhalt in die - Vorlage gefüllt werden soll - cb - Callback-Funktion, die gerufen wird, wenn die Vorlage gefüllt ist. - Dieser Callback-Funktion wird das fertige HTML übergeben - */ - this.html_erzeugen = function(vurl, inhalt, cb) { - var vorlage = self.cache[vurl]; - if(vorlage === undefined) { - self.vorlage_laden_und_fuellen(vurl, inhalt, cb); - } else { - self.vorlage_fuellen(vurl, inhalt, cb); - } - }; - - this.vorlage_fuellen = function(vurl, inhalt, cb) { - cb(Mustache.render(self.cache[vurl], inhalt)); - }; - - /* - Eine Vorlage vom Server in den lokalen Speicher laden - vurl - der URL unter dem die Vorlage zu finden ist - inhalt - die JSON-Struktur, deren Inhalt in die - Vorlage gefüllt werden soll - cb - callback: Diese Funktion wird gerufen, wenn die Vorlage mit dem - Inhalt gefüllt ist - */ - this.vorlage_laden_und_fuellen = function(vurl, inhalt, cb) { - /* - $.ajax({ - url: vurl, - type: "GET", - dataType : "text" - }).done(function( vorlage ) { - self.cache[vurl] = vorlage; - self.vorlage_fuellen(vurl, inhalt, cb); - }); - */ - var xmlhttp = new XMLHttpRequest(); - xmlhttp.onreadystatechange = function() { - if (this.readyState == 4 && this.status == 200) { - self.cache[vurl] = this.responseText; - self.vorlage_fuellen(vurl, inhalt, cb); - } - }; - xmlhttp.open("GET", vurl, true); - xmlhttp.send(); - }; - -} diff --git a/web/ui2/stile.css b/web/ui2/stile.css index 0792961..02093d1 100644 --- a/web/ui2/stile.css +++ b/web/ui2/stile.css @@ -215,13 +215,21 @@ } .granted-role-btn { + height: 2.5em; + padding: 0 0.5em; margin: 0.2em; background-color: lightcoral; + text-transform: none; + font-size: medium; } .avl-role-btn { + height: 2.5em; + padding: 0 0.5em; margin: 0.2em; background-color: darkseagreen; + text-transform: none; + font-size: medium; } /* für app-menu */ -- Gitblit v1.9.3