[Lada-commits] [PATCH 1 of 4] merged
Wald Commits
scm-commit at wald.intevation.org
Thu Jan 21 08:59:14 CET 2016
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1453307613 -3600
# Node ID 23bfcbdb452743e6e1896ba0b0bd3987ef2bd137
# Parent 54179b6043b6fbee108a8edb9dc20941c1ae2f48
# Parent 15d8c64049d1c064640260f4228f0f437ff8aceb
merged.
diff -r 54179b6043b6 -r 23bfcbdb4527 app.js
--- a/app.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app.js Wed Jan 20 17:33:33 2016 +0100
@@ -63,7 +63,7 @@
Lada.userroles = '';
Lada.logintime = '';
Lada.mst = [];
- Lada.clientVersion = '2.1.2';
+ Lada.clientVersion = '2.2-STAMMDATEN';
Lada.serverVersion = '';
var queryString = document.location.href.split('?')[1];
@@ -71,7 +71,7 @@
Lada.openIDParams = queryString;
}
Ext.Ajax.request({
- url: 'lada-server/user',
+ url: 'lada-server/rest/user',
method: 'GET',
scope: this,
success: this.onLoginSuccess,
@@ -179,7 +179,7 @@
getServerVersion: function() {
var i18n = Lada.getApplication().bundle;
Ext.Ajax.request({
- url: 'lada-server/version',
+ url: 'lada-server/rest/version',
method: 'GET',
headers: {
'X-OPENID-PARAMS': Lada.openIDParams
@@ -201,7 +201,11 @@
// first before the application "launch" function is called.
controllers: [
'Lada.controller.Filter',
- 'Lada.controller.FilterResult',
+ 'Lada.controller.ModeSwitcher',
+ 'Lada.controller.grid.ProbeList',
+ 'Lada.controller.grid.MessprogrammeList',
+ 'Lada.controller.grid.Datensatzerzeuger',
+ 'Lada.controller.grid.Probenehmer',
'Lada.controller.form.Probe',
'Lada.controller.form.Messung',
'Lada.controller.form.Ort',
@@ -214,7 +218,6 @@
'Lada.controller.grid.Status',
'Lada.controller.Map',
'Lada.controller.form.Location',
- 'Lada.controller.ProbenPlanungSwitcher',
'Lada.controller.form.Messprogramm',
'Lada.controller.grid.Messmethode'
]
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/Filter.js
--- a/app/controller/Filter.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/controller/Filter.js Wed Jan 20 17:33:33 2016 +0100
@@ -56,28 +56,89 @@
/**
* 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
+ * selected search query.
+ * It also replaces the Store of the Filteresultgrid.
+ * Two possibilities exist to do so: Proben/Messprogramme where dynamic columns exist, but the
+ * content remains of the same type and Stammdaten, were columns are fixed but the type might
+ * vary between orte, kategorien, ...
*/
selectSql: function(element, record) {
var filters = element.up('panel[name=main]').down('fieldset[name=filtervariables]');
- var columns = element.up('fieldset').down('displayfield[name=columns]');
+
+ // Set "Filter Auswahl" Description
var desc = element.up('fieldset').down('displayfield[name=description]');
+ desc.setValue(record[0].data.description);
+
this.displayFields = record[0].data.results;
var filterFields = record[0].data.filters;
+ var contentPanel = element.up('panel[name=main]').down('panel[name=contentpanel]');
+ var queryType = record[0].get('type'); //The type of the query, might be proben, messprogramme,
+ // or a stammdatendtype
this.reset(element);
+ contentPanel.removeAll(); //clear the panel: make space for new grids
+
+ // Set "Filter Auswahl" Columns
+ var columns = element.up('fieldset').down('displayfield[name=columns]');
var columnString = [];
for (var i = 0; i < this.displayFields.length; i++) {
columnString.push(this.displayFields[i].header);
}
columns.setValue(columnString.join(', '));
- desc.setValue(record[0].data.description);
- // Setup Columns of the probenlist
- this.displayFields.reverse();
+ // Setup Columns
+ if (this.displayFields) {
+ this.displayFields.reverse();
+ }
- /* Setup Filters of the probenlist
+ if (queryType == 'probe' || queryType == 'messprogramm') {
+ // Dynamic Grids
+ // We need to set both grid and Store.
+ var frgrid; // The Resultgrid
+ var gridstore; // The Store which will be used in the resultgrid.
+
+ switch (queryType) {
+ case 'probe':
+ gridstore = Ext.create('Lada.store.ProbenList');
+ frgrid = Ext.create('Lada.view.grid.ProbeList');
+ break;
+ case 'messprogramm':
+ gridstore = Ext.create('Lada.store.MessprogrammeList');
+ frgrid = Ext.create('Lada.view.grid.MessprogrammeList');
+ break;
+ }
+
+ if (gridstore) {
+ frgrid.setStore(gridstore);
+ }
+
+ contentPanel.add(frgrid);
+ }
+ else {
+ // Grids which are not build with dynamic columns
+ // The store is configured in each grid, hence we only need to set the
+ // grid
+ var resultGrid;
+ switch (queryType) {
+ case 'messprogrammkategorie':
+ resultGrid = Ext.create('Lada.view.grid.MessprogrammKategorie');
+ break;
+ case 'datensatzerzeuger':
+ resultGrid = Ext.create('Lada.view.grid.DatensatzErzeuger');
+ break;
+ case 'ort':
+ resultGrid = Ext.create('Lada.view.grid.Ort');
+ break;
+ case 'probenehmer':
+ resultGrid = Ext.create('Lada.view.grid.Probenehmer');
+ break;
+ }
+ if (resultGrid) {
+ contentPanel.add(resultGrid);
+ }
+ }
+ /* Setup Filters
*
* Allowed types are
* * text
@@ -188,12 +249,16 @@
/**
* Function is called when the user clicks the search button. The function
* will perform a search to the server on refreshes the result list.
+ * To do so it replaces the store of the Resultgrids.
*/
search: function(element) {
- var resultGrid = element.up('panel[name=main]').down('filterresultgrid');
+ var resultGrid = element.up('panel[name=main]').down('panel[name=contentpanel]').down('grid');
var filters = element.up('panel[name=main]').down('fieldset[name=filtervariables]');
var search = element.up('fieldset').down('combobox[name=filter]');
+ //Type of the search Proben/Messprogramme/Stammdaten
+ var type = search.store.getById(search.getValue()).get('type')
+
// Get search parameters:
var searchParams = {};
searchParams['qid'] = search.getValue();
@@ -205,15 +270,28 @@
}
searchParams[filter.getName()] = value;
}
- // Retrieve the mode
- var modes = element.up('panel[name=main]').down('radiogroup').getChecked();
- var sname = modes[0].inputValue;
- if (sname === 'ProbeList') {
- sname = 'Lada.store.ProbenList';
- }
- else if (sname === 'MessprogrammList') {
- sname = 'Lada.store.MessprogrammeList';
+ //Store depends of the Type...
+ // TODO the switchcasese should be unified withj those in SelectSql
+ switch (type) {
+ case 'probe':
+ sname = 'Lada.store.ProbenList';
+ break;
+ case 'messprogramm':
+ sname = 'Lada.store.MessprogrammeList';
+ break;
+ case 'messprogrammkategorie':
+ sname = 'Lada.store.MessprogrammKategorie';
+ break;
+ case 'datensatzerzeuger':
+ sname = 'Lada.store.DatensatzErzeuger';
+ break;
+ case 'ort':
+ sname = 'Lada.store.Ort';
+ break;
+ case 'probenehmer':
+ sname = 'Lada.store.Probenehmer';
+ break;
}
// Find the store or create a new one.
@@ -224,8 +302,16 @@
if (store) {
store.addListener('beforeload', this.loadingAnimationOn, resultGrid);
store.addListener('load', this.loadingAnimationOff, resultGrid);
+
resultGrid.setStore(store);
- resultGrid.setupColumns(this.displayFields);
+ //TODO: Check if this is still necessary, as a Grid exists
+ // for each Type.
+
+ if (resultGrid.isDynamic) {
+ //only the dynamic resultgrid can and needs to do the following:
+ resultGrid.setupColumns(this.displayFields);
+ }
+
resultGrid.getStore().proxy.extraParams = searchParams;
resultGrid.getStore().load();
resultGrid.show();
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/FilterResult.js
--- a/app/controller/FilterResult.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/controller/FilterResult.js Wed Jan 20 17:33:33 2016 +0100
@@ -171,7 +171,7 @@
}
var me = this;
Ext.Ajax.request({
- url: 'lada-server/export/laf',
+ url: 'lada-server/data/export/laf',
jsonData: {'proben': proben},
success: function(response) {
var content = response.responseText;
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/ModeSwitcher.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/ModeSwitcher.js Wed Jan 20 17:33:33 2016 +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.
+ */
+
+/**
+ * Controller for the ModeSwitcher
+ * This controller handles all logic related to the ModeSwitch
+ */
+Ext.define('Lada.controller.ModeSwitcher', {
+ extend: 'Ext.app.Controller',
+ displayFields: null,
+
+ requires: [
+ 'Lada.store.MessprogrammQueries',
+ 'Lada.store.ProbeQueries',
+ 'Lada.store.StammdatenQueries'
+ ],
+
+ /**
+ * Initialize this Controller
+ * It has 1 Listeners
+ * A checked ModeSwithch-Radiofield fired a 'check'-event
+ */
+ init: function() {
+ this.control({
+ 'radiofield[name=modeswitch]': {
+ check: this.switchModes
+ }
+ });
+ this.callParent(arguments);
+ },
+
+ /**
+ * Function is called when the user selects a checkbox.
+ * according to the checkboxes inputValue,
+ * the function alters the store which was loaded by the
+ * filterpanels combobox,
+ */
+ switchModes: function(field) {
+ var cbox = field.up('modeswitcher').up().down('combobox');
+ filters = field.up('panel[name=main]').down('fieldset[name=filtervariables]');
+ filters.removeAll();
+ filters.hide();
+
+ //Initialise variables which will define the querystore
+ // and the store which has to be loaded into the grid.
+ var querystorename = '';
+
+ // In dependence of the checkboxes input value,
+ // define the store of the filter.
+ // app/controller/Filter.js contains similar code.
+ if (field.inputValue === 'messprogramme' && cbox) {
+ querystorename = 'Lada.store.MessprogrammQueries';
+ }
+ else if (field.inputValue === 'proben' && cbox) {
+ querystorename = 'Lada.store.ProbeQueries';
+ }
+ else if (field.inputValue === 'stammdaten' && cbox) {
+ querystorename = 'Lada.store.StammdatenQueries';
+ }
+
+ if (querystorename) {
+ var store = Ext.StoreManager.lookup(querystorename);
+
+ if (!store) {
+ store = Ext.create(querystorename, {
+ //Select first Item on Load
+ listeners: {
+ load: function(store){
+ var records = new Array();
+ records.push(store.getAt(0));
+
+ cbox.select(records[0]);
+ cbox.fireEvent('select', cbox, records);
+ }
+ }
+ });
+ }
+
+ if (store) {
+ if (!store.autoLoad) {
+ store.load();
+ }
+ //cbox.reset();
+ cbox.bindStore(store);
+ }
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/ProbenPlanungSwitcher.js
--- a/app/controller/ProbenPlanungSwitcher.js Wed Jan 13 15:29:09 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/* 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 ProbenPlanungSwitcher
- * This controller handles all logic related to the PPS
- */
-Ext.define('Lada.controller.ProbenPlanungSwitcher', {
- extend: 'Ext.app.Controller',
- displayFields: null,
-
- requires: [
- 'Lada.store.MessprogrammQueries',
- 'Lada.store.ProbeQueries'
- ],
-
- /**
- * Initialize this Controller
- * It has 1 Listeners
- * A checked PPS-Radiofield fired a 'check'-event
- */
- init: function() {
- this.control({
- 'radiofield[name=ppswitch]': {
- check: this.switchModes
- }
- });
- this.callParent(arguments);
- },
-
- /**
- * Function is called when the user selects a checkbox.
- * according to the checkboxes inputValue,
- * the function alters the store which was loaded by the
- * filterpanels combobox,
- * If enabled the function also disables / enables the UI-Buttons
- * in the Filterresult grid.
- */
- switchModes: function(field) {
-
- var disableButtons = true;
- var cbox = field.up('probenplanungswitcher').up().down('combobox');
- var resultGrid = field.up('panel[name=main]').down('filterresultgrid');
- filters = field.up('panel[name=main]').down('fieldset[name=filtervariables]');
- filters.removeAll();
- filters.hide();
- var sname = 'Lada.store.ProbeQueries';
- var gridsname = 'Lada.store.ProbenList';
- if (field.inputValue === 'MessprogrammList' && cbox) {
- sname = 'Lada.store.MessprogrammQueries';
- gridsname = 'Lada.store.MessprogrammeList';
- }
- else if (field.inputValue === 'ProbeList' && cbox) {
- sname = 'Lada.store.ProbeQueries';
- gridsname = 'Lada.store.ProbenList';
- }
-
-
- var store = Ext.StoreManager.lookup(sname);
-
- if (!store) {
- store = Ext.create(sname, {
- //Select first Item on Load
- listeners: {
- load: function(s){
- var records = new Array();
- records.push(store.getAt(0));
-
- cbox.select(records[0]);
- cbox.fireEvent('select', cbox, records);
- }
- }
- });
- }
- if (store) {
- store.load();
- cbox.reset();
- cbox.bindStore(store);
- }
-
- var gridstore = Ext.StoreManager.lookup(gridsname);
- if (!gridstore) {
- gridstore = Ext.create(gridsname);
- }
- if (gridstore) {
- resultGrid.setStore(gridstore);
- resultGrid.show();
- }
-
- }
-});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/Datensatzerzeuger.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/Datensatzerzeuger.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,163 @@
+/* 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.
+ */
+
+/**
+ * This is a controller for a grid of Datensatzerzeuger Stammdaten
+ */
+Ext.define('Lada.controller.grid.Datensatzerzeuger', {
+ extend: 'Ext.app.Controller',
+
+ /**
+ * Inhitialize the controller
+ * It has 3 listeners
+ */
+ init: function() {
+ this.control({
+ 'datensatzerzeugergrid': {
+ edit: this.gridSave,
+ canceledit: this.cancelEdit,
+ select: this.activateButtons,
+ deselect: this.deactivateButtons
+ },
+ 'datensatzerzeugergrid button[action=add]': {
+ click: this.add
+ },
+ 'datensatzerzeugergrid button[action=delete]': {
+ click: this.remove
+ }
+ });
+ },
+
+ /**
+ * This function is called when the grids roweditor saves
+ * the record.
+ * On success it refreshes the windows which contains the grid
+ * On failure it displays a message
+ */
+ gridSave: function(editor, context) {
+ var i18n = Lada.getApplication().bundle;
+ context.record.save({
+ success: function(record, response) {
+ //Do Nothing
+ },
+ failure: function(record, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ }
+ }
+ });
+ },
+
+ /**
+ * When the edit was canceled,
+ * the empty row might have been created by the roweditor is removed
+ */
+ cancelEdit: function(editor, context) {
+ if (!context.record.get('id') ||
+ context.record.get('id') === '') {
+ editor.getCmp().store.remove(context.record);
+ }
+ context.grid.getSelectionModel().deselect(context.record);
+ },
+
+ /**
+ * This function adds a new row to add a Datensatzerzeuger
+ */
+ add: function(button) {
+ var record = Ext.create('Lada.model.DatensatzErzeuger');
+ button.up('datensatzerzeugergrid').store.insert(0, record);
+ button.up('datensatzerzeugergrid').rowEditing.startEdit(0, 1);
+ },
+
+ /**
+ * A record can be removed from the grid with the remove
+ * function. It asks the user for confirmation
+ * If the removal was confirmed, it reloads the parent window on success,
+ * on failure, an error message is shown.
+ */
+ remove: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection()[0];
+ var i18n = Lada.getApplication().bundle;
+ //TODO: i18n
+ Ext.MessageBox.confirm(i18n.getMsg('delete'),
+ i18n.getMsg('confirmation.question'),
+ function(btn) {
+ if (btn === 'yes') {
+ selection.destroy({
+ success: function() {
+ //DO NOTHING
+ },
+ failure: function(request, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.response.body'));
+ }
+ }
+ });
+ }
+ });
+ grid.down('button[action=delete]').disable();
+ },
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ activateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ this.buttonToggle(true, grid);
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ deactivateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ // Only disable buttons when nothing is selected
+ if (rowModel.selected.items == 0) {
+ this.buttonToggle(false, grid);
+ }
+ },
+
+ /**
+ * Enables/Disables a set of buttons
+ **/
+ buttonToggle: function(enabled, grid) {
+ if (!enabled) {
+ grid.down('button[action=delete]').disable();
+ }
+ else {
+ if (!grid.getPlugin('rowedit').editing) {
+ //only enable buttons, when grid is not beeing edited
+ grid.down('button[action=delete]').enable();
+ }
+ //else turn them off again!
+ else {
+ this.buttonToggle(false, grid);
+ }
+ }
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/MessprogrammKategorie.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/MessprogrammKategorie.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,163 @@
+/* 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.
+ */
+
+/**
+ * This is a controller for a grid of MessprogrammKategorie Stammdaten
+ */
+Ext.define('Lada.controller.grid.MessprogrammKategorie', {
+ extend: 'Ext.app.Controller',
+
+ /**
+ * Inhitialize the controller
+ * It has 3 listeners
+ */
+ init: function() {
+ this.control({
+ 'messprogrammkategoriegrid': {
+ edit: this.gridSave,
+ canceledit: this.cancelEdit,
+ select: this.activateButtons,
+ deselect: this.deactivateButtons
+ },
+ 'messprogrammkategoriegrid button[action=add]': {
+ click: this.add
+ },
+ 'messprogrammkategoriegrid button[action=delete]': {
+ click: this.remove
+ }
+ });
+ },
+
+ /**
+ * This function is called when the grids roweditor saves
+ * the record.
+ * On success it refreshes the windows which contains the grid
+ * On failure it displays a message
+ */
+ gridSave: function(editor, context) {
+ var i18n = Lada.getApplication().bundle;
+ context.record.save({
+ success: function(record, response) {
+ //Do Nothing
+ },
+ failure: function(record, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ }
+ }
+ });
+ },
+
+ /**
+ * When the edit was canceled,
+ * the empty row might have been created by the roweditor is removed
+ */
+ cancelEdit: function(editor, context) {
+ if (!context.record.get('id') ||
+ context.record.get('id') === '') {
+ editor.getCmp().store.remove(context.record);
+ }
+ context.grid.getSelectionModel().deselect(context.record);
+ },
+
+ /**
+ * This function adds a new row to add a probenehmer
+ */
+ add: function(button) {
+ var record = Ext.create('Lada.model.MessprogrammKategorie');
+ button.up('messprogrammkategoriegrid').store.insert(0, record);
+ button.up('messprogrammkategoriegrid').rowEditing.startEdit(0, 1);
+ },
+
+ /**
+ * A record can be removed from the grid with the remove
+ * function. It asks the user for confirmation
+ * If the removal was confirmed, it reloads the parent window on success,
+ * on failure, an error message is shown.
+ */
+ remove: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection()[0];
+ var i18n = Lada.getApplication().bundle;
+ Ext.MessageBox.confirm(i18n.getMsg('delete'),
+ i18n.getMsg('confirmation.question'),
+ function(btn) {
+ if (btn === 'yes') {
+ selection.destroy({
+ success: function() {
+ //DO NOTHING
+ },
+ failure: function(request, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.response.body'));
+ }
+ }
+ });
+ }
+ });
+ grid.down('button[action=delete]').disable();
+ },
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ activateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ this.buttonToggle(true, grid);
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ deactivateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ // Only disable buttons when nothing is selected
+ if (rowModel.selected.items == 0) {
+ this.buttonToggle(false, grid);
+ }
+ },
+
+ /**
+ * Enables/Disables a set of buttons
+ **/
+ buttonToggle: function(enabled, grid) {
+ if (!enabled) {
+ grid.down('button[action=delete]').disable();
+ }
+ else {
+ if (!grid.getPlugin('rowedit').editing) {
+ //only enable buttons, when grid is not beeing edited
+ grid.down('button[action=delete]').enable();
+ }
+ //else turn them off again!
+ else {
+ this.buttonToggle(false, grid);
+ }
+ }
+ },
+});
+
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/MessprogrammeList.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/MessprogrammeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,145 @@
+/* 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.grid.MessprogrammeList', {
+ extend: 'Ext.app.Controller',
+ requires: [
+ 'Lada.view.window.Messprogramm',
+ 'Lada.view.window.GenProbenFromMessprogramm'
+ ],
+
+ /**
+ * Initialize the Controller with listeners
+ */
+ init: function() {
+ this.control({
+ 'messprogrammelistgrid': {
+ itemdblclick: this.editItem,
+ select: this.activateButtons,
+ deselect: this.deactivateButtons
+ },
+ 'messprogrammelistgrid toolbar button[action=addMessprogramm]': {
+ click: this.addMessprogrammItem
+ },
+ 'messprogrammelistgrid toolbar button[action=genProbenFromMessprogramm]': {
+ click: this.genProbenFromMessprogramm
+ }
+ });
+ this.callParent(arguments);
+ },
+
+ /**
+ * This function is called after a Row in the
+ * {@link Lada.view.grid.MessprogrammeList}
+ * was double-clicked.
+ * The function opens a {@link Lada.view.window.ProbeEdit}
+ * or a {@link Lada.view.window.Messprogramm}.
+ * To determine which window has to be opened, the function
+ * analyse the records modelname.
+ */
+ editItem: function(grid, record) {
+ var winname = 'Lada.view.window.Messprogramm';
+ var win = Ext.create(winname, {
+ record: record,
+ style: 'z-index: -1;' //Fixes an Issue where windows could not be created in IE8
+ });
+ win.show();
+ win.initData();
+ },
+
+ /**
+ * This function opens a new window to create a Probe
+ * {@link Lada.view.window.Messprogramm}
+ */
+ addMessprogrammItem: function() {
+ var win = Ext.create('Lada.view.window.Messprogramm');
+ win.show();
+ win.initData();
+ },
+
+ /**
+ * This button creates a window to generate Proben
+ * from a selected messprogramm.
+ */
+ genProbenFromMessprogramm: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection();
+ var i18n = Lada.getApplication().bundle;
+ var proben = [];
+ for (var i = 0; i < selection.length; i++) {
+ proben.push(selection[i].get('id'));
+ }
+ var me = this;
+
+ var winname = 'Lada.view.window.GenProbenFromMessprogramm';
+ for (p in proben) {
+ grid.setLoading(true);
+ Ext.ClassManager.get('Lada.model.Messprogramm').load(proben[p], {
+ failure: function(record, action) {
+ me.setLoading(false);
+ // TODO
+ console.log('An unhandled Failure occured. See following Response and Record');
+ console.log(action);
+ console.log(record);
+ },
+ success: function(record, response) {
+ grid.setLoading(false);
+
+ var win = Ext.create(winname, {
+ record: record,
+ parentWindow: null
+ });
+ win.show();
+ win.initData();
+ },
+ scope: this
+ });
+ }
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ activateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ this.buttonToggle(true, grid);
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ deactivateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ // Only disable buttons when nothing is selected
+ if (rowModel.selected.items == 0) {
+ this.buttonToggle(false, grid);
+ }
+ },
+
+ /**
+ * Enables/Disables a set of buttons
+ **/
+ buttonToggle: function(enabled, grid) {
+ if (!enabled) {
+ grid.down('button[action=genProbenFromMessprogramm]').disable();
+ }
+ else {
+ grid.down('button[action=genProbenFromMessprogramm]').enable();
+ }
+ },
+
+ reload: function(btn) {
+ if (btn === 'yes') {
+ location.reload();
+ }
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/ProbeList.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/ProbeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,342 @@
+/* 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 ProbeList result grid.
+ */
+Ext.define('Lada.controller.grid.ProbeList', {
+ extend: 'Ext.app.Controller',
+ requires: [
+ 'Lada.view.window.ProbeEdit',
+ 'Lada.view.window.GenProbenFromMessprogramm'
+ ],
+
+ /**
+ * Initialize the Controller with listeners
+ */
+ init: function() {
+ this.control({
+ 'probelistgrid': {
+ itemdblclick: this.editItem,
+ select: this.activateButtons,
+ deselect: this.deactivateButtons
+ },
+ 'probelistgrid toolbar button[action=addProbe]': {
+ click: this.addProbeItem
+ },
+ 'probelistgrid toolbar button[action=import]': {
+ click: this.uploadFile
+ },
+ 'probelistgrid toolbar button[action=export]': {
+ click: this.downloadFile
+ },
+ 'probelistgrid toolbar button[action=print]': {
+ click: this.printSelection
+ }
+ });
+ this.callParent(arguments);
+ },
+
+ /**
+ * This function is called after a Row in the
+ * {@link Lada.view.grid.ProbeList}
+ * was double-clicked.
+ * The function opens a {@link Lada.view.window.ProbeEdit}
+ * or a {@link Lada.view.window.Messprogramm}.
+ * To determine which window has to be opened, the function
+ * analyse the records modelname.
+ */
+ editItem: function(grid, record) {
+ var winname = 'Lada.view.window.ProbeEdit';
+
+ var win = Ext.create(winname, {
+ record: record,
+ style: 'z-index: -1;' //Fixes an Issue where windows could not be created in IE8
+ });
+
+ win.show();
+ win.initData();
+ },
+
+ /**
+ * This function opens a new window to create a Probe
+ * {@link Lada.view.window.ProbeCreate}
+ */
+ addProbeItem: function() {
+ var win = Ext.create('Lada.view.window.ProbeCreate');
+ win.show();
+ win.initData();
+ },
+
+ /**
+ * This function opens a {@link Lada.view.window.FileUpload}
+ * window to upload a LAF-File
+ */
+ uploadFile: function() {
+ var win = Ext.create('Lada.view.window.FileUpload', {
+ title: 'Datenimport',
+ modal: true
+ });
+
+ win.show();
+ },
+
+ /**
+ * This function can be used to Download the items which
+ * were selected in the {@link Lada.view.grid.ProbeList}
+ * The Download does not work with Internet Explorers older than v.10
+ */
+ downloadFile: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection();
+ var i18n = Lada.getApplication().bundle;
+ var proben = [];
+ for (var i = 0; i < selection.length; i++) {
+ proben.push(selection[i].get('id'));
+ }
+ var me = this;
+ Ext.Ajax.request({
+ url: 'lada-server/data/export/laf',
+ jsonData: {'proben': proben},
+ success: function(response) {
+ var content = response.responseText;
+ var blob = new Blob([content],{type: 'text/plain'});
+ saveAs(blob, 'export.laf');
+ },
+ failure: function(response) {
+ /*
+ SSO will send a 302 if the Client is not authenticated
+ unfortunately this seems to be filtered by the browser.
+ We assume that a 302 was send when the follwing statement
+ is true.
+ */
+ if (response.status == 0 && response.responseText === "") {
+ Ext.MessageBox.confirm('Erneutes Login erforderlich',
+ 'Ihre Session ist abgelaufen.<br/>'+
+ 'Für ein erneutes Login muss die Anwendung neu geladen werden.<br/>' +
+ 'Alle ungesicherten Daten gehen dabei verloren.<br/>' +
+ 'Soll die Anwendung jetzt neu geladen werden?', this.reload);
+ }
+ // further error handling
+ var json = Ext.JSON.decode(response.responseText);
+ if (json) {
+ if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
+ formPanel.setMessages(json.errors, json.warnings);
+ }
+ if(json.message){
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
+ +' #'+json.message,
+ Lada.getApplication().bundle.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
+ i18n.getMsg('err.msg.laf.filecreatefailed'));
+ }
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
+ i18n.getMsg('err.msg.laf.filecreatefailed'));
+ }
+ }
+ });
+ },
+
+ /**
+ * Send the selection to a Printservice
+ */
+ printSelection: function(button) {
+
+ //disable Button and setLoading...
+ button.disable();
+ button.setLoading(true);
+
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection();
+ var i18n = Lada.getApplication().bundle;
+ var me = this;
+ var columns = [];
+ var columnNames = [];
+ var visibleColumns = [];
+ var displayName = '';
+ var data = [];
+
+ // Write the columns to an array
+ try {
+ for (key in selection[0].data) {
+ // Do not write owner or readonly or id
+ if (["owner", "readonly", "id"].indexOf(key) == -1){
+ columns.push(key);
+ }
+ }
+ }
+ catch (e) {
+ console.log(e);
+ }
+
+ //Retrieve visible columns' id's and names.
+ // and set displayName
+ try {
+ var grid = button.up('grid');
+ var cman = grid.columnManager;
+ var cols = cman.getColumns();
+
+ displayName = grid.down('tbtext').text;
+
+ for (key in cols) {
+ if (cols[key].dataIndex) {
+ visibleColumns[cols[key].dataIndex] = cols[key].text;
+ }
+ }
+ }
+ catch (e) {
+ console.log(e);
+ }
+
+
+ // Retrieve Data from selection
+ try {
+ for (item in selection) {
+ var row = selection[item].data;
+ var out = [];
+ //Lookup every column and write to data array.
+ for (key in columns){
+ var attr = columns[key];
+ //Only write data to output when the column is not hidden.
+ if (row[attr] != null &&
+ visibleColumns[attr] != null) {
+ out.push(row[attr].toString());
+ }
+ else if (visibleColumns[attr] != null) {
+ out.push('');
+ }
+ }
+ data.push(out);
+ }
+ }
+ catch (e){
+ console.log(e);
+ }
+
+ //Retrieve the names of the columns.
+ try {
+ var grid = button.up('grid');
+ var cman = grid.columnManager;
+ var cols = cman.getColumns();
+ //Iterate columns and find column names for the key...
+ // This WILL run into bad behaviour when column-keys exist twice.
+ for (key in columns){
+ for (k in cols){
+ if (cols[k].dataIndex == columns[key]){
+ columnNames.push(cols[k].text);
+ break;
+ }
+ }
+ }
+ }
+ catch (e) {
+ console.log(e);
+ }
+
+ var printData = {
+ 'layout': 'A4 landscape',
+ 'outputFormat': 'pdf',
+ 'attributes': {
+ 'title': 'Auszug aus LADA',
+ 'displayName': displayName,
+ 'table': {
+ 'columns': columnNames,
+ 'data': data
+ }
+ }
+ }
+
+ Ext.Ajax.request({
+ url: 'lada-printer/buildreport.pdf',
+ //configure a proxy in apache conf!
+ jsonData: printData,
+ binary: true,
+ success: function(response) {
+ var content = response.responseBytes;
+ var filetype = response.getResponseHeader('Content-Type');
+ var blob = new Blob([content],{type: filetype});
+ saveAs(blob, 'lada-print.pdf');
+ button.enable();
+ button.setLoading(false);
+ },
+ failure: function(response) {
+ console.log('failure');
+ // Error handling
+ // TODO
+ //console.log(response.responseText)
+ button.enable();
+ button.setLoading(false);
+ if (response.responseText) {
+ try {
+ var json = Ext.JSON.decode(response.responseText);
+ }
+ catch(e){
+ console.log(e);
+ }
+ }
+ if (json) {
+ if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
+ formPanel.setMessages(json.errors, json.warnings);
+ }
+ if(json.message){
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.generic.title')
+ +' #'+json.message,
+ Lada.getApplication().bundle.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
+ i18n.getMsg('err.msg.print.noContact'));
+ }
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.generic.title'),
+ i18n.getMsg('err.msg.print.noContact'));
+ }
+ }
+ });
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ activateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ this.buttonToggle(true, grid);
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ deactivateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ // Only disable buttons when nothing is selected
+ if (rowModel.selected.items == 0) {
+ this.buttonToggle(false, grid);
+ }
+ },
+
+ /**
+ * Enables/Disables a set of buttons
+ **/
+ buttonToggle: function(enabled, grid) {
+ if (!enabled) {
+ grid.down('button[action=export]').disable();
+ grid.down('button[action=print]').disable();
+ }
+ else {
+ grid.down('button[action=export]').enable();
+ grid.down('button[action=print]').enable();
+ }
+ },
+
+ reload: function(btn) {
+ if (btn === 'yes') {
+ location.reload();
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/Probenehmer.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/Probenehmer.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,162 @@
+/* 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.
+ */
+
+/**
+ * This is a controller for a grid of Probenehmer Stammdaten
+ */
+Ext.define('Lada.controller.grid.Probenehmer', {
+ extend: 'Ext.app.Controller',
+
+ /**
+ * Inhitialize the controller
+ * It has 3 listeners
+ */
+ init: function() {
+ this.control({
+ 'probenehmergrid': {
+ edit: this.gridSave,
+ canceledit: this.cancelEdit,
+ select: this.activateButtons,
+ deselect: this.deactivateButtons
+ },
+ 'probenehmergrid button[action=add]': {
+ click: this.add
+ },
+ 'probenehmergrid button[action=delete]': {
+ click: this.remove
+ }
+ });
+ },
+
+ /**
+ * This function is called when the grids roweditor saves
+ * the record.
+ * On success it refreshes the windows which contains the grid
+ * On failure it displays a message
+ */
+ gridSave: function(editor, context) {
+ var i18n = Lada.getApplication().bundle;
+ context.record.save({
+ success: function(record, response) {
+ //Do Nothing
+ },
+ failure: function(record, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.save.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ }
+ }
+ });
+ },
+
+ /**
+ * When the edit was canceled,
+ * the empty row might have been created by the roweditor is removed
+ */
+ cancelEdit: function(editor, context) {
+ if (!context.record.get('id') ||
+ context.record.get('id') === '') {
+ editor.getCmp().store.remove(context.record);
+ }
+ context.grid.getSelectionModel().deselect(context.record);
+ },
+
+ /**
+ * This function adds a new row to add a probenehmer
+ */
+ add: function(button) {
+ var record = Ext.create('Lada.model.Probenehmer');
+ button.up('probenehmergrid').store.insert(0, record);
+ button.up('probenehmergrid').rowEditing.startEdit(0, 1);
+ },
+
+ /**
+ * A record can be removed from the grid with the remove
+ * function. It asks the user for confirmation
+ * If the removal was confirmed, it reloads the parent window on success,
+ * on failure, an error message is shown.
+ */
+ remove: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection()[0];
+ var i18n = Lada.getApplication().bundle;
+ Ext.MessageBox.confirm(i18n.getMsg('delete'),
+ i18n.getMsg('confirmation.question'),
+ function(btn) {
+ if (btn === 'yes') {
+ selection.destroy({
+ success: function() {
+ //DO NOTHING
+ },
+ failure: function(request, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title')
+ +' #'+json.message,
+ i18n.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.generic.body'));
+ }
+ } else {
+ Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+ i18n.getMsg('err.msg.response.body'));
+ }
+ }
+ });
+ }
+ });
+ grid.down('button[action=delete]').disable();
+ },
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ activateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ this.buttonToggle(true, grid);
+ },
+
+ /**
+ * Toggles the buttons in the toolbar
+ **/
+ deactivateButtons: function(rowModel, record) {
+ var grid = rowModel.view.up('grid');
+ // Only disable buttons when nothing is selected
+ if (rowModel.selected.items == 0) {
+ this.buttonToggle(false, grid);
+ }
+ },
+
+ /**
+ * Enables/Disables a set of buttons
+ **/
+ buttonToggle: function(enabled, grid) {
+ if (!enabled) {
+ grid.down('button[action=delete]').disable();
+ }
+ else {
+ if (!grid.getPlugin('rowedit').editing) {
+ //only enable buttons, when grid is not beeing edited
+ grid.down('button[action=delete]').enable();
+ }
+ //else turn them off again!
+ else {
+ this.buttonToggle(false, grid);
+ }
+ }
+ },
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/controller/grid/Status.js
--- a/app/controller/grid/Status.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/controller/grid/Status.js Wed Jan 20 17:33:33 2016 +0100
@@ -162,7 +162,7 @@
}
Ext.Ajax.request({
- url: 'lada-server/status',
+ url: 'lada-server/rest/status',
jsonData: record.getData(),
method: 'POST',
success: function(response) {
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Datenbasis.js
--- a/app/model/Datenbasis.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Datenbasis.js Wed Jan 20 17:33:33 2016 +0100
@@ -30,7 +30,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/datenbasis',
+ url: 'lada-server/rest/datenbasis',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/DatensatzErzeuger.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/DatensatzErzeuger.js Wed Jan 20 17:33:33 2016 +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 DatensatzErzeuger Stammdaten
+ */
+Ext.define('Lada.model.DatensatzErzeuger', {
+ extend: 'Ext.data.Model',
+
+ fields: [{
+ name: 'id'
+ }, {
+ name: 'netzbetreiberId'
+ }, {
+ name: 'daErzeugerId'
+ }, {
+ name: 'mstId'
+ }, {
+ name: 'bezeichnung'
+ }, {
+ name: 'letzteAenderung',
+ type: 'date',
+ convert: function(v) {
+ if (!v) {
+ return v;
+ }
+ return new Date(v);
+ }
+/*
+ }, {
+ name: 'treeModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+ }, {
+ name: 'parentModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+*/
+ }],
+
+ idProperty: 'id',
+
+ proxy: {
+ type: 'rest',
+ url: 'lada-server/rest/datensatzerzeuger',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Deskriptor.js
--- a/app/model/Deskriptor.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Deskriptor.js Wed Jan 20 17:33:33 2016 +0100
@@ -26,7 +26,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/deskriptor',
+ url: 'lada-server/rest/deskriptor',
reader: {
type: 'json',
root: 'data',
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Location.js
--- a/app/model/Location.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Location.js Wed Jan 20 17:33:33 2016 +0100
@@ -55,7 +55,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/location',
+ url: 'lada-server/rest/location',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/MKommentar.js
--- a/app/model/MKommentar.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/MKommentar.js Wed Jan 20 17:33:33 2016 +0100
@@ -42,7 +42,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/mkommentar',
+ url: 'lada-server/rest/mkommentar',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messeinheit.js
--- a/app/model/Messeinheit.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messeinheit.js Wed Jan 20 17:33:33 2016 +0100
@@ -36,7 +36,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messeinheit',
+ url: 'lada-server/rest/messeinheit',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messmethode.js
--- a/app/model/Messmethode.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messmethode.js Wed Jan 20 17:33:33 2016 +0100
@@ -37,7 +37,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messmethode',
+ url: 'lada-server/rest/messmethode',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messprogramm.js
--- a/app/model/Messprogramm.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messprogramm.js Wed Jan 20 17:33:33 2016 +0100
@@ -132,7 +132,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messprogramm', //not yet implemented
+ url: 'lada-server/rest/messprogramm',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/MessprogrammKategorie.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/MessprogrammKategorie.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,62 @@
+/* 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 MessprogrammKategorie Stammdaten
+ */
+Ext.define('Lada.model.MessprogrammKategorie', {
+ extend: 'Ext.data.Model',
+
+ fields: [{
+ name: 'id'
+ }, {
+ name: 'netzbetreiberId'
+ }, {
+ name: 'mplId'
+ }, {
+ name: 'bezeichnung'
+ }, {
+ name: 'letzteAenderung',
+ type: 'date',
+ convert: function(v) {
+ if (!v) {
+ return v;
+ }
+ return new Date(v);
+ }
+/*
+ }, {
+ name: 'treeModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+ }, {
+ name: 'parentModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+*/
+ }],
+
+ idProperty: 'id',
+
+ proxy: {
+ type: 'rest',
+ url: 'lada-server/rest/messprogrammkategorie',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/MessprogrammList.js
--- a/app/model/MessprogrammList.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/MessprogrammList.js Wed Jan 20 17:33:33 2016 +0100
@@ -21,7 +21,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messprogramm',
+ url: 'lada-server/rest/messprogramm',
reader: {
type: 'json',
root: 'data',
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messstelle.js
--- a/app/model/Messstelle.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messstelle.js Wed Jan 20 17:33:33 2016 +0100
@@ -39,7 +39,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messstelle',
+ url: 'lada-server/rest/messstelle',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messung.js
--- a/app/model/Messung.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messung.js Wed Jan 20 17:33:33 2016 +0100
@@ -82,7 +82,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messung',
+ url: 'lada-server/rest/messung',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Messwert.js
--- a/app/model/Messwert.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Messwert.js Wed Jan 20 17:33:33 2016 +0100
@@ -79,7 +79,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messwert',
+ url: 'lada-server/rest/messwert',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/MmtMessprogramm.js
--- a/app/model/MmtMessprogramm.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/MmtMessprogramm.js Wed Jan 20 17:33:33 2016 +0100
@@ -37,7 +37,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messprogrammmmt',
+ url: 'lada-server/rest/messprogrammmmt',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Netzbetreiber.js
--- a/app/model/Netzbetreiber.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Netzbetreiber.js Wed Jan 20 17:33:33 2016 +0100
@@ -42,7 +42,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/netzbetreiber',
+ url: 'lada-server/rest/netzbetreiber',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Ort.js
--- a/app/model/Ort.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Ort.js Wed Jan 20 17:33:33 2016 +0100
@@ -60,7 +60,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/ort',
+ url: 'lada-server/rest/ort',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/PKommentar.js
--- a/app/model/PKommentar.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/PKommentar.js Wed Jan 20 17:33:33 2016 +0100
@@ -42,7 +42,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/pkommentar',
+ url: 'lada-server/rest/pkommentar',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Pflichtmessgroesse.js
--- a/app/model/Pflichtmessgroesse.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Pflichtmessgroesse.js Wed Jan 20 17:33:33 2016 +0100
@@ -36,7 +36,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/pflichtmessgroesse',
+ url: 'lada-server/rest/pflichtmessgroesse',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Probe.js
--- a/app/model/Probe.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Probe.js Wed Jan 20 17:33:33 2016 +0100
@@ -141,7 +141,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/probe',
+ url: 'lada-server/rest/probe',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/ProbeList.js
--- a/app/model/ProbeList.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/ProbeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -23,7 +23,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/probe',
+ url: 'lada-server/rest/probe',
reader: {
type: 'json',
root: 'data',
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Probenart.js
--- a/app/model/Probenart.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Probenart.js Wed Jan 20 17:33:33 2016 +0100
@@ -33,7 +33,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/probenart',
+ url: 'lada-server/rest/probenart',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Probenehmer.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/Probenehmer.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,80 @@
+/* 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 Probenehmer Stammdaten
+ */
+Ext.define('Lada.model.Probenehmer', {
+ extend: 'Ext.data.Model',
+
+ fields: [{
+ name: 'id'
+ }, {
+ name: 'netzbetreiberId'
+ }, {
+ name: 'prnId'
+ }, {
+ name: 'bearbeiter'
+ }, {
+ name: 'bemerkung'
+ }, {
+ name: 'bezeichnung'
+ }, {
+ name: 'kurzBezeichnung'
+ }, {
+ name: 'ort'
+ }, {
+ name: 'plz'
+ }, {
+ name: 'strasse'
+ }, {
+ name: 'telefon'
+ }, {
+ name: 'tp'
+ }, {
+ name: 'typ'
+ }, {
+ name: 'letzteAenderung',
+ type: 'date',
+ convert: function(v) {
+ if (!v) {
+ return v;
+ }
+ return new Date(v);
+ }
+/*
+ }, {
+ name: 'treeModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+ }, {
+ name: 'parentModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+*/
+ }],
+
+ idProperty: 'id',
+
+ proxy: {
+ type: 'rest',
+ url: 'lada-server/rest/probenehmer',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Probenzusatz.js
--- a/app/model/Probenzusatz.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Probenzusatz.js Wed Jan 20 17:33:33 2016 +0100
@@ -44,7 +44,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/probenzusatz',
+ url: 'lada-server/rest/probenzusatz',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Query.js
--- a/app/model/Query.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Query.js Wed Jan 20 17:33:33 2016 +0100
@@ -24,5 +24,7 @@
name: 'results'
}, {
name: 'filters'
+ }, {
+ name: 'type'
}]
});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Staat.js
--- a/app/model/Staat.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Staat.js Wed Jan 20 17:33:33 2016 +0100
@@ -27,7 +27,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/staat',
+ url: 'lada-server/rest/staat',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Status.js
--- a/app/model/Status.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Status.js Wed Jan 20 17:33:33 2016 +0100
@@ -65,7 +65,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/status',
+ url: 'lada-server/rest/status',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/StatusStufe.js
--- a/app/model/StatusStufe.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/StatusStufe.js Wed Jan 20 17:33:33 2016 +0100
@@ -23,7 +23,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/statusstufe',
+ url: 'lada-server/rest/statusstufe',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/StatusWerte.js
--- a/app/model/StatusWerte.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/StatusWerte.js Wed Jan 20 17:33:33 2016 +0100
@@ -23,7 +23,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/statuswert',
+ url: 'lada-server/rest/statuswert',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Umwelt.js
--- a/app/model/Umwelt.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Umwelt.js Wed Jan 20 17:33:33 2016 +0100
@@ -33,7 +33,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/umwelt',
+ url: 'lada-server/rest/umwelt',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Verwaltungseinheit.js
--- a/app/model/Verwaltungseinheit.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Verwaltungseinheit.js Wed Jan 20 17:33:33 2016 +0100
@@ -57,7 +57,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/verwaltungseinheit',
+ url: 'lada-server/rest/verwaltungseinheit',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/model/Zusatzwert.js
--- a/app/model/Zusatzwert.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/model/Zusatzwert.js Wed Jan 20 17:33:33 2016 +0100
@@ -66,7 +66,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/zusatzwert',
+ url: 'lada-server/rest/zusatzwert',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/DatensatzErzeuger.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/store/DatensatzErzeuger.js Wed Jan 20 17:33:33 2016 +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 DatensatzErzeuger Stammdaten
+ */
+Ext.define('Lada.store.DatensatzErzeuger', {
+ extend: 'Ext.data.Store',
+ model: 'Lada.model.DatensatzErzeuger',
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/Messgroessen.js
--- a/app/store/Messgroessen.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/store/Messgroessen.js Wed Jan 20 17:33:33 2016 +0100
@@ -26,7 +26,7 @@
proxy: {
type: 'rest',
- url: 'lada-server/messgroesse',
+ url: 'lada-server/rest/messgroesse',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/MessprogrammKategorie.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/store/MessprogrammKategorie.js Wed Jan 20 17:33:33 2016 +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 MessprogrammKategorie Stammdaten
+ */
+Ext.define('Lada.store.MessprogrammKategorie', {
+ extend: 'Ext.data.Store',
+ model: 'Lada.model.MessprogrammKategorie'
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/MessprogrammQueries.js
--- a/app/store/MessprogrammQueries.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/store/MessprogrammQueries.js Wed Jan 20 17:33:33 2016 +0100
@@ -12,10 +12,10 @@
Ext.define('Lada.store.MessprogrammQueries', {
extend: 'Ext.data.Store',
model: 'Lada.model.Query',
- autolad: true,
+ autoLoad: true,
proxy: {
type: 'rest',
- url: 'lada-server/query/messprogramm',
+ url: 'lada-server/rest/query/messprogramm',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/MessprogrammeList.js
--- a/app/store/MessprogrammeList.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/store/MessprogrammeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -7,7 +7,7 @@
*/
/**
- * Store for Messprogramme, it is used in the {@link Lada.view.grid.FilterResult}
+ * Store for Messprogramme, it is used in the {@link Lada.view.grid.MessprogrammeList}
*/
Ext.define('Lada.store.MessprogrammeList', {
extend: 'Ext.data.Store',
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/ProbeQueries.js
--- a/app/store/ProbeQueries.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/store/ProbeQueries.js Wed Jan 20 17:33:33 2016 +0100
@@ -15,7 +15,7 @@
autoLoad: true,
proxy: {
type: 'rest',
- url: 'lada-server/query/probe',
+ url: 'lada-server/rest/query/probe',
reader: {
type: 'json',
root: 'data'
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/ProbenList.js
--- a/app/store/ProbenList.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/store/ProbenList.js Wed Jan 20 17:33:33 2016 +0100
@@ -7,7 +7,7 @@
*/
/**
- * Store for Proben, it is used in the {@link Lada.view.grid.FilterResult}
+ * Store for Proben, it is used in the {@link Lada.view.grid.ProbeList}
*/
Ext.define('Lada.store.ProbenList', {
extend: 'Ext.data.Store',
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/Probenehmer.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/store/Probenehmer.js Wed Jan 20 17:33:33 2016 +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 Probenehmer Stammdaten
+ */
+Ext.define('Lada.store.Probenehmer', {
+ extend: 'Ext.data.Store',
+ model: 'Lada.model.Probenehmer'
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/store/StammdatenQueries.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/store/StammdatenQueries.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,29 @@
+/* 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 for Stammdaten
+ */
+Ext.define('Lada.store.StammdatenQueries', {
+ extend: 'Ext.data.Store',
+ model: 'Lada.model.Query',
+ autoLoad: true,
+/* data: { data: [
+ {id: '0', name: 'MessprogrammKategorie', type: 'MessprogrammKategorie', sql: 'bogus', description: 'bogusBeschr', filters: []},
+ {id: '1', name: 'DatensatzErzeuger', type: 'DatensatzErzeuger', sql: 'bogus', description: 'bogusBeschr', filters: []}
+ ]},*/
+ proxy: {
+ type: 'rest',
+ url: 'lada-server/rest/query/stammdaten',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/ModeSwitcher.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/ModeSwitcher.js Wed Jan 20 17:33:33 2016 +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.
+ */
+
+/**
+ * This is a Widget for a ModeSwitcher
+ */
+Ext.define('Lada.view.ModeSwitcher', {
+ extend: 'Ext.form.FieldSet',
+ alias: 'widget.modeswitcher',
+
+ mixins: {
+ observable: 'Ext.util.Observable'
+ },
+ /**
+ * Initialise the Widget.
+ * When the Checkbox is checked, it fires a 'check' Event
+ */
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.title = i18n.getMsg('modus');
+ this.items= [{
+ xtype: 'radiogroup',
+ columns: 1,
+ width: '100%',
+ items: [{
+ xtype: 'radiofield',
+ name: 'modeswitch',
+ boxLabel: i18n.getMsg('proben'),
+ inputValue: 'proben', //this determines the store
+ // which will be loaded by the controller,
+ checked: true,
+ handler: function(field, state){
+ if (state === true) {
+ this.fireEvent('check', field);
+ }
+ }
+ },{
+ xtype: 'radiofield',
+ name: 'modeswitch',
+ boxLabel: i18n.getMsg('messprogramme'),
+ inputValue: 'messprogramme',
+ handler: function(field, state){
+ if (state === true) {
+ this.fireEvent('check', field);
+ }
+ }
+ },{
+ xtype: 'radiofield',
+ name: 'modeswitch',
+ boxLabel: i18n.getMsg('stammdaten'),
+ inputValue: 'stammdaten',
+ handler: function(field, state){
+ if (state === true) {
+ this.fireEvent('check', field);
+ }
+ }
+ }]
+ }];
+ this.callParent(arguments);
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/ProbenPlanungSwitcher.js
--- a/app/view/ProbenPlanungSwitcher.js Wed Jan 13 15:29:09 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/* 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.
- */
-
-/**
- * This is a Widget for a ProbenPlanungSwitcher
- */
-Ext.define('Lada.view.ProbenPlanungSwitcher', {
- extend: 'Ext.form.FieldSet',
- alias: 'widget.probenplanungswitcher',
-
- mixins: {
- observable: 'Ext.util.Observable'
- },
- /**
- * Initialise the Widget.
- * When the Checkbox is checked, it fires a 'check' Event
- */
- initComponent: function() {
- var i18n = Lada.getApplication().bundle;
- this.title = i18n.getMsg('modus');
- this.items= [{
- xtype: 'radiogroup',
- columns: 1,
- width: '100%',
- items: [{
- xtype: 'radiofield',
- name: 'ppswitch',
- boxLabel: i18n.getMsg('probelist'),
- inputValue: 'ProbeList', //this determines the store
- // which will be loaded,
- checked: true,
- handler: function(field, state){
- if (state === true) {
- this.fireEvent('check', field);
- }
- }
- },{
- xtype: 'radiofield',
- name: 'ppswitch',
- boxLabel: i18n.getMsg('probeplanning'),
- inputValue: 'MessprogrammList', //name of a store
- handler: function(field, state){
- if (state === true) {
- this.fireEvent('check', field);
- }
- }
- }]
- }];
- this.callParent(arguments);
- }
-});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/Viewport.js
--- a/app/view/Viewport.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/view/Viewport.js Wed Jan 20 17:33:33 2016 +0100
@@ -16,9 +16,8 @@
Ext.define('Lada.view.Viewport', {
extend: 'Ext.container.Viewport',
requires: [
- 'Lada.view.ProbenPlanungSwitcher',
- 'Lada.view.FilterPanel',
- 'Lada.view.grid.FilterResult'
+ 'Lada.view.ModeSwitcher',
+ 'Lada.view.FilterPanel'
],
layout: 'fit',
initComponent: function() {
@@ -34,7 +33,6 @@
},
region: 'west',
split: true,
- border: 1,
flex: 1,
dockedItems: [{
xtype: 'toolbar',
@@ -60,7 +58,7 @@
}]
}],
items: [{
- xtype: 'probenplanungswitcher',
+ xtype: 'modeswitcher',
margin: '0, 10, 0, 10'
}, {
// Auswahl einer Abfrage.
@@ -76,9 +74,10 @@
items: []
}]
}, {
- // Resultlist for the query.
+ xtype: 'panel',
+ layout: 'fit',
+ name: 'contentpanel',
flex: 3,
- xtype: 'filterresultgrid',
hidden: false,
region: 'center'
}]
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/DatensatzErzeuger.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/DatensatzErzeuger.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,157 @@
+/* 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 DatensatzErzeuger Stammdaten
+ */
+Ext.define('Lada.view.grid.DatensatzErzeuger', {
+ extend: 'Ext.grid.Panel',
+ alias: 'widget.datensatzerzeugergrid',
+
+ // minHeight and deferEmptyText are needed to be able to show the
+ // emptyText message.
+ minHeight: 110,
+ viewConfig: {
+ deferEmptyText: false
+ },
+
+ warnings: null,
+ errors: null,
+ readOnly: true,
+ allowDeselect: true,
+ border: false,
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.emptyText = i18n.getMsg('de.emptyGrid');
+
+ this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
+ clicksToMoveEditor: 1,
+ autoCancel: false,
+ disabled: false,
+ pluginId: 'rowedit'
+ });
+ this.plugins = [this.rowEditing];
+
+ // TODO: Which docked Items are required?
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ id: 'tbtitle',
+ text: i18n.getMsg('de.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('de.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('de.button.delete'),
+ icon: 'resources/img/list-remove.png',
+ action: 'delete',
+ disabled: true // disabled on startup, will be enabled by controller if necessary
+ }]
+ }];
+
+ this.columns = [{
+ header: i18n.getMsg('netzbetreiberId'),
+ dataIndex: 'netzbetreiberId',
+ renderer: function(value) {
+ var r = '';
+ if (!value || value === '') {
+ r = 'Error';
+ }
+ var store = Ext.data.StoreManager.get('netzbetreiber');
+ var record = store.getById(value);
+ if (record) {
+ r = record.get('netzbetreiber');
+ }
+ return r;
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('netzbetreiber'),
+ displayField: 'netzbetreiber',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('daErzeugerId'),
+ dataIndex: 'daErzeugerId',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('bezeichnung'),
+ dataIndex: 'bezeichnung',
+ editor: {
+ allowBlank: false,
+ xtype: 'textfield'
+ }
+ }, {
+ header: i18n.getMsg('mstId'),
+ dataIndex: 'mstId',
+ renderer: function(value) {
+ var r = '';
+ if (!value || value === '') {
+ r = 'Error';
+ }
+ var store = Ext.data.StoreManager.get('messstellen');
+ var record = store.getById(value);
+ if (record) {
+ r = record.get('messStelle');
+ }
+ return r;
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('messstellen'),
+ displayField: 'messStelle',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('letzteAenderung'),
+ dataIndex: 'letzteAenderung'
+ }];
+ this.listeners = {
+ select: {
+ fn: this.activateRemoveButton,
+ scope: this
+ },
+ deselect: {
+ fn: this.deactivateRemoveButton,
+ scope: this
+ }
+ };
+ this.callParent(arguments);
+ },
+
+ /**
+ * This sets the Store of this Grid
+ */
+ setStore: function(store){
+ var i18n = Lada.getApplication().bundle;
+
+ if (store) {
+ this.removeDocked(Ext.getCmp('ptbar'), true);
+ this.reconfigure(store);
+ this.down('button[action=add]').enable();
+ this.addDocked([{
+ xtype: 'pagingtoolbar',
+ id: 'ptbar',
+ dock: 'bottom',
+ store: store,
+ displayInfo: true
+ }]);
+ }
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/FilterResult.js
--- a/app/view/grid/FilterResult.js Wed Jan 13 15:29:09 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/* 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 the result of the Filter
- */
-Ext.define('Lada.view.grid.FilterResult', {
- extend: 'Ext.grid.Panel',
- alias: 'widget.filterresultgrid',
-
- requires: 'Lada.view.window.DeleteProbe',
-
- store: null, //'ProbenList',
-
- multiSelect: true,
-
- viewConfig: {
- emptyText: 'Keine Ergebnisse gefunden.',
- deferEmptyText: false
- },
-
- initComponent: function() {
- var i18n = Lada.getApplication().bundle;
-
- this.dockedItems = [{
- xtype: 'toolbar',
- dock: 'top',
- items: [{
- xtype: 'tbtext',
- id: 'tbtitle',
- text: i18n.getMsg('probelist')
- },
- '->',
- {
- text: 'Probe erstellen',
- icon: 'resources/img/list-add.png',
- action: 'addProbe',
- disabled: false
- }, {
- text: 'Proben Importieren',
- icon: 'resources/img/svn-commit.png',
- action: 'import',
- disabled: false
- }, {
- text: 'Proben Exportieren',
- icon: 'resources/img/svn-update.png',
- action: 'export',
- disabled: true
- }, {
- text: 'Auswahl Drucken',
- icon: 'resources/img/printer.png',
- action: 'print',
- disabled: true
- },
- '-',
- {
- text: 'Messprogramm erstellen',
- icon: 'resources/img/list-add.png',
- action: 'addMessprogramm',
- disabled: true
- }, {
- text: 'Proben generieren',
- icon: 'resources/img/view-time-schedule-insert.png',
- action: 'genProbenFromMessprogramm',
- disabled: true
- }]
- }];
- this.columns = [];
- this.callParent(arguments);
- },
-
- /**
- * This sets the Store of the FilterResultGrid
- */
- setStore: function(store){
- var i18n = Lada.getApplication().bundle;
-
- this.removeDocked(Ext.getCmp('ptbar'), true);
- this.reconfigure(store);
- this.addDocked([{
- xtype: 'pagingtoolbar',
- id: 'ptbar',
- dock: 'bottom',
- store: store,
- displayInfo: true
- }]);
-
- //Configure the Toolbar.
- this.setMode(store);
- },
-
- /**
- * Enables or disables Toolbar-Buttons according to the selected mode
- */
- setMode: function(store) {
- var t = Ext.getCmp('tbtitle');
- var i18n = Lada.getApplication().bundle;
- if (store.model.modelName == 'Lada.model.ProbeList'){
- t.setText(i18n.getMsg('probelist'));
- this.down('button[action=addMessprogramm]').disable();
- this.down('button[action=genProbenFromMessprogramm]').disable();
- this.down('button[action=addProbe]').enable();
- this.down('button[action=import]').enable();
- this.down('button[action=export]').enable();
- this.down('button[action=print]').enable();
- }
- else if (store.model.modelName == 'Lada.model.MessprogrammList') {
- t.setText(i18n.getMsg('probeplanning'));
- this.down('button[action=addMessprogramm]').enable();
- this.down('button[action=genProbenFromMessprogramm]').enable();
- this.down('button[action=addProbe]').disable();
- this.down('button[action=import]').disable();
- this.down('button[action=export]').disable();
- this.down('button[action=print]').disable();
- }
- else {
- t.setText('');
- console.log('The model '+store.model.modelName+
- 'was not defined in the FilterResultGrid.' +
- ' Hence the title could not be set.');
- }
- },
-
- /**
- * Setup columns of the Grid dynamically based on a list of given cols.
- * The function is called from the {@link Lada.controller.Filter#search
- * search event}
- * The Images for the Read-Write Icon are defined in CSS
- */
- setupColumns: function(cols) {
- var resultColumns = [];
- var fields = [];
-
- fields.push(new Ext.data.Field({
- name: 'owner'
- }));
- fields.push(new Ext.data.Field({
- name: 'readonly'
- }));
-
- resultColumns.push({
- xtype: 'actioncolumn',
- text: 'RW',
- dataIndex: 'readonly',
- sortable: false,
- tooltip: 'Probe öffnen',
- width: 30,
- getClass: function (val, meta, rec) {
- return rec.get('readonly') === false ? "edit" : "noedit";
- },
- handler: function(grid, rowIndex, colIndex) {
- var rec = grid.getStore().getAt(rowIndex);
- grid.fireEvent('itemdblclick', grid, rec);
- }
- });
-
- 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
- }));
- }
- if (this.store.$className == 'Lada.store.ProbenList') {
- // Add a Delete-Button
- // TODO: Might need to be extended to Messprogramme
- resultColumns.push({
- xtype: 'actioncolumn',
- text: 'Aktion',
- sortable: false,
- width: 30,
- items: [{
- icon: 'resources/img/edit-delete.png',
- tooltip: 'Löschen',
- isDisabled: function(grid, rowIndex, colIndex) {
- var rec = grid.getStore().getAt(rowIndex);
- if ( rec.get('readonly') || !rec.get('owner')) {
- return true;
- }
- return false;
- },
- handler: function(grid, rowIndex, colIndex){
- var rec = grid.getStore().getAt(rowIndex);
-
- var winname = 'Lada.view.window.DeleteProbe';
- var win = Ext.create(winname, {
- record: rec,
- parentWindow: this
- });
- win.show();
- win.initData();
- }
- }]
- });
- }
- this.store.model.setFields(fields);
- this.reconfigure(this.store, resultColumns);
- }
-});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/MessprogrammKategorie.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/MessprogrammKategorie.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,131 @@
+/* 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 MessprogrammKategorie Stammdaten
+ */
+Ext.define('Lada.view.grid.MessprogrammKategorie', {
+ extend: 'Ext.grid.Panel',
+ alias: 'widget.mkgrid',
+
+ // minHeight and deferEmptyText are needed to be able to show the
+ // emptyText message.
+ minHeight: 110,
+ viewConfig: {
+ deferEmptyText: false
+ },
+
+ warnings: null,
+ errors: null,
+ readOnly: true,
+ allowDeselect: true,
+ border: false,
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.emptyText = i18n.getMsg('mk.emptyGrid');
+
+ this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
+ clicksToMoveEditor: 1,
+ autoCancel: false,
+ disabled: false,
+ pluginId: 'rowedit'
+ });
+ this.plugins = [this.rowEditing];
+
+ // TODO: Which docked Items are required?
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ id: 'tbtitle',
+ text: i18n.getMsg('mk.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('mk.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('mk.button.delete'),
+ icon: 'resources/img/list-remove.png',
+ action: 'delete',
+ disabled: true // disabled on startup, will be enabled by controller if necessary
+ }]
+ }];
+
+ this.columns = [{
+ header: i18n.getMsg('netzbetreiberId'),
+ dataIndex: 'netzbetreiberId',
+ renderer: function(value) {
+ var r = '';
+ if (!value || value === '') {
+ r = 'Error';
+ }
+ var store = Ext.data.StoreManager.get('netzbetreiber');
+ var record = store.getById(value);
+ if (record) {
+ r = record.get('netzbetreiber');
+ }
+ return r;
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('netzbetreiber'),
+ displayField: 'netzbetreiber',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('mplId'),
+ dataIndex: 'mplId',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('bezeichnung'),
+ dataIndex: 'bezeichnung',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('letzteAenderung'),
+ dataIndex: 'letzteAenderung'
+ }];
+ this.listeners = {
+ select: {
+ fn: this.activateRemoveButton,
+ scope: this
+ },
+ deselect: {
+ fn: this.deactivateRemoveButton,
+ scope: this
+ }
+ };
+ this.callParent(arguments);
+ },
+
+ /**
+ * This sets the Store of this Grid
+ */
+ setStore: function(store){
+ var i18n = Lada.getApplication().bundle;
+
+ this.removeDocked(Ext.getCmp('ptbar'), true);
+ this.reconfigure(store);
+ this.addDocked([{
+ xtype: 'pagingtoolbar',
+ id: 'ptbar',
+ dock: 'bottom',
+ store: store,
+ displayInfo: true
+ }]);
+ }
+});
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/MessprogrammeList.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/MessprogrammeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,47 @@
+/* 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 the result of the Filter
+ */
+Ext.define('Lada.view.grid.MessprogrammeList', {
+ extend: 'Lada.view.widget.DynamicGrid',
+ alias: 'widget.messprogrammelistgrid',
+
+ requires: 'Lada.view.window.DeleteProbe',
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.emptyText = i18n.getMsg('messprogramme.emptyGrid');
+
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ id: 'tbtitle',
+ text: i18n.getMsg('messprogramme.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('messprogramme.button.create'),
+ icon: 'resources/img/list-add.png',
+ action: 'addMessprogramm'
+ }, {
+ text: i18n.getMsg('messprogramme.button.generate'),
+ icon: 'resources/img/view-time-schedule-insert.png',
+ action: 'genProbenFromMessprogramm',
+ disabled: true // disabled on startup, will be enabled by controller if necessary
+ }]
+ }];
+ this.columns = [];
+ this.callParent(arguments);
+ }
+});
+
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/ProbeList.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/ProbeList.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,103 @@
+/* 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 the result of the Filter
+ */
+Ext.define('Lada.view.grid.ProbeList', {
+ extend: 'Lada.view.widget.DynamicGrid',
+ alias: 'widget.probelistgrid',
+
+ requires: 'Lada.view.window.DeleteProbe',
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.emptyText = i18n.getMsg('probe.emptyGrid');
+
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ id: 'tbtitle',
+ text: i18n.getMsg('probe.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('probe.button.create'),
+ icon: 'resources/img/list-add.png',
+ action: 'addProbe',
+ disabled: false
+ }, {
+ text: i18n.getMsg('probe.button.import'),
+ icon: 'resources/img/svn-commit.png',
+ action: 'import',
+ disabled: false
+ }, {
+ text: i18n.getMsg('probe.button.export'),
+ icon: 'resources/img/svn-update.png',
+ action: 'export',
+ disabled: true //disabled on start, enabled by the controller
+ }, {
+ text: i18n.getMsg('probe.button.print'),
+ icon: 'resources/img/printer.png',
+ action: 'print',
+ disabled: true //disabled on start, enabled by the controller
+ }]
+ }];
+ 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.Filter#search
+ * search event}
+ * The Images for the Read-Write Icon are defined in CSS
+ * This Method overrides setupColumns of the parents class,
+ * becaus the delete colum is required.
+ */
+ setupColumns: function(cols) {
+ var caf = this.generateColumnsAndFields(cols);
+ var columns = caf[0];
+ var fields = caf[1];
+ var i18n = Lada.getApplication().bundle;
+
+ columns.push({
+ xtype: 'actioncolumn',
+ text: i18n.getMsg('action'),
+ sortable: false,
+ width: 30,
+ items: [{
+ icon: 'resources/img/edit-delete.png',
+ tooltip: i18n.getMsg('delete'),
+ isDisabled: function(grid, rowIndex, colIndex) {
+ var rec = grid.getStore().getAt(rowIndex);
+ if ( rec.get('readonly') || !rec.get('owner')) {
+ return true;
+ }
+ return false;
+ },
+ handler: function(grid, rowIndex, colIndex){
+ var rec = grid.getStore().getAt(rowIndex);
+
+ var winname = 'Lada.view.window.DeleteProbe';
+ var win = Ext.create(winname, {
+ record: rec,
+ parentWindow: this
+ });
+ win.show();
+ win.initData();
+ }
+ }]
+ });
+ this.store.model.setFields(fields);
+ this.reconfigure(this.store, columns);
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/grid/Probenehmer.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/Probenehmer.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,187 @@
+/* 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 Probenehmer Stammdaten
+ */
+Ext.define('Lada.view.grid.Probenehmer', {
+ extend: 'Ext.grid.Panel',
+ alias: 'widget.probenehmergrid',
+
+ // minHeight and deferEmptyText are needed to be able to show the
+ // emptyText message.
+ minHeight: 110,
+ viewConfig: {
+ deferEmptyText: false
+ },
+
+ warnings: null,
+ errors: null,
+ readOnly: true,
+ allowDeselect: true,
+ border: false,
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.emptyText = i18n.getMsg('pn.emptyGrid');
+
+ this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
+ clicksToMoveEditor: 1,
+ autoCancel: false,
+ disabled: false,
+ pluginId: 'rowedit'
+ });
+ this.plugins = [this.rowEditing];
+
+ // TODO: Which docked Items are required?
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ id: 'tbtitle',
+ text: i18n.getMsg('pn.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('pn.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('pn.button.delete'),
+ icon: 'resources/img/list-remove.png',
+ action: 'delete',
+ disabled: true // disabled on startup, will be enabled by controller if necessary
+ }]
+ }];
+ this.columns = [{
+ header: i18n.getMsg('netzbetreiberId'),
+ dataIndex: 'netzbetreiberId',
+ renderer: function(value) {
+ var r = '';
+ if (!value || value === '') {
+ r = 'Error';
+ }
+ var store = Ext.data.StoreManager.get('netzbetreiber');
+ var record = store.getById(value);
+ if (record) {
+ r = record.get('netzbetreiber');
+ }
+ return r;
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('netzbetreiber'),
+ displayField: 'netzbetreiber',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('bearbeiter'),
+ dataIndex: 'bearbeiter',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('prnId'),
+ dataIndex: 'prnId',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('bemerkung'),
+ dataIndex: 'bemerkung',
+ editor: {
+ allowBlank: false,
+ xtype: 'textfield'
+ }
+ }, {
+ header: i18n.getMsg('kurzBezeichnung'),
+ dataIndex: 'kurzBezeichnung',
+ editor: {
+ allowBlank: false,
+ xtype: 'textfield'
+ }
+ }, {
+ header: i18n.getMsg('ort'),
+ dataIndex: 'ort',
+ editor: {
+ allowBlank: false,
+ xtype: 'textfield'
+ }
+ }, {
+ header: i18n.getMsg('plz'),
+ dataIndex: 'plz',
+ editor: {
+ allowBlank: false,
+ xtype: 'numberfield'
+ }
+ }, {
+ header: i18n.getMsg('strasse'),
+ dataIndex: 'strasse',
+ editor: {
+ allowBlank: false,
+ xtype: 'textfield'
+ }
+ }, {
+ header: i18n.getMsg('telefon'),
+ dataIndex: 'telefon',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('tp'),
+ dataIndex: 'tp',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('typ'),
+ dataIndex: 'typ',
+ editor: {
+ allowBlank: false
+ }
+ }, {
+ header: i18n.getMsg('letzteAenderung'),
+ dataIndex: 'letzteAenderung'
+ }];
+ this.listeners = {
+ select: {
+ fn: this.activateRemoveButton,
+ scope: this
+ },
+ deselect: {
+ fn: this.deactivateRemoveButton,
+ scope: this
+ }
+ };
+ this.callParent(arguments);
+ },
+
+ /**
+ * This sets the Store of this Grid
+ */
+ setStore: function(store){
+ var i18n = Lada.getApplication().bundle;
+
+ if (store) {
+ this.removeDocked(Ext.getCmp('ptbar'), true);
+ this.reconfigure(store);
+ this.down('button[action=add]').enable();
+ this.addDocked([{
+ xtype: 'pagingtoolbar',
+ id: 'ptbar',
+ dock: 'bottom',
+ store: store,
+ displayInfo: true
+ }]);
+ }
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/widget/DynamicGrid.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/widget/DynamicGrid.js Wed Jan 20 17:33:33 2016 +0100
@@ -0,0 +1,112 @@
+/* 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 the result of the Filter
+ */
+Ext.define('Lada.view.widget.DynamicGrid', {
+ extend: 'Ext.grid.Panel',
+
+ store: null,
+
+ border: false,
+ multiSelect: true,
+ allowDeselect: true,
+
+ isDynamic: true,
+
+ viewConfig: {
+ deferEmptyText: false
+ },
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.callParent(arguments);
+ },
+
+ /**
+ * This sets the Store of the DynamicGrid
+ */
+ setStore: function(store){
+ var i18n = Lada.getApplication().bundle;
+
+ this.removeDocked(Ext.getCmp('ptbar'), true);
+ this.reconfigure(store);
+ this.addDocked([{
+ xtype: 'pagingtoolbar',
+ id: 'ptbar',
+ dock: 'bottom',
+ store: store,
+ displayInfo: true
+ }]);
+
+ },
+
+ /**
+ * Setup columns of the Grid dynamically based on a list of given cols.
+ * The function is called from the {@link Lada.controller.Filter#search
+ * search event}
+ * The Images for the Read-Write Icon are defined in CSS
+ */
+ setupColumns: function(cols) {
+ var caf = this.generateColumnsAndFields(cols);
+ var columns = caf[0];
+ var fields = caf[1];
+ this.store.model.setFields(fields);
+ this.reconfigure(this.store, columns);
+ },
+
+ /**
+ * generateColumnsAndFields
+ * generates an array of columns which are used for the dynamic grid
+ * @return an array of two arrays: [0] is an array of colums [1] an array
+ * of fields
+ **/
+ generateColumnsAndFields: function(cols) {
+ var resultColumns = [];
+ var fields = [];
+
+ fields.push(new Ext.data.Field({
+ name: 'owner'
+ }));
+ fields.push(new Ext.data.Field({
+ name: 'readonly'
+ }));
+
+ resultColumns.push({
+ xtype: 'actioncolumn',
+ text: 'RW',
+ dataIndex: 'readonly',
+ sortable: false,
+ tooltip: 'Probe öffnen',
+ width: 30,
+ getClass: function (val, meta, rec) {
+ return rec.get('readonly') === false ? "edit" : "noedit";
+ },
+ handler: function(grid, rowIndex, colIndex) {
+ var rec = grid.getStore().getAt(rowIndex);
+ grid.fireEvent('itemdblclick', grid, rec);
+ }
+ });
+
+ 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
+ }));
+ }
+ var caf = new Array();
+ caf[0] = resultColumns;
+ caf[1] = fields;
+ return caf;
+ }
+});
+
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/window/DeleteProbe.js
--- a/app/view/window/DeleteProbe.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/view/window/DeleteProbe.js Wed Jan 20 17:33:33 2016 +0100
@@ -50,8 +50,7 @@
handler: function() {
Ext.Ajax.request({
- //TODO Use correct URLs
- url: 'lada-server/probe/'+me.record.get('id'),
+ url: 'lada-server/rest/probe/'+me.record.get('id'),
method: 'DELETE',
success: function(response) {
var json = Ext.JSON.decode(response.responseText);
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/window/FileUpload.js
--- a/app/view/window/FileUpload.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/view/window/FileUpload.js Wed Jan 20 17:33:33 2016 +0100
@@ -82,7 +82,7 @@
'X-OPENID-PARAMS': Lada.openIDParams
},
method: 'POST',
- url: 'lada-server/import/laf'
+ url: 'lada-server/data/import/laf'
});
this.mon(uploader, 'uploadsuccess', win.uploadSuccess, win);
this.mon(uploader, 'uploadfailure', win.uploadFailure, win);
diff -r 54179b6043b6 -r 23bfcbdb4527 app/view/window/GenProbenFromMessprogramm.js
--- a/app/view/window/GenProbenFromMessprogramm.js Wed Jan 13 15:29:09 2016 +0100
+++ b/app/view/window/GenProbenFromMessprogramm.js Wed Jan 20 17:33:33 2016 +0100
@@ -56,7 +56,7 @@
Ext.Ajax.request({
- url: 'lada-server/probe/messprogramm',
+ url: 'lada-server/rest/probe/messprogramm',
method: 'POST',
jsonData: jsondata,
success: function(response) {
diff -r 54179b6043b6 -r 23bfcbdb4527 resources/i18n/Lada_de-DE.properties
--- a/resources/i18n/Lada_de-DE.properties Wed Jan 13 15:29:09 2016 +0100
+++ b/resources/i18n/Lada_de-DE.properties Wed Jan 20 17:33:33 2016 +0100
@@ -38,9 +38,13 @@
probenartId:Probenart
probeentnahmeBeginn:Probeentnahme Beginn
+##
+# Modus
+##
modus:Modus
-probeplanning:Messprogramme
-probelist:Proben
+messprogramme:Messprogramme
+proben:Proben
+stammdaten:Stammdaten
name:Name
mstId:Messstelle
@@ -65,6 +69,21 @@
from:Von
to:Bis
offset:Offset
+letzteAenderung:Letzte Änderung
+bezeichnung:Bezeichnung
+mplId:mplID-TODOTEXT
+daErzeugerId:daErzeugerId-TODOTEXT
+prnId:prnId-TODOTEXT
+bearbeiter:bearbeiter-TODOTEXT
+bemerkung:bemerkung-TODOTEXT
+kurzBezeichnung:kurzBezeichnung-TODOTEXT
+ort:ort-TODOTEXT
+plz:plz-TODOTEXT
+strasse:strasse-TODOTEXT
+telefon:telefon-TODOTEXT
+tp:tp-TODOTEXT
+typ:typ-TODOTEXT
+
emptytext.probenintervall:Wählen Sie ein Probenintervall
emptytext.datenbasis:Wählen Sie eine Datenbasis
@@ -121,6 +140,8 @@
messprogtimeperiod:für den Zeitraum
select:Auswählen
apply:Übernehmen
+action:Aktion
+remove:Entfernen
reset:Zurücksetzen
error: Fehler
@@ -129,6 +150,9 @@
delete.probe:Wollen Sie die Probe und alle damit verbundenen Messungen wirklich LÖSCHEN?
delete.probe.warning:ACHTUNG: Diese Aktion kann nicht rückgängig gemacht werden.
+undefined:Nicht definiert
+
+confirmation.question: Sind Sie sich sicher?
## Statusgrid
statusgrid.emptyText: Keine Statusangaben gefunden.
@@ -170,3 +194,45 @@
pi.weekly:wöchentlich
pi.daily:täglich
intervall:Intervall
+
+##
+# ProbeList Grid:
+##
+probe.emptyGrid:Keine Proben gefunden.
+probe.gridTitle:Proben
+probe.button.create:Probe erstellen
+probe.button.import:Probe importieren
+probe.button.export:Probe exportieren
+probe.button.print:Auswahl drucken
+
+##
+# MessprogrammeList Grid:
+##
+messprogramme.emptyGrid:Keine Messprogramme gefunden.
+messprogramme.gridTitle:Messprogramme
+messprogramme.button.create:Messprogramm erstellen
+messprogramme.button.generate:Proben generieren
+
+##
+# DatensatzErzeuger Grid:
+##
+de.emptyGrid:Keine DatensatzErzeuger gefunden.
+de.gridTitle:Datensatzerzeuger
+de.button.add:Datensatzerzeuger hinzufügen
+de.button.delete:Datensatzerzeuger löschen
+
+##
+# MessprogrammKategorie Grid:
+##
+mk.emptyGrid:Keine Messprogrammkategorie gefunden.
+mk.gridTitle:Messprogramm Kategorien
+mk.button.add:Kategorie hinzufügen
+mk.button.delete:Kategorie löschen
+
+##
+# Probenehmer Grid:
+##
+pn.emptyGrid:Keine Probenehmer gefunden.
+pn.gridTitle:Probenehmer
+pn.button.add:Probenehmer hinzufügen
+pn.button.delete:Probenehmer löschen
More information about the Lada-commits
mailing list