ulrich
2018-03-30 6dab6e8fa04d8b83a68dae8b269e71ebad5c41f9
commit | author | age
d3a2d9 1 function AppVorlage() {
U 2   var self = this;
403f2f 3   var appMenu;
34aa39 4   var vorlagen;
d3a2d9 5
U 6   this.init = function() {
34aa39 7     self.vorlagen = new Vorlagen();
403f2f 8     self.appMenu = new AppMenu();
U 9     self.appMenu.init(
d3a2d9 10       "data/menu/",
U 11       "hauptmenue.json",
12       "jslib/app-menu/app-menu.tpl",
13       ".west",
14       "8em");
df8c52 15     $(".hamburger").on("click", function(e) {
34aa39 16       self.menue_umschalten();
df8c52 17     });
U 18
19   };
20
34aa39 21   this.menue_umschalten = function() {
df8c52 22     $(".hamburger").toggleClass("is-active"); // hamburger-icon umschalten
403f2f 23     self.appMenu.toggle(); // menue oeffnen/schliessen
d3a2d9 24   };
34aa39 25
U 26   this.info_dialog_zeigen = function() {
27     self.dialog_laden_und_zeigen('data/tpl/dlg-info.tpl', '');
28     self.menue_umschalten();
29   };
30
31   this.seitenleiste_umschalten = function() {
32     var ostDiv = $('.ost');
33     if($(ostDiv).hasClass('ost-open')) {
34       $(ostDiv).removeClass('ost-open');
35       $(ostDiv).css("flex-basis", "0em");
36     } else {
37       $(ostDiv).addClass('ost-open');
38       $(ostDiv).css("flex-basis", '6em'); // z.B. "16em"
39     }
40     self.menue_umschalten();
41   };
42
43   this.fusszeile_umschalten = function() {
44     var suedDiv = $('.sued');
45     if($(suedDiv).hasClass('sued-open')) {
46       $(suedDiv).removeClass('sued-open');
47       $(suedDiv).css("height", "0");
48     } else {
49       $(suedDiv).addClass('sued-open');
50       $(suedDiv).css("height", '1.5em'); // z.B. "16em"
51     }
52     self.menue_umschalten();
53   };
54
55   this.menu_message = function(msg) {
56     self.meldung_mit_timeout(msg, 1500);
57     var suedDiv = $('.sued');
58     if($(suedDiv).hasClass('sued-open')) {
59     } else {
60       $(suedDiv).addClass('sued-open');
61       $(suedDiv).css("height", '1.5em'); // z.B. "16em"
62     }
63     self.menue_umschalten();
64   };
65
66   this.message_1 = function() {
67     self.menu_message('Eine Mitteilung.');
68   };
69
70   this.message_2 = function() {
71     self.menu_message('Was wir schon immer sagen wollten.');
72   };
73
74   this.message_3 = function(text) {
75     self.menu_message(text);
76   };
77
78   this.meldung_mit_timeout = function(meldung, timeout) {
79     var s = $('.sued');
80     s.text(meldung);
81     setTimeout(function() {
82       s.text('Bereit.');
83       setTimeout(function() {
84         var suedDiv = $('.sued');
85         if($(suedDiv).hasClass('sued-open')) {
86           $(suedDiv).removeClass('sued-open');
87           $(suedDiv).css("height", "0");
88         }
89       }, 500);
90     }, timeout);
91   };
92
93   /* Dialog-Funktionen */
94
95   /*
96     Einen Dialog aus Vorlagen erzeugen
97
98     vurl - URL zur Dialogvorlage
99     msgTpl - URL mit einer Vorlage eines Mitteilungstextes (optional)
100   */
101   this.dialog_laden_und_zeigen = function(vurl, msgTpl) {
102     if(msgTpl !== '') {
103       $.ajax({
104         url: msgTpl,
105         type: "GET",
106         dataType : "json"
107       }).done(function( msg ) {
108         self.dialog_zeigen(vurl, msg);
109       });
110     } else {
111       self.dialog_zeigen(vurl, '');
112     }
113   };
114
115   this.dialog_zeigen = function(vurl, inhalt) {
116     var dlg = $(".dialog");
117     self.vorlagen.html_erzeugen(
118       vurl,
119       inhalt,
120       function(html) {
121         dlg.html(html);
122         $(".close-btn").on('click', function() {
123           self.dialog_schliessen();
124         });
125         dlg.slideDown(300);
126     });
127   };
128
129   self.dialog_schliessen = function() {
130     $('.close-btn').off('click');
131     $('.dialog').slideUp(300);
132   };
133
134
d3a2d9 135 }