| | |
| | | var TPL_PREFS = 'prefs'; |
| | | var TPL_SENDER = 'sender'; |
| | | var TPL_DLG_MSG = 'dlg-msg'; |
| | | var templateCache = {}; // mustache templates 'home', 'prefs', 'sender' |
| | | var TPL_DLG_INFO = 'dlg-info'; |
| | | var TPL_DLG_SENDER_NEU = 'dlg-sender-neu'; |
| | | var TPL_DLG_SENDER_EDIT = 'dlg-sender-edit'; |
| | | var TPL_SENDER_EDIT_FORM = 'sender-edit-form'; |
| | | var TPL_SENDER_KACHEL = 'sender-kachel'; |
| | | var templateCache = {}; // mustache templates |
| | | var prefsRendered = false; |
| | | var senderKlickModus = "0"; // 1=abspielen, 2=bearbeiten, 3=loeschen |
| | | var ID_UNDEFINED = -1; |
| | | |
| | | function app_init() { |
| | | $('.dialog').hide(); |
| | | $('.ost').hide(); |
| | | app_menu_init("menu/", "hauptmenue.json", "../jslib/app-menu/app-menu.tpl", ".west"); |
| | | app_get_template('tpl/dlg-msg.tpl', TPL_DLG_MSG); |
| | | app_get_template('tpl/sender.tpl', TPL_SENDER); |
| | | app_menu_init( |
| | | "data/menu/", |
| | | "hauptmenue.json", |
| | | "../jslib/app-menu/app-menu.tpl", |
| | | ".west", |
| | | "8em"); |
| | | app_get_template('data/tpl/dlg-msg.tpl', TPL_DLG_MSG); |
| | | app_get_template('data/tpl/dlg-info.tpl', TPL_DLG_INFO); |
| | | app_get_template('data/tpl/sender.tpl', TPL_SENDER); |
| | | app_get_template('data/tpl/dlg-sender-neu.tpl', TPL_DLG_SENDER_NEU); |
| | | app_get_template('data/tpl/dlg-sender-edit.tpl', TPL_DLG_SENDER_EDIT); |
| | | app_get_template('data/tpl/dlg-sender-edit-form.tpl', TPL_SENDER_EDIT_FORM); |
| | | app_get_template('data/tpl/kachel.tpl', TPL_SENDER_KACHEL); |
| | | //app_get_template('tpl/prefs.tpl', 'prefs'); |
| | | $('.sued').text('Bereit.'); |
| | | setTimeout(function() { |
| | |
| | | }, 200); |
| | | } |
| | | |
| | | /* Senderliste */ |
| | | |
| | | function app_kachel_anpassen(sender) { |
| | | var kachel = $( "div[sid='" + sender.id + "']" ); |
| | | $(kachel).find(".sender-name").text(sender.name); |
| | | $(kachel).attr("data-verweis", sender.url); |
| | | $(kachel).find("img").attr("src", sender.logo); |
| | | } |
| | | |
| | | function app_kachel_neu(sender) { |
| | | var html = Mustache.render(templateCache[TPL_SENDER_KACHEL], sender); |
| | | $("#sender").append(html); |
| | | var kachel = $( "div[sid='" + sender.id + "']" ); |
| | | $(kachel).on('click', app_kachel_klick); |
| | | } |
| | | |
| | | function app_kachel_klick() { |
| | | var kachel = $( this ); |
| | | var senderId = $(kachel).attr("sid"); |
| | | var senderName = $(kachel).find(".sender-name").text(); |
| | | var senderUrl = $(kachel).attr("data-verweis"); |
| | | var senderLogo = $(kachel).find("img").attr("src"); |
| | | var s = new Sender(senderId, senderName, senderUrl, senderLogo); |
| | | switch (senderKlickModus) { |
| | | case "1": |
| | | break; |
| | | case "2": |
| | | $(".dlg-behaelter").html( |
| | | Mustache.render(templateCache[TPL_SENDER_EDIT_FORM], s) |
| | | ); |
| | | $('#sender-speichern').on('click', function() { |
| | | $('#sender-speichern').off('click'); |
| | | app_kachel_anpassen(app_sender_dialog_lesen(senderId)); |
| | | app_dialog_schliessen(); |
| | | app_meldung_mit_timeout('Speichern gewaehlt', 1500); |
| | | }); |
| | | break; |
| | | case "3": |
| | | break; |
| | | default: |
| | | app_meldung_mit_timeout( |
| | | 'Sender ' + s.name + ', ID ' + s.id, |
| | | 1500 |
| | | ); |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |
| | | /* --- Menüfunktionen --- */ |
| | | |
| | | function app_nachricht_test() { |
| | | app_nachricht_zeigen('data/msg-test.json'); |
| | | app_dialog_laden_und_zeigen( |
| | | templateCache[TPL_DLG_MSG], 'data/msg-test.json'); |
| | | app_menu_toggle(); |
| | | } |
| | | |
| | | function app_info_dialog_zeigen() { |
| | | app_dialog_laden_und_zeigen(templateCache[TPL_DLG_INFO], ''); |
| | | app_menu_toggle(); |
| | | } |
| | | |
| | | function app_neuer_sender() { |
| | | app_dialog_laden_und_zeigen(templateCache[TPL_DLG_SENDER_NEU], ''); |
| | | $('#sender-speichern').on('click', function() { |
| | | $('#sender-speichern').off('click'); |
| | | app_kachel_neu(app_sender_dialog_lesen(--ID_UNDEFINED)); |
| | | app_dialog_schliessen(); |
| | | app_meldung_mit_timeout('Speichern gewaehlt', 1500); |
| | | }); |
| | | app_menu_toggle(); |
| | | } |
| | | |
| | | function app_sender_bearbeiten() { |
| | | senderKlickModus = "2"; // bearbeiten |
| | | app_dialog_laden_und_zeigen(templateCache[TPL_DLG_SENDER_EDIT], ''); |
| | | app_menu_toggle(); |
| | | } |
| | | |
| | | function app_sender_loeschen() { |
| | | app_meldung_mit_timeout('Nicht implementiert: Sender loeschen.', 1500); |
| | | app_menu_toggle(); |
| | | } |
| | | |
| | | /* --- Dialogfunktionen --- */ |
| | | |
| | | function app_dialog_zeigen(vorlage, inhalt) { |
| | | $(".dialog").html(Mustache.render(vorlage, inhalt)); |
| | | $(".close-btn").on('click', function() { |
| | | app_dialog_schliessen(); |
| | | }); |
| | | $('.dialog').slideDown(300); |
| | | } |
| | | |
| | | function app_sender_dialog_lesen(senderId) { |
| | | var nameNeu = $("#sender-name").val(); |
| | | var logoNeu = $("#sender-logo").val(); |
| | | var urlNeu = $("#sender-url").val(); |
| | | return new Sender(senderId, nameNeu, urlNeu, logoNeu); |
| | | } |
| | | |
| | | function app_dialog_schliessen() { |
| | | senderKlickModus = "0"; |
| | | $('.close-btn').off('click'); |
| | | $('.dialog').slideUp(300); |
| | | } |
| | | |
| | | /* --- Meldungen in der Fusszeile --- */ |
| | | |
| | | /* |
| | | Eine Meldung eine Zeitlang in der Fusszeile anzeigen |
| | | |
| | | meldung - Text der Meldung |
| | | timeout - die Anzahl Millisekunden, die eine Meldung zu sehen sein soll |
| | | */ |
| | | function app_meldung_mit_timeout(meldung, timeout) { |
| | | $('.sued').text(meldung); |
| | | setTimeout(function() { |
| | | $('.sued').text('Bereit.'); |
| | | }, timeout); |
| | | } |
| | | |
| | | /* --- Ajax-Aufrufe --- */ |
| | |
| | | type: "GET", |
| | | dataType : "json" |
| | | }).done(function( senderliste ) { |
| | | $("#sender").html(Mustache.render(templateCache[TPL_SENDER], senderliste)); |
| | | $(".sender-kachel").off("click"); |
| | | $(".sender-behaelter").html( |
| | | Mustache.render(templateCache[TPL_SENDER], senderliste)); |
| | | $('.sender-kachel').on('click', app_kachel_klick); |
| | | }); |
| | | } |
| | | |
| | | function app_nachricht_zeigen(addr) { |
| | | $.ajax({ |
| | | url: addr, |
| | | type: "GET", |
| | | dataType : "json" |
| | | }).done(function( msg ) { |
| | | $(".dialog").html(Mustache.render(templateCache[TPL_DLG_MSG], msg)); |
| | | $(".close-btn").on('click', function() { |
| | | $('.close-btn').attr('onclick','').unbind('click'); |
| | | $('.dialog').slideUp(300); |
| | | function app_dialog_laden_und_zeigen(vorlage, adresse) { |
| | | if(adresse !== '') { |
| | | $.ajax({ |
| | | url: adresse, |
| | | type: "GET", |
| | | dataType : "json" |
| | | }).done(function( msg ) { |
| | | app_dialog_zeigen(vorlage, msg); |
| | | }); |
| | | $('.dialog').slideDown(300); |
| | | }); |
| | | } else { |
| | | app_dialog_zeigen(vorlage, ''); |
| | | } |
| | | } |
| | | |
| | | /* |
| | |
| | | templateCache[tname] = template; |
| | | }); |
| | | } |
| | | |
| | | /* Objekte */ |
| | | |
| | | function Sender(i, n, u, l) { |
| | | this.id = i; |
| | | this.name = n; |
| | | this.url = u; |
| | | this.logo = l; |
| | | } |