// ---------------------------------------------- // Beispiel lit-x // app.js // ---------------------------------------------- // Verwendung von jquery, Single-Page / Ajax, Event-Service // REST-Interface // ---------------------------------------------- 'use strict' // ---------------------------------------------- // Namensraum einrichten // ---------------------------------------------- let APP = {}; // ---------------------------------------------- APP.Application_cl = class { // ---------------------------------------------- constructor () { this.content_o = null; // das jeweils aktuelle Objekt im Contentbereich this.nav_o = new APP.Nav_cl(); this.listProjekt_o = new APP.ListView_cl('projekt', '/projekt/', 'projektlist.tpl'); this.detailProjekt_o = new APP.DetailView_cl('projekt', '/projekt/', 'projektdetail.tpl'); this.listKomponente_o = new APP.ListView_cl('komponente', '/komponente/', 'komponentelist.tpl'); this.detailKomponente_o = new APP.DetailView_cl('komponente', '/komponente/', 'komponentedetail.tpl'); this.listQsMitarbeiter_o = new APP.ListView_cl('qsmitarbeiter', '/qsmitarbeiter/', 'qsmitarbeiterlist.tpl'); this.detailQsMitarbeiter_o = new APP.DetailView_cl('qsmitarbeiter', '/qsmitarbeiter/', 'qsmitarbeiterdetail.tpl'); this.listSwEntwickler_o = new APP.ListView_cl('swentwickler', '/swentwickler/', 'swentwicklerlist.tpl'); this.detailSwEntwickler_o = new APP.DetailView_cl('swentwickler', '/swentwickler/', 'swentwicklerdetail.tpl'); this.listKatFehler_o = new APP.ListView_cl('katfehler', '/katfehler/', 'katfehlerlist.tpl'); this.detailKatFehler_o = new APP.DetailView_cl('katfehler', '/katfehler/', 'katfehlerdetail.tpl'); this.listKatUrsache_o = new APP.ListView_cl('katursache', '/katursache/', 'katursachelist.tpl'); this.detailKatUrsache_o = new APP.DetailView_cl('katursache', '/katursache/', 'katursachedetail.tpl'); this.listFehler_o = new APP.ListView_cl('fehler', '/fehler/?type=erkannt', 'fehlerlist.tpl'); this.detailFehler_o = new APP.DetailView_cl('fehler', '/fehler/', 'fehlerdetail.tpl'); this.detailFehlerQs_o = new APP.DetailView_cl('fehler', '/fehler/', 'fehlerqsdetail.tpl'); this.detailFehlerSw_o = new APP.DetailView_cl('fehler', '/fehler/', 'fehlerswdetail.tpl'); this.detailFehlerQsp_o = new APP.DetailView_cl('fehler', '/fehler/', 'fehlerqspdetail.tpl'); this.listPro_o = new APP.ListView_cl('prolist', '/prolist/', 'prolist.tpl'); this.listKat_o = new APP.ListView_cl('katlist', '/katlist/', 'katlist.tpl'); // this.listSources_o = new APP.ListView_cl('source', '/source/', 'sourceslist.tpl'); // this.detailSources_o = new APP.SourceDetailView_cl('source', '/source/', 'sourcedetail.tpl'); // this.listEvaluated_o = new APP.ListView_cl('evaluated', '/evaluated/', 'evaluatedlist.tpl'); // this.detailEvaluated_o = new APP.DetailView_cl('evaluated', '/evaluated/', 'evaluateddetail.tpl'); // Registrierungen APP.es_o.subscribe_px(this, 'app'); } notify_px (self_opl, message_spl, data_apl) { switch (message_spl) { case 'app': switch (data_apl[0]) { case 'init': APP.tm_o = new TemplateManager_cl(); break; case 'templates.loaded': self_opl.nav_o.render_px(); // Liste Quellen im Content-Bereich anzeigen // self_opl.setContent_p(self_opl.listSources_o, data_apl[1]); break; case 'projekt': self_opl.setContent_p(self_opl.listProjekt_o, data_apl[1]); break; case 'projekt.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailProjekt_o, data_apl[1]); break; case 'projekt.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailProjekt_o, data_apl[1]); break; case 'komponente': self_opl.setContent_p(self_opl.listKomponente_o, data_apl[1]); break; case 'komponente.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKomponente_o, data_apl[1]); break; case 'komponente.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKomponente_o, data_apl[1]); break; case 'qsmitarbeiter': self_opl.setContent_p(self_opl.listQsMitarbeiter_o, data_apl[1]); break; case 'qsmitarbeiter.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailQsMitarbeiter_o, data_apl[1]); break; case 'qsmitarbeiter.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailQsMitarbeiter_o, data_apl[1]); break; case 'swentwickler': self_opl.setContent_p(self_opl.listSwEntwickler_o, data_apl[1]); break; case 'swentwickler.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailSwEntwickler_o, data_apl[1]); break; case 'swentwickler.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailSwEntwickler_o, data_apl[1]); break; case 'katfehler': self_opl.setContent_p(self_opl.listKatFehler_o, data_apl[1]); break; case 'katfehler.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKatFehler_o, data_apl[1]); break; case 'katfehler.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKatFehler_o, data_apl[1]); break; case 'katursache': self_opl.setContent_p(self_opl.listKatUrsache_o, data_apl[1]); break; case 'katursache.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKatUrsache_o, data_apl[1]); break; case 'katursache.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailKatUrsache_o, data_apl[1]); break; case 'fehler': self_opl.setContent_p(self_opl.listFehler_o, data_apl[1]); break; case 'fehler.add': // (leeres) Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailFehler_o, data_apl[1]); break; case 'fehler.edit': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailFehler_o, data_apl[1]); break; case 'fehler.qs': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailFehlerQs_o, data_apl[1]); break; case 'fehler.sw': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailFehlerSw_o, data_apl[1]); break; case 'fehler.qsp': // Detailformular im Content-Bereich anzeigen self_opl.setContent_p(self_opl.detailFehlerQsp_o, data_apl[1]); break; case 'prolist': self_opl.setContent_p(self_opl.listPro_o, data_apl[1]); break; case 'katlist': self_opl.setContent_p(self_opl.listKat_o, data_apl[1]); break; default: console.warn('[Application_cl] unbekannte app-Notification: '+data_apl[0]); break; } break; default: console.warn('[Application_cl] unbekannte Notification: '+message_spl); break; } } setContent_p (newContent_opl, data_opl) { if (this.content_o != null) { if (this.content_o === newContent_opl) { // Achtung: Vergleich auf Identität (===) und nicht nur auf Gleichheit (==) // wird bereits angezeigt, keine Änderung } else { if (this.content_o.canClose_px()) { this.content_o.close_px(); this.content_o = newContent_opl; this.content_o.render_px(data_opl); } } } else { this.content_o = newContent_opl; this.content_o.render_px(data_opl); } } } // ---------------------------------------------- $(document).ready(function(){ // ---------------------------------------------- // wird ausgeführt, wenn das Dokument vollständig geladen wurde APP.es_o = new EventService_cl(); APP.app_o = new APP.Application_cl(); APP.es_o.publish_px('app', ['init', null]); }); // EOF