| | |
| | | /* |
| | | * 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"); |
| | | } |