# HG changeset patch # User Raimund Renkert # Date 1425642232 -3600 # Node ID d47ee7439f449f9b710266ec403ca4ab5b54c536 # Parent f172b35a3b92802e940f25dee81309b6c32cb9da Added new js files. diff -r f172b35a3b92 -r d47ee7439f44 app.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,108 @@ +/** + * Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ +Ext.Loader.setConfig({ + enabled: true, + paths: { + 'Ext.ux.form.DateTimeField': 'resources/lib/datetime/UX_DateTimeField.js', + 'Ext.ux.DateTimeMenu': 'resources/lib/datetime/UX_DateTimeMenu.js', + 'Ext.ux.DateTimePicker': 'resources/lib/datetime/UX_DateTimePicker.js', + 'Ext.ux.form.TimePickerField': 'resources/lib/datetime/UX_TimePickerField.js', + 'Ext.i18n': 'resources/lib/i18n/' + } +}); + +Ext.application({ + + // Name of the application. Do not change as this name is used in + // references! + name: 'Lada', + + // Setting up translations. This is done using a ext-plgin which can be + // found on https://github.com/elmasse/Ext.i18n.Bundle + requires: [ + 'Lada.override.Table', + 'Ext.i18n.Bundle', + 'Ext.layout.container.Column', + 'Lada.store.Datenbasis', + 'Lada.store.Messeinheiten', + 'Lada.store.Messgroessen', + 'Lada.store.Messmethoden', + 'Lada.store.Messstellen', + 'Lada.store.Netzbetreiber', + 'Lada.store.Locations', + 'Lada.store.Pflichtmessgroessen', + 'Lada.store.Probenarten', + 'Lada.store.Probenzusaetze', + 'Lada.store.Staaten', + 'Lada.store.Umwelt', + 'Lada.store.Verwaltungseinheiten' + ], + bundle: { + bundle: 'Lada', + lang: 'de-DE', + path: 'resources/i18n', + noCache: true + }, + + // Setting this variable to true triggers loading the Viewport.js + // file which sets ob the viewport. + autoCreateViewport: true, + + // Start the application. + launch: function() { + Ext.create('Lada.store.Datenbasis', { + storeId: 'datenbasis' + }); + Ext.create('Lada.store.Messeinheiten', { + storeId: 'messeinheiten' + }); + Ext.create('Lada.store.Messgroessen', { + storeId: 'messgroessen' + }); + Ext.create('Lada.store.Messmethoden', { + storeId: 'messmethoden' + }); + Ext.create('Lada.store.Messstellen', { + storeId: 'messstellen' + }); + Ext.create('Lada.store.Netzbetreiber', { + storeId: 'netzbetreiber' + }); + Ext.create('Lada.store.Locations', { + storeId: 'locations' + }); + Ext.create('Lada.store.Pflichtmessgroessen', { + storeId: 'pflichtmessgroessen' + }); + Ext.create('Lada.store.Probenarten', { + storeId: 'probenarten' + }); + Ext.create('Lada.store.Probenzusaetze', { + storeId: 'probenzusaetze' + }); + Ext.create('Lada.store.Staaten', { + storeId: 'staaten' + }); + Ext.create('Lada.store.Umwelt', { + storeId: 'umwelt' + }); + Ext.create('Lada.store.Verwaltungseinheiten', { + storeId: 'verwaltungseinheiten' + }); + }, + + // Define the controllers of the application. They will be initialized + // first before the application "launch" function is called. + controllers: [ + 'Lada.controller.Filter', + 'Lada.controller.FilterResult', + 'Lada.controller.ProbeForm', + 'Lada.controller.OrtGrid' + ] +}); diff -r f172b35a3b92 -r d47ee7439f44 app/controller/Filter.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controller/Filter.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,224 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Controller for the Filter + * This controller handles all logic related to the filter + */ +Ext.define('Lada.controller.Filter', { + extend: 'Ext.app.Controller', + + requires: [ + 'Lada.view.widget.Messstelle', + 'Lada.view.widget.Umwelt' + ], + + stores: [ + 'ProbenList', // List of found Proben + 'Queries' + ], + + init: function() { + this.control({ + // CSS like selector to select element in the viewport. See + // ComponentQuery documentation for more details. + 'combobox[name=filter]': { + // Map Doubleclick on rows of the probenlist. + select: this.selectSql + }, + 'button[action=search]': { + // Map click event on Button. + click: this.search + }, + 'button[action=reset]': { + // Map click event on Button. + click: this.reset + }, + 'menuitem[action=about]': { + // Map click event on Button. + click: this.about + } + }); + this.callParent(arguments); + }, + + /** + * Function called when the user selects a SQL query in the dropdownlist. + * The function will hide/display additional element related to the + * selected search query + */ + selectSql: function(element, record) { + var resultGrid = element.up('panel[name=main]').down('filterresultgrid'); + var filters = element.up('panel[name=main]').down('fieldset[name=filtervariables]'); + var columns = element.up('fieldset').down('displayfield[name=columns]'); + var desc = element.up('fieldset').down('displayfield[name=description]'); + var displayFields = record[0].data.results; + var filterFields = record[0].data.filters; + + this.reset(); + + var columnString = []; + for (var i = 0; i < displayFields.length; i++) { + columnString.push(displayFields[i].header); + } + columns.setValue(columnString.join(', ')); + desc.setValue(record[0].data.description); + + // Setup Columns of the probenlist + displayFields.reverse(); + resultGrid.setupColumns(displayFields); + + // Setup Filters of the probenlist + // + // Allowed types are + // * text + // * number + // * datetime + // * bool + // * listmst + // * listumw + // * listver + // * listdbasis + // * listnetz + // + // Iterate over all configured filters and add filters dynamically + // + // 1. Empty filters + filters.removeAll(); + var hide = true; + // 2. Iterate over all configured filters + var j; + for (j = 0; j < filterFields.length; j++) { + var type = filterFields[j].type; + var name = filterFields[j].dataIndex; + var label = filterFields[j].label; + var multi = filterFields[j].multiSelect; + var field = null; + if (type === 'text') { + field = Ext.create('Ext.form.field.Text', { + name: name, + fieldLabel: label + }); + } + else if (type === 'number') { + field = Ext.create('Ext.form.field.Number', { + name: name, + labelWidth: 135, + fieldLabel: label + }); + } + else if (type === 'datetime') { + field = Ext.create('Lada.view.widgets.Datetime', { + name: name, + labelWidth: 135, + fieldLabel: label + }); + } + else if (type === 'bool') { + field = Ext.create('Lada.view.widgets.Testdatensatz', { + name: name, + labelWidth: 135, + fieldLabel: label, + emptyText: '' + }); + } + else if (type === 'listmst') { + field = Ext.create('Lada.view.widgets.Messstelle', { + name: name, + labelWidth: 135, + fieldLabel: label, + multiSelect: multi + }); + } + else if (type === 'listumw') { + field = Ext.create('Lada.view.widgets.Umwelt', { + name: name, + labelWidth: 135, + fieldLabel: label, + multiSelect: multi + }); + } + else if (type === 'listdbasis') { + field = Ext.create('Lada.view.widgets.Datenbasis', { + name: name, + labelWidth: 135, + fieldLabel: label, + multiSelect: multi + }); + } + else if (type === 'listver') { + field = Ext.create('Lada.view.widgets.Verwaltungseinheit', { + name: name, + labelWidth: 135, + fieldLabel: label, + multiSelect: multi + }); + } + else if (type === 'listnetz') { + field = Ext.create('Lada.view.widgets.Netzbetreiber', { + name: name, + labelWidth: 135, + fieldLabel: label, + multiSelect: multi + }); + } + if (field) { + filters.add(field); + filters.show(); + hide = false; + } + } + if (hide) { + filters.hide(); + } + }, + + /** + * Function is called when the user clicks the search button. The function + * will perform a search to the server on refreshes the result list. + */ + search: function(element) { + var resultGrid = element.up('panel[name=main]').down('filterresultgrid'); + var filters = element.up('panel[name=main]').down('fieldset[name=filtervariables]'); + var search = element.up('fieldset').down('combobox[name=filter]'); + + // Get search parameters: + var searchParams = {}; + searchParams['qid'] = search.getValue(); + for (var i = filters.items.length - 1; i >= 0; i--) { + var filter = filters.items.items[i]; + var value = filter.getValue(); + if (value instanceof Array) { + value = value.join(','); + } + searchParams[filter.getName()] = value; + } + resultGrid.getStore().load({ + params: searchParams + }); + resultGrid.show(); + }, + + reset: function() { + // var buttons = Ext.getCmp('SearchBtnPanel'); + // var result = Ext.getCmp('result'); + // for (var i = 0; i < queries.length; ++i) { + // var toHide = Ext.getCmp(queries[i]); + // toHide.hide(); + // } + // result.hide(); + // buttons.hide(); + }, + + about: function() { + var info = this.getInfoStore(); + Ext.widget('about', { + info: info + }); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/controller/FilterResult.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controller/FilterResult.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,55 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Controller for filter result grid. + */ +Ext.define('Lada.controller.FilterResult', { + extend: 'Ext.app.Controller', + requires: [ + 'Lada.view.window.ProbeEdit' + ], + + init: function() { + this.control({ + 'filterresultgrid': { + itemdblclick: this.editItem + }, + 'filterresultgrid toolbar button[action=add]': { + click: this.addItem + }, + 'filterresultgrid toolbar button[action=import]': { + click: this.uploadFile + }, + 'filterresultgrid toolbar button[action=export]': { + click: this.downloadFile + } + }); + this.callParent(arguments); + }, + + editItem: function(grid, record) { + var win = Ext.create('Lada.view.window.ProbeEdit', { + record: record + }); + win.show(); + win.initData(); + }, + + addItem: function(button) { + + }, + + uploadFile: function(button) { + + }, + + downloadFile: function(button) { + + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/controller/OrtGrid.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controller/OrtGrid.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,65 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.controller.OrtGrid', { + extend: 'Ext.app.Controller', + + init: function() { + this.control({ + 'ortgrid': { + selectionchange: this.selectionChanged, + edit: this.gridSave + }, + 'ortgrid button[action=open]': { + click: this.open + }, + 'ortgrid button[action=add]': { + click: this.add + }, + 'ortgrid button[action=delete]': { + click: this.remove + } + }); + }, + + selectionChanged: function(grid, record) { + if (record) { + grid.view.panel.down('button[action=open]').enable(); + } + }, + + gridSave: function(editor, context) { + context.record.save(); + context.grid.store.reload(); + context.grid.up('window').initData(); + }, + + open: function() { + console.log('open'); + }, + + add: function() { + console.log('add'); + }, + + remove: function(button) { + var grid = button.up('grid'); + var selection = grid.getView().getSelectionModel().getSelection()[0]; + Ext.MessageBox.confirm('Löschen', 'Sind Sie sicher?', function(btn) { + if (btn === 'yes') { + selection.destroy({ + success: function() { + button.up('window').initData(); + }, + failure: function() { + } + }); + } + }); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/controller/ProbeForm.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/controller/ProbeForm.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,68 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.controller.ProbeForm', { + extend: 'Ext.app.Controller', + + init: function() { + this.control({ + 'probeform button[action=save]': { + click: this.save + }, + 'probeform button[action=discard]': { + click: this.discard + }, + 'probeform': { + dirtychange: this.dirtyForm + } + }); + }, + + save: function(button) { + var formPanel = button.up('form'); + var data = formPanel.getForm().getFieldValues(true); + for (var key in data) { + formPanel.getForm().getRecord().set(key, data[key]); + } + formPanel.getForm().getRecord().save({ + success: function(record, response) { + var json = Ext.decode(response.response.responseText); + if (response.action !== 'create' && + json && + json.success) { + formPanel.setRecord(record); + formPanel.setMessages(json.errors, json.warnings); + } + }, + failure: function(record, response) { + console.log('failed...'); + var json = response.request.scope.reader.jsonData; + if (json) { + formPanel.setMessages(json.errors, json.warnings); + } + } + }); + console.log('save'); + }, + + discard: function(button) { + var formPanel = button.up('form'); + formPanel.getForm().loadRecord(formPanel.getForm().getRecord()); + }, + + dirtyForm: function(form, dirty) { + if (dirty) { + form.owner.down('button[action=save]').setDisabled(false); + form.owner.down('button[action=discard]').setDisabled(false); + } + else { + form.owner.down('button[action=save]').setDisabled(true); + form.owner.down('button[action=discard]').setDisabled(true); + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Datenbasis.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Datenbasis.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,39 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Datenbasis Stammdaten. + */ +Ext.define('Lada.model.Datenbasis', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - beschreibung: The long description. + * - datenbasis: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'datenbasis' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/datenbasis', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Location.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Location.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,65 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Ort Stammdaten + */ +Ext.define('Lada.model.Location', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'bezeichnung' + }, { + name: 'beschreibung' + }, { + name: 'unscharf' + }, { + name: 'nutsCode' + }, { + name: 'koordXExtern' + }, { + name: 'koordYExtern' + }, { + name: 'hoeheLand' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'longitude', + type: 'float' + }, { + name: 'latitude', + type: 'float' + }, { + name: 'staatId' + }, { + name: 'verwaltungseinheitId' + }, { + name: 'otyp' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/location', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/MKommentar.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/MKommentar.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,45 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Kommentare on Messungen + */ +Ext.define('Lada.model.MKommentar', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'messungsId' + }, { + name: 'erzeuger' + }, { + name: 'datum', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'text' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/mkommentar', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messeinheit.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messeinheit.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,45 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Messeinheit Stammdaten. + */ +Ext.define('Lada.model.Messeinheit', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - beschreibung: The long description. + * - einheit: The unit. + * - eudfMesseinheitId: + * - umrechnungsFaktorEudf: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'einheit' + }, { + name: 'eudfMesseinheitId' + }, { + name: 'umrechnungsFaktorEudf' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/messeinheit', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messgroesse.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messgroesse.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,53 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Messgroesse Stammdaten. + */ +Ext.define('Lada.model.Messgroesse', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - beschreibung: The long description. + * - defaultFarbe: + * - idfNuklidKey: + * - istLeitNuklid: + * - eudfNuklidId: + * - kennungBvl: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'messgroesse' + }, { + name: 'defaultFarbe' + }, { + name: 'idfNuklidKey' + }, { + name: 'istLeitNuklid' + }, { + name: 'eudfNuklidId' + }, { + name: 'kennungBvl' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/messgroesse', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messmethode.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messmethode.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,46 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Messmethode Stammdaten. + */ +Ext.define('Lada.model.Messmethode', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - beschreibung: The long description. + * - messmethode: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'messmethode' + }, { + name: 'display', + persist: false, + convert: function(value, record) { + return record.get('id') + ' - ' + record.get('messmethode'); + } + + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/messmethode', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messstelle.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messstelle.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,48 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Messstelle Stammdaten. + */ +Ext.define('Lada.model.Messstelle', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - beschreibung: The long description. + * - netzbetreiberId: + * - messStelle: + * - mstTyp: + * - amtskennung: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'netzbetreiberId' + }, { + name: 'messStelle' + }, { + name: 'mstTyp' + }, { + name: 'amtskennung' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/messstelle', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messung.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messung.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,64 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Messungen + */ +Ext.define('Lada.model.Messung', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'probeId' + }, { + name: 'mmtId' + }, { + name: 'nebenprobenNr' + }, { + name: 'messdauer' + }, { + name: 'messzeitpunkt', + convert: function(v) { + if (!v) { + return v; + } + return new Date(); + }, + defaultValue: new Date() + }, { + name: 'fertig', + type: 'boolean' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(); + }, + defaultValue: new Date() + }, { + name: 'geplant', + type: 'boolean' + }, { + name: 'messungsIdAlt' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/messung', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Messwert.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Messwert.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,59 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Messwerte + */ +Ext.define('Lada.model.Messwert', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'messungsId' + }, { + name: 'messgroesseId' + }, { + name: 'messwert', + type: 'float' + }, { + name: 'messwertNwg' + }, { + name: 'messfehler', + type: 'float' + }, { + name: 'nwgZuMesswert', + type: 'float' + }, { + name: 'mehId' + }, { + name: 'grenzwertueberschreitung', + type: 'boolean' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(); + }, + defaultValue: new Date() + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'server/rest/messwert', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Netzbetreiber.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Netzbetreiber.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,51 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model for Netzbetreiber Stammdaten. + */ +Ext.define('Lada.model.Netzbetreiber', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifier (Primary key). + * - netzbetreiber: + * - idfNetzbetreiber: + * - isBmn: + * - mailverteiler: + * - aktiv: + * - zustMstId: + */ + fields: [{ + name: 'id' + }, { + name: 'netzbetreiber' + }, { + name: 'idfNetzbetreiber' + }, { + name: 'isBmn' + }, { + name: 'mailverteiler' + }, { + name: 'aktiv' + }, { + name: 'zustMstId' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/netzbetreiber', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Ort.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Ort.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,49 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Ort + */ +Ext.define('Lada.model.Ort', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id', + type: 'int' + }, { + name: 'ort', + type: 'int' + }, { + name: 'probeId' + }, { + name: 'ortsTyp' + }, { + name: 'ortszusatztext' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/ort', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/PKommentar.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/PKommentar.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,45 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Kommentare + */ +Ext.define('Lada.model.PKommentar', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'probeId' + }, { + name: 'erzeuger' + }, { + name: 'datum', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'text' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/pkommentar', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Pflichtmessgroesse.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Pflichtmessgroesse.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,45 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Pflichtmessgroesse Stammdaten. + */ +Ext.define('Lada.model.Pflichtmessgroesse', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifer (Primary key) + * - messgroesseId: + * - mmtId: + * - umwId: + * - datenbasisId: + */ + fields: [{ + name: 'id' + }, { + name: 'messgroesseId' + }, { + name: 'mmtId' + }, { + name: 'umwId' + }, { + name: 'datenbasisId' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/pflichtmessgroesse', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Probe.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Probe.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,118 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * A Probe. + * This class represents and defines the model of a 'Probe' + **/ +Ext.define('Lada.model.Probe', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'probeIdAlt' + }, { + name: 'hauptprobenNr' + }, { + name: 'test' + }, { + name: 'netzbetreiberId' + }, { + name: 'mstId' + }, { + name: 'datenbasisId' + }, { + name: 'baId' + }, { + name: 'probenartId' + }, { + name: 'mediaDesk' + }, { + name: 'media' + }, { + name: 'umwId' + }, { + name: 'probeentnahmeBeginn', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'probeentnahmeEnde', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'mittelungsdauer' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'erzeugerId' + }, { + name: 'probeNehmerId' + }, { + name: 'mpKat' + }, { + name: 'mplId' + }, { + name: 'mprId' + }, { + name: 'solldatumBeginn', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'solldatumEnde', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }, { + name: 'readonly', + type: 'bool', + persist: false + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/probe', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/ProbeList.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/ProbeList.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,30 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * A ProbeList. + * This class represents the result list of 'Proben' in the search query + * */ +Ext.define('Lada.model.ProbeList', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'readonly' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/probe', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Probenart.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Probenart.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,42 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Probenart Stammdaten. + */ +Ext.define('Lada.model.Probenart', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifer (Primary key) + * - beschreibung: The long description. + * - probenart: + * - probenartEudfId: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'probenart' + }, { + name: 'probenartEudfId' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/probenart', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Probenzusatz.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Probenzusatz.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,46 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Probenzusatz Stammdaten. + */ +Ext.define('Lada.model.Probenzusatz', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifer (Primary key) + * - beschreibung: The long description. + * - mehId: + * - zusatzwert: + * - eudfKeyword: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'mehId', + type: 'int' + }, { + name: 'zusatzwert' + }, { + name: 'eudfKeyword' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/probenzusatz', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Query.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Query.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,37 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for SQL-Querys + */ +Ext.define('Lada.model.Query', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'name' + }, { + name: 'description' + }, { + name: 'sql' + }, { + name: 'results' + }, { + name: 'filters' + }], + + proxy: { + type: 'rest', + url: 'lada-server/query', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Staat.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Staat.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,36 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Staat Stammdaten + */ +Ext.define('Lada.model.Staat', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id', + type: 'int' + }, { + name: 'staat' + }, { + name: 'staatIso' + }, { + name: 'staatKurz' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/staat', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Umwelt.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Umwelt.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,42 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Umweltbereich Stammdaten. + */ +Ext.define('Lada.model.Umwelt', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifer (Primary key) + * - beschreibung: The long description. + * - umweltBereich: + * - mehId: + */ + fields: [{ + name: 'id' + }, { + name: 'beschreibung' + }, { + name: 'mehId' + }, { + name: 'umweltBereich' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/umwelt', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Verwaltungseinheit.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Verwaltungseinheit.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,66 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Verwaltungseinheit Stammdaten. + */ +Ext.define('Lada.model.Verwaltungseinheit', { + extend: 'Ext.data.Model', + + /** + * Fields are: + * - id: The unique identifer (Primary key) + * - beschreibung: The long description. + * - umweltBereich: + * - mehId: + */ + fields: [{ + name: 'id' + }, { + name: 'bundeland' + }, { + name: 'kdaId' + }, { + name: 'kreis' + }, { + name: 'nuts' + }, { + name: 'regbezirk' + }, { + name: 'bezeichnung' + }, { + name: 'isBundeland' + }, { + name: 'isGemeinde' + }, { + name: 'isLandkreis' + }, { + name: 'isRegbezirk' + }, { + name: 'koordXExtern' + }, { + name: 'koordYExtern' + }, { + name: 'plz' + }, { + name: 'longitude' + }, { + name: 'latitude' + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/verwaltungseinheit', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/model/Zusatzwert.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/model/Zusatzwert.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,52 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Model class for Zusatzwerte + */ +Ext.define('Lada.model.Zusatzwert', { + extend: 'Ext.data.Model', + + fields: [{ + name: 'id' + }, { + name: 'probeId' + }, { + name: 'pzsId' + }, { + name: 'nwgZuMesswert', + type: 'float' + }, { + name: 'messwertPzs', + type: 'float' + }, { + name: 'messfehler', + type: 'float' + }, { + name: 'letzteAenderung', + type: 'date', + convert: function(v) { + if (!v) { + return v; + } + return new Date(v); + }, + defaultValue: new Date() + }], + + idProperty: 'id', + + proxy: { + type: 'rest', + url: 'lada-server/zusatzwert', + reader: { + type: 'json', + root: 'data' + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/override/Table.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/override/Table.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,36 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.override.Table', { + override: 'Ext.view.Table', + + doStripeRows: function(startRow, endRow) { + var me = this; + var rows; + var rowsLn; + var i; + var row; + + if (me.rendered && me.stripeRows) { + rows = me.getNodes(startRow, endRow); + + for (i = 0, rowsLn = rows.length; i < rowsLn; i++) { + row = rows[i]; + + if (row) { // self updating; check for row existence + row.className = row.className.replace(me.rowClsRe, ' '); + startRow++; + + if (startRow % 2 === 0) { + row.className += (' ' + me.altRowCls); + } + } + } + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Datenbasis.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Datenbasis.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Datenbasis + */ +Ext.define('Lada.store.Datenbasis', { + extend: 'Ext.data.Store', + model: 'Lada.model.Datenbasis', + sorters: [{ + property: 'datenbasis', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Locations.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Locations.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,19 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Ortedetails + */ +Ext.define('Lada.store.Locations', { + extend: 'Ext.data.Store', + model: 'Lada.model.Location', + sorters: [{ + property: 'bezeichnung' + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/MKommentare.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/MKommentare.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,15 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Kommentare + */ +Ext.define('Lada.store.MKommentare', { + extend: 'Ext.data.Store', + model: 'Lada.model.MKommentar' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messeinheiten.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messeinheiten.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messeinheit + */ +Ext.define('Lada.store.Messeinheiten', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messeinheit', + sorters: [{ + property: 'einheit', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messgroessen.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messgroessen.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messgroessen + */ +Ext.define('Lada.store.Messgroessen', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messgroesse', + sorters: [{ + property: 'messgroesse', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messmethoden.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messmethoden.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messmethoden + */ +Ext.define('Lada.store.Messmethoden', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messmethode', + sorters: [{ + property: 'messmethode', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messstellen.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messstellen.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messstellen + */ +Ext.define('Lada.store.Messstellen', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messstelle', + sorters: [{ + property: 'messStelle', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messungen.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messungen.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messungen + */ +Ext.define('Lada.store.Messungen', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messung' +}); + diff -r f172b35a3b92 -r d47ee7439f44 app/store/Messwerte.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Messwerte.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Messwerte + */ +Ext.define('Lada.store.Messwerte', { + extend: 'Ext.data.Store', + model: 'Lada.model.Messwert' +}); + diff -r f172b35a3b92 -r d47ee7439f44 app/store/Netzbetreiber.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Netzbetreiber.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Netzbetreiber + */ +Ext.define('Lada.store.Netzbetreiber', { + extend: 'Ext.data.Store', + model: 'Lada.model.Netzbetreiber', + sorters: [{ + property: 'netzbetreiber', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Orte.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Orte.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,15 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Orte + */ +Ext.define('Lada.store.Orte', { + extend: 'Ext.data.Store', + model: 'Lada.model.Ort' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/PKommentare.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/PKommentare.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,15 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Kommentare + */ +Ext.define('Lada.store.PKommentare', { + extend: 'Ext.data.Store', + model: 'Lada.model.PKommentar' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Pflichtmessgroessen.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Pflichtmessgroessen.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Pflichtmessgroessen + */ +Ext.define('Lada.store.Pflichtmessgroessen', { + extend: 'Ext.data.Store', + model: 'Lada.model.Pflichtmessgroesse', + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Proben.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Proben.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,15 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Proben + */ +Ext.define('Lada.store.Proben', { + extend: 'Ext.data.Store', + model: 'Lada.model.Probe' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/ProbenList.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/ProbenList.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,15 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Proben + */ +Ext.define('Lada.store.ProbenList', { + extend: 'Ext.data.Store', + model: 'Lada.model.ProbeList' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Probenarten.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Probenarten.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Probenarten + */ +Ext.define('Lada.store.Probenarten', { + extend: 'Ext.data.Store', + model: 'Lada.model.Probenart', + sorters: [{ + property: 'probenart', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Probenzusaetze.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Probenzusaetze.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Probenzusaetze + */ +Ext.define('Lada.store.Probenzusaetze', { + extend: 'Ext.data.Store', + model: 'Lada.model.Probenzusatz', + sorters: [{ + property: 'zusatzwert', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Probenzusatzwerte.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Probenzusatzwerte.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,19 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Probenzusatzwerte + */ +Ext.define('Lada.store.Probenzusatzwerte', { + extend: 'Ext.data.Store', + sorters: [{ + property: 'beschreibung' + }], + autoLoad: true, + model: 'Lada.model.Probenzusatzwert' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Queries.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Queries.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Queries + */ +Ext.define('Lada.store.Queries', { + extend: 'Ext.data.Store', + model: 'Lada.model.Query', + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Staaten.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Staaten.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,19 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Staaten + */ +Ext.define('Lada.store.Staaten', { + extend: 'Ext.data.Store', + model: 'Lada.model.Staat', + sorters: [{ + property: 'staat' + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Status.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Status.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Status + */ +Ext.define('Lada.store.Status', { + extend: 'Ext.data.Store', + model: 'Lada.model.Status', + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Umwelt.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Umwelt.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,25 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Umweltbereiche + */ +Ext.define('Lada.store.Umwelt', { + extend: 'Ext.data.Store', + model: 'Lada.model.Umwelt', + sorters: [{ + property: 'umweltBereich', + transform: function(val) { + if (val) { + return val.toLowerCase(); + } + return ''; + } + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Verwaltungseinheiten.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Verwaltungseinheiten.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,19 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Verwaltungseinheiten + */ +Ext.define('Lada.store.Verwaltungseinheiten', { + extend: 'Ext.data.Store', + model: 'Lada.model.Verwaltungseinheit', + sorters: [{ + property: 'bezeichnung' + }], + autoLoad: true +}); diff -r f172b35a3b92 -r d47ee7439f44 app/store/Zusatzwerte.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/Zusatzwerte.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,16 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Store for Zusatzwerte + */ +Ext.define('Lada.store.Zusatzwerte', { + extend: 'Ext.data.Store', + autoLoad: true, + model: 'Lada.model.Zusatzwert' +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/FilterPanel.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/FilterPanel.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,69 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Panel to show available search queryies + */ +Ext.define('Lada.view.FilterPanel', { + extend: 'Ext.form.FieldSet', + alias: 'widget.filterpanel', + + require: [ + 'Ext.layout.container.Column' + ], + + title: 'Filter-Auswahl', + initComponent: function() { + this.layout = { + type: 'vbox', + align: 'stretch' + }; + this.items = [{ + xtype: 'combobox', + name: 'filter', + editable: false, + store: 'Queries', + displayField: 'name', + valueField: 'id', + emptyText: 'Wählen Sie eine Abfrage' + }, { + xtype: 'panel', + border: false, + margin: '0 0 10 0', + items: [{ + xtype: 'button', + action: 'search', + text: 'Suchen', + margin: '0 10 0 0' + }, { + xtype: 'button', + action: 'reset', + text: 'Zurücksetzen' + }], + hidden: false + }, { + xtype: 'panel', + maxWidth: '500', + border: false, + margin: '0 10', + items: [{ + xtype: 'displayfield', + name: 'description', + fieldLabel: 'Beschreibung', + shrinkWrap: 3, + value: '-/-' + }, { + xtype: 'displayfield', + name: 'columns', + fieldLabel: 'Spalten', + value: '-/-' + }] + }]; + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/Viewport.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/Viewport.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,94 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Viewport for the Lada-Client + * + * The viewport initialises the graphical elements of the application. For + * debugging it is possible to initialize other components directly see the + * initComponent function. + */ +Ext.define('Lada.view.Viewport', { + extend: 'Ext.container.Viewport', + requires: [ + 'Lada.view.FilterPanel', + 'Lada.view.grid.FilterResult' + ], + layout: 'fit', + initComponent: function() { + this.items = [{ + title: '
Labordatenerfassung
', + layout: 'border', + name: 'main', + items: [{ + layout: { + type: 'vbox', + align: 'stretch' + }, + region: 'west', + split: true, + border: 1, + flex: 1, + dockedItems: [{ + xtype: 'toolbar', + dock: 'top', + items: [{ + xtype: 'splitbutton', + text: 'Info', + menu: { + items: [{ + text: 'About', + action: 'about' + }] + } + }, '->', { + xtype: 'box', + autoEl: { + tag: 'img', + src: 'resources/img/user-identity.png' + } + }, { + xtype: 'tbtext', + id: 'userinfo', + text: '' + }, { + xtype: 'box', + autoEl: { + tag: 'img', + src: 'resources/img/network-workgroup.png' + } + }, { + xtype: 'tbtext', + id: 'groupinfo', + text: '' + }] + }], + items: [{ + // Auswahl einer Abfrage. + xtype: 'filterpanel', + margin: '0, 10, 0, 10' + }, { + // Variables settings for the current selected sql statement. + xtype: 'fieldset', + name: 'filtervariables', + title: 'Variablenbelegung', + hidden: true, + margin: '0, 10, 0, 10', + items: [] + }] + }, { + // Resultlist for the query. + flex: 3, + xtype: 'filterresultgrid', + hidden: false, + region: 'center' + }] + }]; + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/form/Probe.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/form/Probe.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,414 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Formular to edit a Probe + */ +Ext.define('Lada.view.form.Probe', { + extend: 'Ext.form.Panel', + alias: 'widget.probeform', + requires: [ + 'Lada.view.widget.Datenbasis', + 'Lada.view.widget.Netzbetreiber', + 'Lada.view.widget.Betriebsart', + 'Lada.view.widget.Testdatensatz', + 'Lada.view.widget.Probenart', + 'Lada.view.widget.Umwelt', + 'Lada.view.widget.base.TextField', + 'Lada.view.widget.base.Datetime', + 'Lada.view.widget.base.FieldSet', + 'Lada.model.Probe' + ], + + model: 'Lada.model.Probe', + minWidth: 650, + margin: 5, + border: 0, + + recordId: null, + + trackResetOnLoad: true, + + initComponent: function() { + var me = this; + this.items = [{ + xtype: 'fieldset', + title: 'Allgemein', + items: [{ + border: 0, + margin: '0, 0, 10, 0', + dockedItems: [{ + xtype: 'toolbar', + dock: 'bottom', + border: '0, 1, 1, 1', + style: { + borderBottom: '1px solid #b5b8c8 !important', + borderLeft: '1px solid #b5b8c8 !important', + borderRight: '1px solid #b5b8c8 !important' + }, + items: ['->', { + text: 'Speichern', + qtip: 'Daten speichern', + icon: 'resources/img/dialog-ok-apply.png', + action: 'save', + disabled: true + }, { + text: 'Verwerfen', + qtip: 'Änderungen verwerfen', + icon: 'resources/img/dialog-cancel.png', + action: 'discard', + disabled: true + }] + }], + items: [{ + layout: 'hbox', + border: 0, + items: [{ + border: 0, + width: '50%', + minWidth: 290, + layout: { + type: 'vbox', + align: 'stretch' + }, + margin: '0, 10, 0, 0', + items: [{ + xtype: 'messtelle', + name: 'mstId', + fieldLabel: 'Messstelle', + labelWidth: 135, + allowBlank: false + }, { + xtype: 'tfield', + name: 'hauptprobenNr', + maxLength: 20, + fieldLabel: 'Hauptprobennr.', + labelWidth: 135 + }] + }, { + border: 0, + width: '50%', + minWidth: 300, + items: [{ + xtype: 'fset', + title: 'Erweiterte Angaben', + collapsible: true, + collapsed: true, + items: [{ + xtype: 'datenbasis', + editable: false, + name: 'datenbasisId', + fieldLabel: 'Datenbasis', + labelWidth: 100, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'betriebsart', + name: 'baId', + fieldLabel: 'Betriebsart', + labelWidth: 100, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'testdatensatz', + name: 'test', + fieldLabel: 'Testdatensatz', + labelWidth: 100, + allowBlank: false, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'probenart', + editable: false, + name: 'probenartId', + fieldLabel: 'Probenart', + labelWidth: 100, + allowBlank: false, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'numberfield', + allowDecimals: false, + name: 'probeNehmerId', + fieldLabel: 'Probennehmer', + labelWidth: 100, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'netzbetreiber', + name: 'netzbetreiberId', + editable: false, + fieldLabel: 'Netzbetreiber', + labelWidth: 100, + allowBlank: false, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'tfield', + name: 'x11', + fieldLabel: 'Datensatzerzeuger', + labelWidth: 100, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }] + }] + }] + }, { + // Medium + xtype: 'fieldset', + title: 'Medium', + items: [{ + border: 0, + layout: { + type: 'vbox', + align: 'stretch' + }, + width: '100%', + items: [{ + xtype: 'textfield', + name: 'media', + labelWidth: 125, + fieldLabel: 'Medienbezeichnung', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'textfield', + maxLength: 100, + name: 'mediaDesk', + labelWidth: 125, + fieldLabel: 'Deskriptoren', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'umwelt', + name: 'umwId', + fieldLabel: 'Umweltbereich', + labelWidth: 125, + allowBlank: false, + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'fieldset', + title: 'Details Deskriptoren', + collapsible: true, + collapsed: true, + defaultType: 'textfield', + layout: { + type: 'table', + columns: 3 + }, + items: this.buildDescriptors(), + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }] + }] + }, { + // Zeit + xtype: 'fieldset', + title: 'Zeit', + layout: { + type: 'hbox' + }, + items: [{ + layout: { + type: 'vbox', + align: 'stretch' + }, + border: 0, + items: [{ + xtype: 'datetime', + fieldLabel: 'Probennahme Beginn', + fieldMargin: '0, 10, 5, 0', + labelWidth: 125, + name: 'probeentnahmeBeginn', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'datetime', + fieldLabel: 'Probennahme Ende', + fieldMargin: '0, 10, 5, 0', + labelWidth: 125, + name: 'probeentnahmeEnde', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }] + }, { + layout: 'vbox', + border: 0, + items: [{ + xtype: 'datetime', + fieldLabel: 'Sollzeit Von', + fieldMargin: '0, 10, 5, 0', + labelWidth: 90, + name: 'solldatumBeginn', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }, { + xtype: 'datetime', + fieldLabel: 'Sollzeit Bis', + fieldMargin: '0, 10, 5, 0', + labelWidth: 90, + name: 'solldatumEnde', + listeners: { + dirtychange: { + fn: this.updateOnChange, + scope: me + } + } + }] + }] + }] + }] + }]; + this.callParent(arguments); + }, + + setRecord: function(record) { + this.getForm().loadRecord(record); + }, + + setMessages: function(errors, warnings) { + var key; + var element; + var content; + var i18n = Lada.getApplication().bundle; + if (warnings) { + for (key in warnings) { + element = this.down('component[name=' + key + ']'); + if (!element) { + continue; + } + content = warnings[key]; + var warnText = ''; + for (var i = 0; i < content.length; i++) { + warnText += i18n.getMsg(content[i].toString()) + '\n'; + } + element.showWarnings(warnText); + } + } + if (errors) { + for (key in errors) { + element = this.down('component[name=' + key + ']'); + if (!element) { + continue; + } + content = errors[key]; + var errorText = ''; + for (var i = 0; i < content.length; i++) { + errorText += i18n.getMsg(content[i].toString()) + '\n'; + } + element.showErrors(errorText); + } + } + }, + + clearMessages: function() { + this.down('cbox[name=mstId]').clearWarningOrError(); + this.down('tfield[name=hauptprobenNr]').clearWarningOrError(); + this.down('cbox[name=datenbasisId]').clearWarningOrError(); + this.down('cbox[name=baId]').clearWarningOrError(); + this.down('cbox[name=test]').clearWarningOrError(); + this.down('cbox[name=probenartId]').clearWarningOrError(); + this.down('cbox[name=netzbetreiberId]').clearWarningOrError(); + this.down('tfield[name=x11]').clearWarningOrError(); + this.down('cbox[name=umwId]').clearWarningOrError(); + this.down('datetime[name=probeentnahmeBeginn]').clearWarningOrError(); + this.down('datetime[name=probeentnahmeEnde]').clearWarningOrError(); + this.down('datetime[name=solldatumBeginn]').clearWarningOrError(); + this.down('datetime[name=solldatumEnde]').clearWarningOrError(); + //this.down('cbox[name=probeNehmerId]').setReadOnly(value); + }, + + setReadOnly: function(value) { + this.down('cbox[name=mstId]').setReadOnly(value); + this.down('tfield[name=hauptprobenNr]').setReadOnly(value); + this.down('cbox[name=datenbasisId]').setReadOnly(value); + this.down('cbox[name=baId]').setReadOnly(value); + this.down('cbox[name=test]').setReadOnly(value); + this.down('cbox[name=probenartId]').setReadOnly(value); + this.down('cbox[name=netzbetreiberId]').setReadOnly(value); + this.down('tfield[name=x11]').setReadOnly(value); + this.down('textfield[name=media]').setReadOnly(value); + this.down('textfield[name=mediaDesk]').setReadOnly(value); + this.down('cbox[name=umwId]').setReadOnly(value); + this.down('datetime[name=probeentnahmeBeginn]').setReadOnly(value); + this.down('datetime[name=probeentnahmeEnde]').setReadOnly(value); + this.down('datetime[name=solldatumBeginn]').setReadOnly(value); + this.down('datetime[name=solldatumEnde]').setReadOnly(value); + //this.down('cbox[name=probeNehmerId]').setReadOnly(value); + }, + + buildDescriptors: function() { + var fields = []; + for (var i = 0; i < 12; i++) { + fields[i] = { + fieldLabel: 'S' + i, + name: 's' + i, + labelWidth: 25, + margin: '0, 10, 5, 0' + }; + } + return fields; + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/grid/FilterResult.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/grid/FilterResult.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,82 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Grid to list Proben + */ +Ext.define('Lada.view.grid.FilterResult', { + extend: 'Ext.grid.Panel', + alias: 'widget.filterresultgrid', + + store: 'ProbenList', + + multiSelect: true, + + viewConfig: { + emptyText: 'Keine Proben gefunden.', + deferEmptyText: false + }, + + initComponent: function() { + this.dockedItems = [{ + xtype: 'toolbar', + dock: 'top', + items: [{ + text: 'Hinzufügen', + icon: 'resources/img/list-add.png', + action: 'add' + }, { + text: 'Import', + icon: 'resources/img/svn-commit.png', + action: 'import' + }, { + text: 'Export', + icon: 'resources/img/svn-update.png', + action: 'export' + }] + }]; + this.columns = []; + this.callParent(arguments); + }, + + /** + * Setup columns of the Grid dynamically based on a list of given cols. + * The function is called from the {@link Lada.controller.Sql#selectSql + * select sql event} + */ + setupColumns: function(cols) { + var resultColumns = []; + var fields = []; + + resultColumns.push({ + header: 'RW', + dataIndex: 'readonly', + width: 30, + renderer: function(value) { + if (value) { + return ''; + } + return ''; + } + }); + fields.push(new Ext.data.Field({ + name: 'readonly' + })); + for (var i = cols.length - 1; i >= 0; i--) { + if (cols[i] === 'id') { + continue; + } + resultColumns.push(cols[i]); + fields.push(new Ext.data.Field({ + name: cols[i].dataIndex + })); + } + this.store.model.setFields(fields); + this.reconfigure(this.store, resultColumns); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/grid/Ort.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/grid/Ort.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,139 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Grid to list Orte + */ +Ext.define('Lada.view.grid.Ort', { + extend: 'Ext.grid.Panel', + alias: 'widget.ortgrid', + + maxHeight: 350, + emptyText: 'Keine Orte gefunden.', + // minHeight and deferEmptyText are needed to be able to show the + // emptyText message. + minHeight: 110, + viewConfig: { + deferEmptyText: false + }, + margin: '0, 5, 5, 5', + + recordId: null, + + warnings: null, + errors: null, + + initComponent: function() { + var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { + clicksToMoveEditor: 1, + autoCancel: false, + itemId: 'rowedit' + }); + this.plugins = [rowEditing]; + + this.dockedItems = [{ + xtype: 'toolbar', + dock: 'bottom', + items: ['->', { + text: 'Details', + icon: 'resources/img/document-open.png', + action: 'open', + disabled: true + }, { + text: 'Hinzufügen', + icon: 'resources/img/list-add.png', + action: 'add', + probeId: this.probeId + }, { + text: 'Löschen', + icon: 'resources/img/list-remove.png', + action: 'delete' + }] + }]; + this.columns = [{ + header: 'Typ', + dataIndex: 'ortsTyp', + width: 50, + editor: { + allowBlank: false + } + }, { + header: 'Staat', + dataIndex: 'ort', + width: 70, + renderer: function(value) { + var store = Ext.data.StoreManager.get('locations'); + var staaten = Ext.data.StoreManager.get('staaten'); + var record = + staaten.getById(store.getById(value).get('staatId')); + return record.get('staatIso'); + } + }, { + header: 'Gemeineschlüssel', + dataIndex: 'ort', + width: 120, + renderer: function(value) { + var store = Ext.data.StoreManager.get('locations'); + var record = store.getById(value); + return record.get('verwaltungseinheitId'); + } + }, { + header: 'Gemeindename', + dataIndex: 'ort', + flex: 1, + renderer: function(value) { + var store = Ext.data.StoreManager.get('locations'); + var gemeinden = + Ext.data.StoreManager.get('verwaltungseinheiten'); + var record = store.getById(value); + var gemid = record.get('verwaltungseinheitId'); + var record2 = gemeinden.getById(gemid); + return record2.get('bezeichnung'); + } + }, { + header: 'Messpunkt', + dataIndex: 'ort', + renderer: function(value) { + var store = Ext.getStore('locations'); + var record = store.getById(value); + return record.get('bezeichnung'); + } + }]; + this.initData(); + this.callParent(arguments); + }, + + initData: function() { + this.store = Ext.create('Lada.store.Orte'); + this.store.load({ + params: { + probeId: this.recordId + } + }); + Ext.ClassManager.get('Lada.model.Probe').load(this.recordId, { + failure: function(record, action) { + // TODO + }, + success: function(record, response) { + var json = Ext.decode(response.response.responseText); + if (json) { + this.warnings = json.warnings; + this.errors = json.errors; + } + }, + scope: this + }); + }, + + + setReadOnly: function() { + this.getPlugin('rowedit').disable(); + this.down('button[action=add]').disable(); + this.down('button[action=delete]').disable(); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/grid/PKommentar.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/grid/PKommentar.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,74 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Grid to list Kommentare + */ +Ext.define('Lada.view.grid.PKommentar', { + extend: 'Ext.grid.Panel', + alias: 'widget.pkommentargrid', + + requires: [ + 'Ext.toolbar.Toolbar' + ], + + maxHeight: 350, + emptyText: 'Keine Kommentaregefunden.', + minHeight: 65, + viewConfig: { + deferEmptyText: false + }, + + recordId: null, + + initComponent: function() { + var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { + clicksToMoveEditor: 1, + autoCancel: false + }); + this.plugins = [rowEditing]; + this.dockedItems = [{ + xtype: 'toolbar', + dock: 'bottom', + items: ['->', { + text: 'Hinzufügen', + icon: 'resources/img/list-add.png', + action: 'add', + probeId: this.probeId + }, { + text: 'Löschen', + icon: 'resources/img/list-remove.png', + action: 'delete' + }] + }]; + this.columns = [{ + header: 'Erzeuger', + dataIndex: 'erzeuger', + editor: { + allowBlank: false + } + }, { + header: 'Datum', + dataIndex: 'datum', + editor: { + xtype: 'datefield', + allowBlank: false, + format: 'd.m.Y', + maxValue: Ext.Date.format(new Date(), 'd.m.Y') + } + }, { + header: 'Text', + dataIndex: 'text', + flex: 1, + editor: { + allowBlank: false + } + }]; + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/grid/Probenzusatzwert.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/grid/Probenzusatzwert.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,114 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Grid to list Probenzusatzwerte + */ +Ext.define('Lada.view.grid.Probenzusatzwert', { + extend: 'Ext.grid.Panel', + alias: 'widget.probenzusatzwertgrid', + requires: [ + 'Lada.view.widget.Probenzusatzwert' + ], + + maxHeight: 350, + emptyText: 'Keine Zusatzwerte gefunden.', + minHeight: 110, + viewConfig: { + deferEmptyText: false + }, + margin: '0, 5, 5, 5', + + recordId: null, + + initComponent: function() { + var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { + clicksToMoveEditor: 1, + autoCancel: false + }); + this.plugins = [rowEditing]; + this.dockedItems = [{ + xtype: 'toolbar', + dock: 'bottom', + items: ['->', { + text: 'Details', + icon: 'resources/img/document-open.png', + action: 'open', + disabled: true + }, { + text: 'Hinzufügen', + icon: 'resources/img/list-add.png', + action: 'add', + probeId: this.probeId + }, { + text: 'Löschen', + icon: 'resources/img/list-remove.png', + action: 'delete' + }] + }]; + this.columns = [{ + header: 'PZW-ID', + dataIndex: 'id', + editor: { + xtype: 'numberfield', + allowBlank: false + } + }, { + header: 'PZW-Größe', + dataIndex: 'pzsId', + renderer: function(value) { + var store = Ext.data.StoreManager.get('probenzusaetze'); + var record = store.getById(value); + return record.get('beschreibung'); + }, + flex: 1, + editor: { + xtype: 'probenzusatzwert' + } + }, { + header: 'Messwert', + dataIndex: 'id', + renderer: function(value) { + var record = this.store.getById(value); + var messwert = record.get('messwertPzs'); + var nwg = record.get('nwgZuMesswert'); + if (messwert < nwg) { + return '<' + messwert; + } + return messwert; + } + }, { + header: 'rel. Unsich.[%]', + dataIndex: 'messfehler', + editor: { + allowBlank: false + } + }, { + header: 'Maßeinheit', + dataIndex: 'pzsId', + renderer: function(value) { + var zstore = Ext.data.StoreManager.get('probenzusaetze'); + var mstore = Ext.data.StoreManager.get('messeinheiten'); + var mehId = zstore.getById(value).get('mehId'); + var record = mstore.findRecord('id', mehId); + return record.get('einheit'); + } + }]; + this.initData(); + this.callParent(arguments); + }, + + initData: function() { + this.store = Ext.create('Lada.store.Zusatzwerte'); + this.store.load({ + params: { + probeId: this.recordId + } + }); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Betriebsart.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Betriebsart.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,35 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +var betriebsartStore = Ext.create('Ext.data.Store', { + fields: ['betriebsartId', 'betriebsart'], + data: [{ + 'betriebsartId': '1', + 'betriebsart': 'Normal-/Routinebtrieb' + }, { + 'betriebsartId': '2', + 'betriebsart': 'Störfall/Intensivbetrieb' + }] +}); + +/** + * Combobox for Betriebsart + */ +Ext.define('Lada.view.widget.Betriebsart', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.betriebsart', + store: betriebsartStore, + queryMode: 'local', + displayField: 'betriebsart', + valueField: 'betriebsartId', + emptyText: 'Wählen Sie eine Betriebsart', + + initComponent: function() { + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Datenbasis.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Datenbasis.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Datenbasis + */ +Ext.define('Lada.view.widget.Datenbasis', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.datenbasis', + store: 'Datenbasis', + displayField: 'datenbasis', + valueField: 'id', + emptyText: 'Wählen Sie eine Datenbasis', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('datenbasis'); + if (!this.store) { + this.store = Ext.create('Lada.store.Datenbasis'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Location.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Location.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,32 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Ortdetails + */ +Ext.define('Lada.view.widget.Location', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.location', + displayField: 'bezeichnung', + valueField: 'id', + emptyText: 'Wählen Sie einen Ort', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('locations'); + if (!this.store) { + this.store = Ext.create('Lada.store.Locations'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Messeinheit.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Messeinheit.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Messeinheit + */ +Ext.define('Lada.view.widget.Messeinheit', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.messeinheit', + store: 'Messeinheiten', + displayField: 'einheit', + valueField: 'id', + emptyText: 'Wählen Sie eine Messeinheit', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('messeinheiten'); + if (!this.store) { + this.store = Ext.create('Lada.store.Messeinheiten'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Messgroesse.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Messgroesse.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Messgroesse + */ +Ext.define('Lada.view.widget.Messgroesse', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.messgroesse', + store: 'Messgroessen', + displayField: 'messgroesse', + valueField: 'id', + emptyText: 'Wählen Sie eine Messgröße', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('messgroessen'); + if (!this.store) { + this.store = Ext.create('Lada.store.Messgroessen'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Messmethode.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Messmethode.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Messmethode + */ +Ext.define('Lada.view.widget.Messmethode', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.messmethode', + store: 'Messmethoden', + displayField: 'display', + valueField: 'id', + emptyText: 'Wählen Sie eine Messmethode', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: true, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('messmethoden'); + if (!this.store) { + this.store = Ext.create('Lada.store.Messmethoden'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Messstelle.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Messstelle.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Messstelle + */ +Ext.define('Lada.view.widget.Messstelle', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.messtelle', + store: 'Messstellen', + displayField: 'messStelle', + valueField: 'id', + emptyText: 'Wählen Sie eine Messstelle', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('messstellen'); + if (!this.store) { + this.store = Ext.create('Lada.store.Messstellen'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Netzbetreiber.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Netzbetreiber.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Netzbetreiber + */ +Ext.define('Lada.view.widget.Netzbetreiber', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.netzbetreiber', + store: 'StaNetzbetreiber', + displayField: 'netzbetreiber', + valueField: 'id', + emptyText: 'Wählen Sie einen Netzbetreiber', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('netzbetreiber'); + if (!this.store) { + this.store = Ext.create('Lada.store.Netzbetreiber'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Nwg.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Nwg.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,36 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +var nwgStore = Ext.create('Ext.data.Store', { + fields: ['nwgId', 'nwg'], + data: [{ + 'nwgId': '', + 'nwg': '>=' + }, { + 'nwgId': '<', + 'nwg': '<' + }] +}); + +/** + * Combobox for Nachweisgrenze. + */ +Ext.define('Lada.view.widget.Nwg', { + extend: 'Lada.view.widget.base.ComboBox', + editable: false, + alias: 'widget.nwg', + store: nwgStore, + queryMode: 'local', + displayField: 'nwg', + valueField: 'nwgId', + emptyText: 'Messwert kleiner als Nachweisgrenze?', + + initComponent: function() { + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Probenart.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Probenart.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Probenart + */ +Ext.define('Lada.view.widget.Probenart', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.probenart', + store: 'Probenarten', + displayField: 'probenart', + valueField: 'id', + emptyText: 'Wählen Sie eine Probenart', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('probenarten'); + if (!this.store) { + this.store = Ext.create('Lada.store.Probenarten'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Probenzusatzwert.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Probenzusatzwert.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Zusatzwert + */ +Ext.define('Lada.view.widget.Probenzusatzwert', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.probenzusatzwert', + store: 'Probenzusaetze', + displayField: 'beschreibung', + valueField: 'id', + emptyText: 'Wählen Sie einen Zusatzwert', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('probenzusaetze'); + if (!this.store) { + this.store = Ext.create('Lada.store.Probenzusaetze'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Staat.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Staat.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,33 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Staat + */ +Ext.define('Lada.view.widget.Staat', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.staat', + store: 'Staaten', + displayField: 'staat', + valueField: 'id', + emptyText: 'Wählen Sie einen Staat', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('staaten'); + if (!this.store) { + this.store = Ext.create('Lada.store.Staaten'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Status.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Status.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,46 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +var statuswerteStore = Ext.create('Ext.data.Store', { + fields: ['id', 'status'], + data: [{ + 'id': 1, + 'status': 'nicht vergeben' + }, { + 'id': 2, + 'status': 'plausibel' + }, { + 'id': 3, + 'status': 'nicht repräsentativ' + }, { + 'id': 4, + 'status': 'nicht plausibel' + }] +}); + +/** + * Combobox for Statuswert + */ +Ext.define('Lada.view.widget.Status', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.statuswert', + store: statuswerteStore, + displayField: 'status', + valueField: 'id', + emptyText: 'Wählen Sie eine Status', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + + initComponent: function() { + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Testdatensatz.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Testdatensatz.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,37 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +var testdatensatzStore = Ext.create('Ext.data.Store', { + fields: ['testdatensatzId', 'testdatensatz'], + data: [{ + 'testdatensatzId': true, + 'testdatensatz': 'Ja' + }, { + 'testdatensatzId': false, + 'testdatensatz': 'Nein' + }] +}); + +/** + * Combobox for Testdatensatz. + * This widget is also used a generic "Ja/Nein" combobox. + */ +Ext.define('Lada.view.widget.Testdatensatz', { + extend: 'Lada.view.widget.base.ComboBox', + editable: false, + alias: 'widget.testdatensatz', + store: testdatensatzStore, + queryMode: 'local', + displayField: 'testdatensatz', + valueField: 'testdatensatzId', + emptyText: 'Testdatensatz?', + + initComponent: function() { + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Umwelt.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Umwelt.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,49 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Umweltbereich + */ +Ext.define('Lada.view.widget.Umwelt' ,{ + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.umwelt', + store: 'Umwelt', + displayField: 'id', + valueField: 'id', + emptyText: 'Wählen Sie einen Umweltbereich', + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'local', + triggerAction: 'all', + typeAhead: false, + minChars: 0, + tpl: '
' + + '{id} - {umweltBereich}
', + // TODO: Set value in disply after selection. Can not figure out why + // accessing the recored.data attribute fails here (ti) <2013-08-06 16:52> + // listeners: { + // select: function(combo, record, index) { + // console.log("1"); + // console.log(record); + // console.log("2"); + // var text = record.data['umwId'] + + // " - " + record.data['umweltBereich']; + // console.log("3"); + // Ext.form.ComboBox.superclass.setValue.call(this, text); + // combo.value = record.id; + // } + // }, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('umwelt'); + if (!this.store) { + this.store = Ext.create('Lada.store.Umwelt'); + } + this.callParent(arguments); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/Verwaltungseinheit.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/Verwaltungseinheit.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,44 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Combobox for Verwaltungseinheit + */ +Ext.define('Lada.view.widget.Verwaltungseinheit', { + extend: 'Lada.view.widget.base.ComboBox', + alias: 'widget.verwaltungseinheiten', + store: 'Verwaltungseinheiten', + displayField: 'bezeichnung', + valueField: 'id', + emptyText: 'Wählen Sie eine Verwaltungseinheit', + hideTrigger: true, + // Enable filtering of comboboxes + autoSelect: false, + queryMode: 'remote', + triggerAction: 'type', + typeAhead: false, + minChars: 2, + + initComponent: function() { + this.store = Ext.data.StoreManager.get('verwaltungseinheiten'); + if (!this.store) { + this.store = Ext.create('Lada.store.Verwaltungseinheiten'); + } + this.callParent(arguments); + }, + // This listener is used to load currently "selected" verwaltungseinheit. + // This is needed as without having this record the field would only + // display the raw value (id) of the verwaltungseinheit. + listeners: { + render: function(combo) { + combo.store.load({ + id: this.getValue() + }); + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/base/ComboBox.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/base/ComboBox.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,106 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.view.widget.base.ComboBox', { + extend: 'Ext.form.Panel', + alias: 'widget.cbox', + + layout: 'hbox', + + border: 0, + + margin: '0, 0, 5, 0', + + initComponent: function() { + this.items = [{ + xtype: 'combobox', + flex: 1, + name: this.name, + maxLength: this.maxLength, + fieldLabel: this.fieldLabel, + labelWidth: this.labelWidth, + listeners: this.listeners, + store: this.store, + displayField: this.displayField, + valueField: this.valueField, + emptyText: this.emptyText, + autoSelect: this.autoSelect, + queryMode: this.queryMode, + triggerAction: this.triggerAction, + typeAhead: this.typeAhead, + minChars: this.minChars, + multiSelect: this.multiSelect, + msgTarget: 'none', + tpl: this.tpl + }, { + xtype: 'image', + name: 'warnImg', + src: 'resources/img/icon-warning.gif', + width: 12, + height: 12, + hidden: true + }, { + xtype: 'image', + name: 'errorImg', + src: 'resources/img/icon-error.gif', + width: 12, + height: 12, + hidden: true + }]; + this.callParent(arguments); + }, + + showWarnings: function(warnings) { + var img = this.down('image[name=warnImg]'); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: warnings + }); + this.down('combobox').invalidCls = 'x-lada-warning'; + this.down('combobox').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showWarnings(warnings); + } + }, + + showErrors: function(errors) { + var img = this.down('image[name=errorImg]'); + var warnImg = this.down('image[name=warnImg]'); + warnImg.hide(); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: errors + }); + this.down('combobox').invalidCls = 'x-lada-error'; + this.down('combobox').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showErrors(); + } + }, + + clearWarningOrError: function() { + this.down('image[name=errorImg]').hide(); + this.down('image[name=warnImg]').hide(); + }, + + getValue: function() { + return this.down('combobox').getValue(); + }, + + getName: function() { + return this.name; + }, + + setReadOnly: function(value) { + this.down('combobox').setReadOnly(value); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/base/Datetime.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/base/Datetime.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,93 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/** + * Datetimepicker with german date format. + */ +Ext.define('Lada.view.widget.base.Datetime', { + extend: 'Ext.panel.Panel', + alias: 'widget.datetime', + requires: [ + 'Ext.ux.form.DateTimeField' + ], + + layout: 'hbox', + + border: 0, + + initComponent: function() { + this.margin = this.fieldMargin; + var dateField = Ext.create('Ext.ux.form.DateTimeField', { + format: 'd.m.Y', + emptyText: 'Wählen Sie einen Zeitpunkt', + fieldLabel: this.fieldLabel, + labelWidth: this.labelWidth, + flex: 1, + name: this.name, + msgTarget: 'none', + listeners: this.listeners + }); + this.items = [dateField, { + xtype: 'image', + name: 'warnImg', + src: 'resources/img/icon-warning.gif', + width: 12, + height: 12, + hidden: true + }, { + xtype: 'image', + name: 'errorImg', + src: 'resources/img/icon-error.gif', + width: 12, + height: 12, + hidden: true + }]; + this.callParent(arguments); + }, + + showWarnings: function(warnings) { + var img = this.down('image[name=warnImg]'); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: warnings + }); + this.down('datetimefield').invalidCls = 'x-lada-warning'; + this.down('datetimefield').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showWarnings(warnings); + } + }, + + showErrors: function(errors) { + var img = this.down('image[name=errorImg]'); + var warnImg = this.down('image[name=warnImg]'); + warnImg.hide(); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: errors + }); + this.down('datetimefield').invalidCls = 'x-lada-error'; + this.down('datetimefield').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showErrors(); + } + }, + + clearWarningOrError: function() { + this.down('image[name=errorImg]').hide(); + this.down('image[name=warnImg]').hide(); + }, + + setReadOnly: function(value) { + this.down('datetimefield').setReadOnly(value); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/base/FieldSet.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/base/FieldSet.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,67 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.view.widget.base.FieldSet', { + extend: 'Ext.form.FieldSet', + alias: 'widget.fset', + + plainTitle: '', + origColor: '', + + showWarningOrError: function(warning, warningText, error, errorText) { + var ndx = 0; + if (this.collapsible === true) { + ndx = 1; + } + this.plainTitle = this.getEl().dom.firstChild + .firstChild.firstChild + .children[ndx].innerHTML; + this.origColor = this.getEl().dom.style['border-color']; + if (error) { + this.getEl().dom.style['border-color'] = '#FF0000'; + this.getEl().dom.firstChild.firstChild.firstChild + .children[ndx].innerHTML = + ' ' + + this.plainTitle; + if (errorText) { + Ext.create('Ext.tip.ToolTip', { + target: this.getEl().dom.firstChild.firstChild.firstChild.children[ndx], + html: errorText + }); + } + return; + } + if (warning) { + this.getEl().dom.style['border-color'] = '#FFE25D'; + this.getEl().dom.firstChild.firstChild.firstChild + .children[ndx].innerHTML = + ' ' + + this.plainTitle; + if (warningText) { + Ext.create('Ext.tip.ToolTip', { + target: this.getEl().dom.firstChild.firstChild.firstChild.children[ndx], + html: warningText + }); + } + return; + } + }, + + clearMessages: function() { + var ndx = 0; + if (this.collapsible === true) { + ndx = 1; + } + if (this.plainTitle !== '') { + this.getEl().dom.firstChild + .firstChild.firstChild + .children[ndx].innerHTML = this.plainTitle; + this.getEl().dom.style['border-color'] = this.origColor; + } + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/widget/base/TextField.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/widget/base/TextField.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,85 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +Ext.define('Lada.view.widget.base.TextField', { + extend: 'Ext.panel.Panel', + alias: 'widget.tfield', + + layout: 'hbox', + + border: 0, + + initComponent: function() { + this.items = [{ + xtype: 'textfield', + flex: 1, + name: this.name, + msgTarget: 'none', + maxLength: this.maxLength, + fieldLabel: this.fieldLabel, + labelWidth: this.labelWidth, + listeners: this.listeners + }, { + xtype: 'image', + name: 'warnImg', + src: 'resources/img/icon-warning.gif', + width: 12, + height: 12, + hidden: true + }, { + xtype: 'image', + name: 'errorImg', + src: 'resources/img/icon-error.gif', + width: 12, + height: 12, + hidden: true + }]; + this.callParent(arguments); + }, + + showWarnings: function(warnings) { + var img = this.down('image[name=warnImg]'); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: warnings + }); + img.show(); + this.down('textfield').invalidCls = 'x-lada-warning'; + this.down('textfield').markInvalid(''); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showWarnings(warnings); + } + }, + + showErrors: function(errors) { + var img = this.down('image[name=errorImg]'); + var warnImg = this.down('image[name=warnImg]'); + warnImg.hide(); + Ext.create('Ext.tip.ToolTip', { + target: img.getEl(), + html: errors + }); + this.down('textfield').invalidCls = 'x-lada-error'; + this.down('textfield').markInvalid(''); + img.show(); + var fieldset = this.up('fieldset[collapsible=true]'); + if (fieldset) { + fieldset.showErrors(); + } + }, + + clearWarningOrError: function() { + this.down('image[name=errorImg]').hide(); + this.down('image[name=warnImg]').hide(); + }, + + setReadOnly: function(value) { + this.down('textfield').setReadOnly(value); + } +}); diff -r f172b35a3b92 -r d47ee7439f44 app/view/window/ProbeEdit.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/window/ProbeEdit.js Fri Mar 06 12:43:52 2015 +0100 @@ -0,0 +1,155 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ + +/* + * Window to edit a Probe + */ +Ext.define('Lada.view.window.ProbeEdit', { + extend: 'Ext.window.Window', + alias: 'widget.probenedit', + + requires: [ + 'Lada.view.form.Probe', + 'Lada.view.grid.Ort', + 'Lada.view.grid.Probenzusatzwert', + 'Lada.view.grid.PKommentar' + ], + + collapsible: true, + maximizable: true, + autoShow: true, + autoScroll: true, + layout: 'fit', + + record: null, + + initComponent: function() { + if (this.record === null) { + Ext.Msg.alert('Keine valide Probe ausgewählt!'); + this.callParent(arguments); + return; + } + this.title = '§3-Probe ' + this.record.get('probeId'); + this.buttons = [{ + text: 'Schließen', + scope: this, + handler: this.close + }]; + this.width = 700; + this.height = Ext.getBody().getViewSize().height - 30; + // InitialConfig is the config object passed to the constructor on + // creation of this window. We need to pass it throuh to the form as + // we need the "modelId" param to load the correct item. + + this.items = [{ + border: 0, + autoScroll: true, + items: [{ + xtype: 'probeform', + recordId: this.record.get('id') + }, { + xtype: 'fset', + name: 'orte', + title: 'Ortsangaben', + padding: '5, 5', + margin: 5, + items: [{ + xtype: 'ortgrid', + recordId: this.record.get('id') + }] + }, { + xtype: 'fset', + name: 'probenzusaetzwerte', + title: 'Zusatzwerte', + padding: '5, 5', + margin: 5, + collapsible: true, + collapsed: true, + items: [{ + xtype: 'probenzusatzwertgrid', + recordId: this.record.get('id') + }] + }, { + xtype: 'fset', + name: 'pkommentare', + title: 'Kommentare', + padding: '5, 5', + margin: 5, + collapsible: true, + collapsed: true, + items: [{ + xtype: 'pkommentargrid', + recordId: this.record.get('id') + }] + }] + }]; + this.callParent(arguments); + }, + + initData: function() { + this.clearMessages(); + Ext.ClassManager.get('Lada.model.Probe').load(this.record.get('id'), { + failure: function(record, action) { + // TODO + }, + success: function(record, response) { + this.down('probeform').setRecord(record); + var json = Ext.decode(response.response.responseText); + if (json) { + this.setMessages(json.errors, json.warnings); + } + }, + scope: this + }); + }, + + setMessages: function(errors, warnings) { + this.down('probeform').setMessages(errors, warnings); + var errorOrtText = ''; + var errorOrt = false; + var warningOrtText = ''; + var warningOrt = false; + var key; + var content; + var i; + var keyText; + var i18n = Lada.getApplication().bundle; + for (key in errors) { + if (key && key.contains('Ort')) { + errorOrt = true; + content = errors[key]; + keyText = key[0].toUpperCase(); + for (i = 0; i < content.length; i++) { + errorOrtText += keyText + ': ' + + i18n.getMsg(content[i].toString()) + '\n'; + } + } + } + for (key in warnings) { + if (key && key.contains('Ort')) { + warningOrt = true; + content = warnings[key]; + keyText = key[0].toUpperCase(); + for (i = 0; i < content.length; i++) { + warningOrtText += keyText + ': ' + + i18n.getMsg(content[i].toString()) + '\n'; + } + } + } + this.down('fset[name=orte]').showWarningOrError( + warningOrt, + warningOrtText === '' ? null : warningOrtText, + errorOrt, + errorOrtText === '' ? null : errorOrtText); + }, + + clearMessages: function() { + this.down('probeform').clearMessages(); + this.down('fset[name=orte]').clearMessages(); + } +});