From 6dab6e8fa04d8b83a68dae8b269e71ebad5c41f9 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Fri, 30 Mar 2018 16:51:17 +0000 Subject: [PATCH] Doku ergaenzt --- jslib/app-menu/app-menu.js | 256 +++++++++++++++++++++++++-------------------------- 1 files changed, 126 insertions(+), 130 deletions(-) diff --git a/jslib/app-menu/app-menu.js b/jslib/app-menu/app-menu.js index 1a0723f..1d1a0ce 100644 --- a/jslib/app-menu/app-menu.js +++ b/jslib/app-menu/app-menu.js @@ -1,141 +1,137 @@ -/* - * die nachfolgenden Funktionen steuern das ein- und - * ausblenden des menues - */ -function app_menu_init(url_prefix, mdesc, mtpl, mselector, mbreite) { - _app_menu_selector = mselector; - _app_menu_mbreite = mbreite; - /*document.querySelector( "#nav-toggle" ).addEventListener("click", function() { - app_menu_toggle(); - });*/ - $(_app_menu_selector).css("flex-basis", "0em"); - _app_menu_url_prefix = url_prefix; - $.get(mtpl, function(template) { - _app_menu_template = template; - Mustache.parse(_app_menu_template); // optional, speeds up future uses +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; + /*document.querySelector( "#nav-toggle" ).addEventListener("click", function() { + app_menu_toggle(); + });*/ + $(self._app_menu_selector).css("flex-basis", "0em"); + self._app_menu_url_prefix = url_prefix; + $.get(mtpl, function(template) { + self._app_menu_template = template; + Mustache.parse(self._app_menu_template); // optional, speeds up future uses + var menuDiv = $("<div/>"); + $(menuDiv).addClass('app-menu-content'); + $(menuDiv).css('position', "relative"); + $(menuDiv).css('left', '-300px'); + $(menuDiv).css('right', '0px'); + $(self._app_menu_selector).append(menuDiv); + + self.app_menu_laden(mdesc); + }); + }; + + this.app_menu_do_toggle = function(elem) { + /*document.querySelector( "#nav-toggle" ).classList.toggle( "active" ); + document.querySelector( "#nav-toggle" ).blur();*/ + self.toggle(); + }; + + this.toggle = function() { + /*document.querySelector( "#nav-toggle" ).classList.toggle( "active" ); + document.querySelector( "#nav-toggle" ).blur();*/ + var menuDiv = $(self._app_menu_selector); + if($(menuDiv).hasClass('app-menu-open')) { + $(menuDiv).removeClass('app-menu-open'); + $(menuDiv).css("flex-basis", "0em"); + } else { + $(menuDiv).addClass('app-menu-open'); + $(menuDiv).css("flex-basis", self._app_menu_mbreite); // z.B. "16em" + } + }; + + /* + * ab hier Steuerung des Menueinhalts + */ + + + /* + * mdesc: der URL einer JSON-Datei mit einer Menuebeschreibung + */ + this.app_menu_laden = function(mdesc, richtung) { + $.ajax({ + url: self._app_menu_url_prefix + mdesc, + type: "GET", + dataType : "json" + }).done(function( json ) { + self.app_menu_bauen(json, richtung); + }); + }; + + this.app_menu_bauen = function(menuejs, richtung) { + + // Endposition des bestehenden Menues beim Wechsel herauf + var linksEndeAlt = "500px"; + var rechtsEndeAlt = "600px"; + // Anfangsposition des neuen Menues beim Wechsel herauf + var linksAnfangNeu = "-300px"; + var rechtsAnfangNeu = "-1px"; + // Endposition des neuen Menues beim Wechsel herauf + var linksEndeNeu = "0px"; + var rechtsEndeNeu = "300px"; + + if(richtung === 'herunter') { + // Endposition des bestehenden Menues beim Wechsel herunter + linksEndeAlt = "-300px"; + rechtsEndeAlt = "-1px"; + // Anfangsposition des neuen Menues beim Wechsel herunter + linksAnfangNeu = "500px"; + rechtsAnfangNeu = "600px"; + // Endposition des neuen Menues beim Wechsel herunter + linksEndeNeu = "0px"; + rechtsEndeNeu = "300px"; + } + var menuDiv = $("<div/>"); $(menuDiv).addClass('app-menu-content'); + $(menuDiv).css('position', "relative"); - $(menuDiv).css('left', '-300px'); - $(menuDiv).css('right', '0px'); - $(_app_menu_selector).append(menuDiv); + $(menuDiv).css('left', linksAnfangNeu); + $(menuDiv).css('right', rechtsAnfangNeu); + $(menuDiv).html(Mustache.render(self._app_menu_template, menuejs)); - app_menu_laden(mdesc); - }); -} + $('.app-menu-content').delay(100).animate( + {left: linksEndeAlt }, + 100, + function() { + $('.smenu').attr('onclick','').unbind('click'); + $('.bitem').attr('onclick','').unbind('click'); + $('.mitem').attr('onclick','').unbind('click'); + $(self._app_menu_selector).empty(); -function app_menu_do_toggle(elem) { - /*document.querySelector( "#nav-toggle" ).classList.toggle( "active" ); - document.querySelector( "#nav-toggle" ).blur();*/ - app_menu_toggle(); -} + $(self._app_menu_selector).append(menuDiv); + $('.smenu').on('click', self.app_menu_klick_herunter); + $('.bitem').on('click', self.app_menu_klick_herauf); + $('.mitem').on('click', self.app_menu_ausfuehren); -function app_menu_toggle() { - /*document.querySelector( "#nav-toggle" ).classList.toggle( "active" ); - document.querySelector( "#nav-toggle" ).blur();*/ - var westDiv = $(_app_menu_selector); - if($(westDiv).hasClass('app-menu-open')) { - $(westDiv).removeClass('app-menu-open'); - $(westDiv).css("flex-basis", "0em"); - } else { - $(westDiv).addClass('app-menu-open'); - $(westDiv).css("flex-basis", _app_menu_mbreite); // z.B. "16em" - } -} + $('.app-menu-content').delay(100).animate({left: linksEndeNeu }); + $('.app-menu-content').animate({right: rechtsEndeNeu }); + } + ); + $('.app-menu-content').animate({right: rechtsEndeAlt }); + }; -/* - * ab hier Steuerung des Menueinhalts - */ + this.app_menu_klick_herunter = function() { + self.app_menu_laden($(this).attr('data-verweis'), 'herunter'); + }; -var _app_menu_url_prefix = ""; -var _app_menu_template; -var _app_menu_selector; -var _app_menu_mbreite; + this.app_menu_klick_herauf = function() { + self.app_menu_laden($(this).attr('data-verweis'), 'herauf'); + }; -/* - * mdesc: der URL einer JSON-Datei mit einer Menuebeschreibung - */ -function app_menu_laden(mdesc, richtung) { - $.ajax({ - url: _app_menu_url_prefix + mdesc, - type: "GET", - dataType : "json" - }).done(function( json ) { - app_menu_bauen(json, richtung); - }); + this.app_menu_ausfuehren = function() { + var functionName = $(this).attr('data-verweis'); + eval(functionName + "(this)"); + }; -} - -function app_menu_bauen(menuejs, richtung) { - - // Endposition des bestehenden Menues beim Wechsel herauf - var linksEndeAlt = "500px"; - var rechtsEndeAlt = "600px"; - // Anfangsposition des neuen Menues beim Wechsel herauf - var linksAnfangNeu = "-300px"; - var rechtsAnfangNeu = "-1px"; - // Endposition des neuen Menues beim Wechsel herauf - var linksEndeNeu = "0px"; - var rechtsEndeNeu = "300px"; - - if(richtung === 'herunter') { - // Endposition des bestehenden Menues beim Wechsel herunter - linksEndeAlt = "-300px"; - rechtsEndeAlt = "-1px"; - // Anfangsposition des neuen Menues beim Wechsel herunter - linksAnfangNeu = "500px"; - rechtsAnfangNeu = "600px"; - // Endposition des neuen Menues beim Wechsel herunter - linksEndeNeu = "0px"; - rechtsEndeNeu = "300px"; - } - - var menuDiv = $("<div/>"); - $(menuDiv).addClass('app-menu-content'); - - $(menuDiv).css('position', "relative"); - $(menuDiv).css('left', linksAnfangNeu); - $(menuDiv).css('right', rechtsAnfangNeu); - $(menuDiv).html(Mustache.render(_app_menu_template, menuejs)); - - $('.app-menu-content').delay(100).animate( - {left: linksEndeAlt }, - 100, - function() { - $('.smenu').attr('onclick','').unbind('click'); - $('.bitem').attr('onclick','').unbind('click'); - $('.mitem').attr('onclick','').unbind('click'); - $(_app_menu_selector).empty(); - - $(_app_menu_selector).append(menuDiv); - $('.smenu').on('click', app_menu_klick_herunter); - $('.bitem').on('click', app_menu_klick_herauf); - $('.mitem').on('click', app_menu_ausfuehren); - - $('.app-menu-content').delay(100).animate({left: linksEndeNeu }); - $('.app-menu-content').animate({right: rechtsEndeNeu }); - } - ); - $('.app-menu-content').animate({right: rechtsEndeAlt }); -} - -function app_menu_klick_herunter() { - app_menu_laden($(this).attr('data-verweis'), 'herunter'); -} - -function app_menu_klick_herauf() { - app_menu_laden($(this).attr('data-verweis'), 'herauf'); -} - -function app_menu_ausfuehren() { - var functionName = $(this).attr('data-verweis'); - eval(functionName + "(this)"); -} - -function app_menu_test() { - alert("Test"); -} - -function app_menu_test_2() { - alert("Test 2"); } -- Gitblit v1.9.3