[Lada-commits] [PATCH 1 of 2] Filled MessmethodenGrid with life
Wald Commits
scm-commit at wald.intevation.org
Thu May 7 10:55:55 CEST 2015
# HG changeset patch
# User Dustin Demuth <dustin at intevation.de>
# Date 1430922263 -7200
# Node ID b2fcbdc4969dc97f743c55508505b9048d6615ca
# Parent b8502964f5c37cc1f382babf04e13a4024896c5a
Filled MessmethodenGrid with life.
diff -r b8502964f5c3 -r b2fcbdc4969d app.js
--- a/app.js Wed May 06 14:15:37 2015 +0200
+++ b/app.js Wed May 06 16:24:23 2015 +0200
@@ -178,6 +178,7 @@
'Lada.controller.Map',
'Lada.controller.form.Location',
'Lada.controller.ProbenPlanungSwitcher',
- 'Lada.controller.form.Messprogramm'
- ]
+ 'Lada.controller.form.Messprogramm',
+ 'Lada.controller.grid.Messmethode'
+ ]
});
diff -r b8502964f5c3 -r b2fcbdc4969d app/controller/grid/Messmethode.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/Messmethode.js Wed May 06 16:24:23 2015 +0200
@@ -0,0 +1,123 @@
+/* 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 Messmethode
+ */
+Ext.define('Lada.controller.grid.Messmethode', {
+ extend: 'Ext.app.Controller',
+
+ /**
+ * Inhitialize the controller
+ * It has 3 listeners
+ */
+ init: function() {
+ this.control({
+ 'messmethodengrid': {
+ edit: this.gridSave,
+ canceledit: this.cancelEdit
+ },
+ 'messmethodengrid button[action=add]': {
+ click: this.add
+ },
+ 'messmethodengrid 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) {
+ console.log(context);
+ context.record.save({
+ success: function() {
+ context.grid.initData();
+ context.grid.up('window').initData();
+ },
+ failure: function(request, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.save.title')
+ +' #'+json.message,
+ Lada.getApplication().bundle.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.save.title'),
+ Lada.getApplication().bundle.getMsg('err.msg.generic.body'));
+ }
+ } else {
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.save.title'),
+ Lada.getApplication().bundle.getMsg('err.msg.response.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);
+ }
+ },
+
+ /**
+ * This function adds a new row
+ */
+ add: function(button) {
+ var record = Ext.create('Lada.model.MmtMessprogramm');
+ record.set('messprogrammId', button.up('messmethodengrid').recordId);
+ button.up('messmethodengrid').store.insert(0, record);
+ button.up('messmethodengrid').rowEditing.startEdit(0, 0);
+ },
+
+ /**
+ * A row 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');
+ //TODO i18n
+ 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(request, response) {
+ var json = response.request.scope.reader.jsonData;
+ if (json) {
+ if (json.message){
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.delete.title')
+ +' #'+json.message,
+ Lada.getApplication().bundle.getMsg(json.message));
+ } else {
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.delete.title'),
+ Lada.getApplication().bundle.getMsg('err.msg.generic.body'));
+ }
+ } else {
+ Ext.Msg.alert(Lada.getApplication().bundle.getMsg('err.msg.delete.title'),
+ Lada.getApplication().bundle.getMsg('err.msg.response.body'));
+ }
+ }
+ });
+ }
+ });
+ }
+});
diff -r b8502964f5c3 -r b2fcbdc4969d app/model/MmtMessprogramm.js
--- a/app/model/MmtMessprogramm.js Wed May 06 14:15:37 2015 +0200
+++ b/app/model/MmtMessprogramm.js Wed May 06 16:24:23 2015 +0200
@@ -16,11 +16,12 @@
fields: [{
name: 'id'
}, {
- name: 'mprId'
+ name: 'messprogrammId'
}, {
name: 'mmtId'
}, {
- name: 'messgroessen'
+ name: 'messgroessen',
+ defaultValue: []
}, {
name: 'letzteAenderung',
type: 'date',
diff -r b8502964f5c3 -r b2fcbdc4969d app/view/grid/Messmethoden.js
--- a/app/view/grid/Messmethoden.js Wed May 06 14:15:37 2015 +0200
+++ b/app/view/grid/Messmethoden.js Wed May 06 16:24:23 2015 +0200
@@ -52,6 +52,8 @@
this.plugins = [this.rowEditing];
+
+
this.dockedItems = [{
xtype: 'toolbar',
dock: 'bottom',
@@ -59,8 +61,7 @@
text: i18n.getMsg('add'),
icon: 'resources/img/list-add.png',
action: 'add',
- probeId: this.probeId,
- parentId: this.parentId
+ recordId: this.recordId,
}, {
text: i18n.getMsg('delete'),
icon: 'resources/img/list-remove.png',
@@ -69,19 +70,22 @@
}];
this.columns = [{
header: 'Messmethode',
- dataIndex: 'id',
+ dataIndex: 'mmtId',
flex: 1,
renderer: function(value) {
if (!value || value === '') {
return '';
}
- var store = Ext.data.StoreManager.get('messmethode');
- return store.findRecord('mprId', value, 0, false, false, true).get('messmethode');
+ var store = Ext.data.StoreManager.get('messmethoden');
+ if (!store) {
+ store = Ext.create('Lada.store.Messmethoden');
+ }
+ return value + " - " + store.findRecord('id', value, 0, false, false, true).get('messmethode');
},
editor: {
xtype: 'combobox',
- store: Ext.data.StoreManager.get('messmethode'),
- displayField: 'messmethode',
+ store: Ext.data.StoreManager.get('messmethoden'),
+ //displayField: 'mmtId',
valueField: 'id',
allowBlank: false,
editable: true,
@@ -90,13 +94,17 @@
queryMode: 'local',
minChars: 0,
typeAhead: false,
- triggerAction: 'all'
+ triggerAction: 'all',
+ tpl: Ext.create("Ext.XTemplate",
+ '<tpl for="."><div class="x-combo-list-item x-boundlist-item" >' +
+ '{id} - {messmethode}</div></tpl>'),
+ displayTpl: Ext.create('Ext.XTemplate',
+ '<tpl for=".">{id} - {messmethode}</tpl>'),
}
}];
this.initData();
this.callParent(arguments);
},
-
initData: function() {
if (this.store) {
this.store.removeAll();
@@ -106,11 +114,10 @@
}
this.store.load({
params: {
- mprId: this.recordId
+ messprogrammId: this.recordId
}
});
},
-
setReadOnly: function(b) {
if (b == true){
//Readonly
diff -r b8502964f5c3 -r b2fcbdc4969d app/view/window/MessprogrammCreate.js
--- a/app/view/window/MessprogrammCreate.js Wed May 06 14:15:37 2015 +0200
+++ b/app/view/window/MessprogrammCreate.js Wed May 06 16:24:23 2015 +0200
@@ -68,9 +68,11 @@
},
items: [{
xtype: 'messmethodengrid',
+ recordId: null,
flex: 1
}, {
xtype: 'messmethodengrid',
+ recordId: null,
flex: 1
}]
}]
@@ -79,7 +81,7 @@
},
initData: function() {
- var record = Ext.create('Lada.model.Messprogramm');
+ record = Ext.create('Lada.model.Messprogramm');
this.down('messprogrammform').setRecord(record);
},
diff -r b8502964f5c3 -r b2fcbdc4969d app/view/window/MessprogrammEdit.js
--- a/app/view/window/MessprogrammEdit.js Wed May 06 14:15:37 2015 +0200
+++ b/app/view/window/MessprogrammEdit.js Wed May 06 16:24:23 2015 +0200
@@ -75,9 +75,8 @@
},
items: [{
xtype: 'messmethodengrid',
- flex: 1
- }, {
- xtype: 'messmethodengrid',
+ //recordId: null,
+ recordId: this.record.get('id'),
flex: 1
}]
}]
@@ -100,16 +99,8 @@
success: function(record, response) {
this.down('messprogrammform').setRecord(record);
this.record = record;
- owner = this.record.get('owner');
- // If this would be A probe, it would be always
- // allowed to add Messungen:
- /*
- if (owner) {
- me.enableAddMessungen();
- }
- */
-
+ //this.down('messmethodengrid').recordId = record.get('id');
var json = Ext.decode(response.response.responseText);
if (json) {
this.setMessages(json.errors, json.warnings);
@@ -137,7 +128,7 @@
*/
disableChildren: function() {
- // thera are no children....
+ // there are no children....
},
enableChildren: function() {
More information about the Lada-commits
mailing list