raimund@548: /** raimund@548: * Copyright (C) 2013 by Bundesamt fuer Strahlenschutz raimund@548: * Software engineering by Intevation GmbH raimund@548: * raimund@548: * This file is Free Software under the GNU GPL (v>=3) raimund@548: * and comes with ABSOLUTELY NO WARRANTY! Check out raimund@548: * the documentation coming with IMIS-Labordaten-Application for details. raimund@548: */ raimund@548: Ext.Loader.setConfig({ raimund@548: enabled: true, raimund@548: paths: { dustin@885: 'Ext.i18n': 'resources/lib/ext/i18n/', raimund@1287: 'Ext.ux.upload': 'resources/lib/ext/upload', raimund@1308: 'Ext.ux.util': 'resources/lib/ext/util', raimund@1308: 'Ext.ux.grid': 'resources/lib/ext/grid' raimund@548: } raimund@548: }); raimund@548: raimund@548: Ext.application({ raimund@548: raimund@548: // Name of the application. Do not change as this name is used in raimund@548: // references! raimund@548: name: 'Lada', raimund@548: raimund@548: // Setting up translations. This is done using a ext-plgin which can be raimund@548: // found on https://github.com/elmasse/Ext.i18n.Bundle raimund@548: requires: [ raimund@1051: 'Lada.view.Viewport', raimund@548: 'Lada.override.Table', andre@608: 'Lada.override.RestProxy', raimund@570: 'Lada.override.RowEditor', dustin@679: 'Lada.override.i18n.DE', dustin@679: 'Lada.override.JSON', raimund@1111: 'Lada.override.RowExpander', raimund@1308: 'Lada.override.StringFilter', raimund@1111: 'Lada.view.plugin.GridRowExpander', raimund@548: 'Ext.i18n.Bundle', raimund@548: 'Ext.layout.container.Column', raimund@1051: 'Lada.store.Deskriptoren', raimund@1051: 'Lada.store.Ortszuordnung', raimund@1051: 'Lada.store.Messungen', raimund@1051: 'Lada.store.Zusatzwerte', raimund@1051: 'Lada.store.Status', raimund@1051: 'Lada.store.Messwerte', raimund@1051: 'Lada.store.MKommentare', raimund@548: 'Lada.store.Datenbasis', raimund@548: 'Lada.store.Messeinheiten', raimund@548: 'Lada.store.Messgroessen', raimund@548: 'Lada.store.Messmethoden', raimund@548: 'Lada.store.Messstellen', raimund@548: 'Lada.store.Netzbetreiber', dustin@1004: 'Lada.store.Orte', raimund@548: 'Lada.store.Pflichtmessgroessen', raimund@548: 'Lada.store.Probenarten', raimund@548: 'Lada.store.Probenzusaetze', raimund@548: 'Lada.store.Staaten', raimund@548: 'Lada.store.Umwelt', dustin@963: 'Lada.store.Verwaltungseinheiten', dustin@963: 'Lada.store.StatusWerte', raimund@1066: 'Lada.store.StatusStufe', tom@1217: 'Lada.store.StatusKombi', mstanko@1107: 'Lada.store.Probenehmer', mstanko@1107: 'Lada.store.DatensatzErzeuger', mstanko@1107: 'Lada.store.MessprogrammKategorie', tom@1157: 'Lada.store.MessungQueries', raimund@1317: 'Lada.store.Ktas', raimund@1317: 'Lada.store.OrtsZusatz', raimund@1317: 'Lada.store.OrtTyp', raimund@1317: 'Lada.store.KoordinatenArt', raimund@1066: 'Lada.model.MessstelleLabor' raimund@548: ], raimund@548: bundle: { raimund@548: bundle: 'Lada', raimund@548: lang: 'de-DE', raimund@548: path: 'resources/i18n', raimund@548: noCache: true raimund@548: }, raimund@548: raimund@548: // Setting this variable to true triggers loading the Viewport.js raimund@548: // file which sets ob the viewport. raimund@668: //autoCreateViewport: true, raimund@548: raimund@548: // Start the application. raimund@548: launch: function() { dustin@716: Lada.username = ''; dustin@716: Lada.userroles = ''; dustin@716: Lada.logintime = ''; dustin@798: Lada.mst = []; raimund@1075: Lada.netzbetreiber = []; tom@1270: Lada.clientVersion = '2.5-SNAPSHOT'; dustin@805: Lada.serverVersion = ''; dustin@716: andre@608: var queryString = document.location.href.split('?')[1]; andre@608: if (queryString) { andre@608: Lada.openIDParams = queryString; andre@608: } andre@608: Ext.Ajax.request({ dustin@999: url: 'lada-server/rest/user', andre@608: method: 'GET', andre@608: scope: this, andre@608: success: this.onLoginSuccess, andre@608: failure: this.onLoginFailure andre@608: }); andre@608: }, andre@608: raimund@669: onLoginFailure: function(response) { andre@608: try { andre@608: var json = Ext.decode(response.responseText); andre@608: if (json) { raimund@669: if (json.message === '699') { andre@608: /* This is the unauthorized message with the authentication andre@608: * redirect in the data */ raimund@913: Ext.MessageBox.alert('Es konnte kein Benutzername gefunden werden!', raimund@913: json.data); andre@608: return; andre@608: } raimund@669: if (json.message === '698') { andre@608: /* This is general authentication error */ andre@608: Ext.MessageBox.alert('Kommunikation mit dem Login Server fehlgeschlagen', andre@608: json.data); andre@608: return; andre@608: } andre@608: } raimund@669: } raimund@669: catch (e) { andre@608: // This is likely a 404 or some unknown error. Show general error then. andre@608: } andre@608: Ext.MessageBox.alert('Kommunikation mit dem Lada Server fehlgeschlagen', andre@608: 'Es konnte keine erfolgreiche Verbindung zum lada server aufgebaut werden.'); andre@608: }, andre@608: dustin@715: onLoginSuccess: function(response) { dustin@715: /* Parse Username and Timestamp */ dustin@715: var json = Ext.decode(response.responseText); dustin@716: Lada.username = json.data.username; dustin@716: Lada.userroles = json.data.roles; dustin@716: Lada.logintime = json.data.servertime; raimund@1066: Lada.mst = []; //Store Messstellen this user may select raimund@1039: Lada.funktionen = json.data.funktionen; raimund@1083: Lada.netzbetreiber = json.data.netzbetreiber; dustin@809: //Lada.serverVersion dustin@809: this.getServerVersion(); raimund@1066: var mstLabor = json.data.messstelleLabor; raimund@1066: for (var i = 0; i < mstLabor.length; i++) { raimund@1066: Lada.mst.push(mstLabor[i].messstelle); raimund@1066: Lada.mst.push(mstLabor[i].labor); raimund@1066: } raimund@1066: raimund@1066: var mstLaborStore = Ext.create('Ext.data.Store', { raimund@1066: storeId: 'messstellelabor', raimund@1066: model: 'Lada.model.MessstelleLabor' raimund@1066: }); dustin@715: raimund@548: Ext.create('Lada.store.Datenbasis', { raimund@548: storeId: 'datenbasis' raimund@548: }); raimund@548: Ext.create('Lada.store.Messeinheiten', { raimund@548: storeId: 'messeinheiten' raimund@548: }); raimund@548: Ext.create('Lada.store.Messgroessen', { raimund@548: storeId: 'messgroessen' raimund@548: }); raimund@548: Ext.create('Lada.store.Messmethoden', { raimund@548: storeId: 'messmethoden' raimund@548: }); raimund@548: Ext.create('Lada.store.Messstellen', { raimund@1066: storeId: 'messstellen', raimund@1066: listeners: { raimund@1066: load: { raimund@1066: fn: function(store, records) { raimund@1066: for (var i = 0; i < mstLabor.length; i++) { raimund@1066: var item = store.getById(mstLabor[i].messstelle); raimund@1066: var itemLabor = store.getById(mstLabor[i].labor); raimund@1084: if (!itemLabor) { raimund@1084: continue; raimund@1084: } mstanko@1116: if ( item.get('messStelle') === itemLabor.get('messStelle') ) { mstanko@1116: displayCombi = item.get('messStelle'); mstanko@1116: } else { mstanko@1116: displayCombi = item.get('messStelle') + '/' + itemLabor.get('messStelle') mstanko@1116: } raimund@1066: mstLaborStore.add({ raimund@1066: id: i, raimund@1066: messStelle: mstLabor[i].messstelle, raimund@1066: netzbetreiberId: item.get('netzbetreiberId'), raimund@1066: laborMst: mstLabor[i].labor, mstanko@1116: displayCombi: displayCombi raimund@1066: }); raimund@1066: } raimund@1066: } raimund@1066: } raimund@1066: } raimund@548: }); raimund@548: Ext.create('Lada.store.Netzbetreiber', { raimund@548: storeId: 'netzbetreiber' raimund@548: }); dustin@1004: Ext.create('Lada.store.Orte', { dustin@1021: storeId: 'orte', dustin@1021: defaultPageSize: 0 raimund@548: }); raimund@548: Ext.create('Lada.store.Pflichtmessgroessen', { raimund@548: storeId: 'pflichtmessgroessen' raimund@548: }); raimund@548: Ext.create('Lada.store.Probenarten', { raimund@548: storeId: 'probenarten' raimund@548: }); raimund@548: Ext.create('Lada.store.Probenzusaetze', { raimund@548: storeId: 'probenzusaetze' raimund@548: }); raimund@548: Ext.create('Lada.store.Staaten', { raimund@548: storeId: 'staaten' raimund@548: }); raimund@548: Ext.create('Lada.store.Umwelt', { raimund@548: storeId: 'umwelt' raimund@548: }); raimund@548: Ext.create('Lada.store.Verwaltungseinheiten', { raimund@548: storeId: 'verwaltungseinheiten' raimund@548: }); mstanko@1107: Ext.create('Lada.store.Probenehmer', { ehuber@1108: storeId: 'probenehmer', mstanko@1116: autoLoad: true mstanko@1107: }); mstanko@1107: Ext.create('Lada.store.DatensatzErzeuger', { mstanko@1116: storeId: 'datensatzerzeuger', mstanko@1116: autoLoad: true mstanko@1107: }); mstanko@1107: Ext.create('Lada.store.MessprogrammKategorie', { mstanko@1116: storeId: 'messprogrammkategorie', mstanko@1116: autoLoad: true mstanko@1107: }); dustin@963: Ext.create('Lada.store.StatusWerte', { dustin@965: storeId: 'statuswerte', dustin@965: autoLoad: true dustin@963: }); dustin@963: Ext.create('Lada.store.StatusStufe', { dustin@965: storeId: 'statusstufe', dustin@965: autoLoad: 'true' dustin@963: }); tom@1217: Ext.create('Lada.store.StatusKombi', { tom@1217: storeId: 'statuskombi', tom@1217: autoLoad: 'true' tom@1217: }); raimund@1015: Ext.create('Lada.store.ProbeQueries', { raimund@1015: storeId: 'probequeries', raimund@1015: autoLoad: 'true' raimund@1015: }); raimund@1077: Ext.create('Lada.store.MessungQueries', { raimund@1077: storeId: 'messungqueries', raimund@1077: autoLoad: 'true' raimund@1077: }); raimund@1015: Ext.create('Lada.store.MessprogrammQueries', { raimund@1015: storeId: 'messprogrammqueries', raimund@1015: autoLoad: 'true' raimund@1015: }); raimund@1015: Ext.create('Lada.store.StammdatenQueries', { raimund@1015: storeId: 'stammdatenqueries', raimund@1015: autoLoad: 'true' raimund@1015: }); raimund@1317: Ext.create('Lada.store.Ktas', { raimund@1317: storeId: 'ktas', raimund@1317: autoLoad: 'true' raimund@1317: }); raimund@1317: Ext.create('Lada.store.OrtsZusatz', { raimund@1317: storeId: 'ortszusatz', raimund@1317: autoLoad: 'true' raimund@1317: }); raimund@1317: Ext.create('Lada.store.OrtTyp', { raimund@1317: storeId: 'orttyp', raimund@1317: autoLoad: 'true' raimund@1317: }); raimund@1317: Ext.create('Lada.store.KoordinatenArt', { raimund@1317: storeId: 'koordinatenart', raimund@1317: autoLoad: 'true' raimund@1317: }); raimund@1015: dustin@967: //A Store containing all MST a User is allowed to set. dustin@967: Ext.create('Lada.store.Messstellen', { dustin@967: storeId: 'messstellenFiltered', dustin@967: filters: function(item) { dustin@967: if (Ext.Array.contains(Lada.mst, item.get('id'))) { dustin@967: return true; dustin@967: } dustin@967: return false; dustin@967: } dustin@967: }); raimund@1075: Ext.create('Lada.store.Netzbetreiber', { raimund@1075: storeId: 'netzbetreiberFiltered', raimund@1075: filters: function(item) { raimund@1075: if (Ext.Array.contains(Lada.netzbetreiber, item.get('id'))) { raimund@1075: return true; raimund@1075: } raimund@1075: return false; raimund@1075: } raimund@1075: }); raimund@1015: Ext.create('Lada.view.Viewport'); raimund@548: }, raimund@548: dustin@801: getServerVersion: function() { dustin@801: var i18n = Lada.getApplication().bundle; dustin@801: Ext.Ajax.request({ dustin@999: url: 'lada-server/rest/version', dustin@801: method: 'GET', dustin@801: headers: { dustin@801: 'X-OPENID-PARAMS': Lada.openIDParams dustin@801: }, dustin@801: success: function(response) { dustin@801: var json = Ext.decode(response.responseText); dustin@805: Lada.serverVersion = json.data; dustin@801: }, dustin@801: failure: function(response) { dustin@801: console.log('Error in retrieving the server version.' dustin@801: + ' It might be lower than 2.0-beta2' dustin@801: + ' Or something is broken...'); dustin@805: Lada.serverVersion = i18n.getMsg('err.msg.generic.title'); dustin@801: } dustin@801: }); dustin@801: }, dustin@801: raimund@548: // Define the controllers of the application. They will be initialized raimund@548: // first before the application "launch" function is called. raimund@548: controllers: [ raimund@548: 'Lada.controller.Filter', dustin@978: 'Lada.controller.ModeSwitcher', dustin@1011: 'Lada.controller.Map', raimund@1049: 'Lada.controller.Ort', dustin@975: 'Lada.controller.grid.ProbeList', raimund@1077: 'Lada.controller.grid.MessungList', dustin@975: 'Lada.controller.grid.MessprogrammeList', dustin@984: 'Lada.controller.grid.Datensatzerzeuger', dustin@984: 'Lada.controller.grid.Probenehmer', raimund@587: 'Lada.controller.form.Probe', dustin@611: 'Lada.controller.form.Messung', mkrambach@1337: 'Lada.controller.form.Ortserstellung', raimund@587: 'Lada.controller.grid.Probenzusatzwert', raimund@587: 'Lada.controller.grid.PKommentar', raimund@597: 'Lada.controller.grid.MKommentar', raimund@588: 'Lada.controller.grid.Messung', raimund@595: 'Lada.controller.grid.Messwert', raimund@638: 'Lada.controller.grid.Status', raimund@1051: 'Lada.controller.grid.Ortszuordnung', raimund@1051: 'Lada.controller.form.Ortszuordnung', dustin@747: 'Lada.controller.form.Location', dustin@758: 'Lada.controller.form.Messprogramm', raimund@1072: 'Lada.controller.grid.MessprogrammKategorie', raimund@1015: 'Lada.controller.grid.Messmethode', raimund@1287: 'Lada.controller.FilterManagement', raimund@1287: 'Ext.ux.util.AlwaysOnTop' dustin@758: ] raimund@548: });