[Lada-commits] [PATCH] WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
Wald Commits
scm-commit at wald.intevation.org
Thu Feb 4 16:32:20 CET 2016
# HG changeset patch
# User Dustin Demuth <dustin at intevation.de>
# Date 1454599906 -3600
# Branch stammdatengrids
# Node ID 1df6b6210b428b5fe63b5ed7c1eea3a877dc570a
# Parent e9e974d31924d88e9f866311cdfee2b2d3ddb2c4
WIP First Version of a New Window/Panel combination to edit Ortszuordnungen and Orte
diff -r e9e974d31924 -r 1df6b6210b42 app.js
--- a/app.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app.js Thu Feb 04 16:31:46 2016 +0100
@@ -136,7 +136,8 @@
storeId: 'netzbetreiber'
});
Ext.create('Lada.store.Orte', {
- storeId: 'orte'
+ storeId: 'orte',
+ defaultPageSize: 0
});
Ext.create('Lada.store.Pflichtmessgroessen', {
storeId: 'pflichtmessgroessen'
diff -r e9e974d31924 -r 1df6b6210b42 app/controller/Filter.js
--- a/app/controller/Filter.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/controller/Filter.js Thu Feb 04 16:31:46 2016 +0100
@@ -128,7 +128,7 @@
resultGrid = Ext.create('Lada.view.grid.DatensatzErzeuger');
break;
case 'ort':
- resultGrid = Ext.create('Lada.view.grid.Orte');
+ resultGrid = Ext.create('Lada.view.panel.Ort');
break;
case 'probenehmer':
resultGrid = Ext.create('Lada.view.grid.Probenehmer');
diff -r e9e974d31924 -r 1df6b6210b42 app/controller/form/Ortszuordnung.js
--- a/app/controller/form/Ortszuordnung.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/controller/form/Ortszuordnung.js Thu Feb 04 16:31:46 2016 +0100
@@ -17,6 +17,9 @@
*/
init: function() {
this.control({
+ 'ortszuordnungform button[action=setOrt]': {
+ toggle: this.pickOrt
+ },
'ortszuordnungform button[action=save]': {
click: this.save
},
@@ -25,9 +28,6 @@
},
'ortszuordnungform': {
dirtychange: this.dirtyForm
- },
- 'ortszuordnungform combobox[name=ort]': {
- select: this.updateDetails
}
});
},
@@ -38,6 +38,17 @@
* on failure, it will display an Errormessage
*/
save: function(button) {
+
+ //try to disable ortPickerButton:
+ try {
+ var ob = this.up('form').down('ortszuordnungform button[action=setOrt]');
+ if (ob.pressed) {
+ ob.toggle(false);
+ }
+ }
+ catch (e) {
+ }
+
var formPanel = button.up('ortszuordnungform');
var data = formPanel.getForm().getFieldValues(true);
var i18n = Lada.getApplication().bundle;
@@ -58,7 +69,6 @@
formPanel.setRecord(record);
formPanel.setMessages(json.errors, json.warnings);
formPanel.up('window').grid.store.reload();
- debugger;
}
},
failure: function(record, response) {
@@ -98,6 +108,28 @@
},
/**
+ * When the button is Active, a Record can be selected.
+ * If the Record was selected from a grid this function
+ * sets the ortzuordnung.
+ * TODO: Check if the selected Record is a ORT
+ * TODO: Enable picking from Maps
+ */
+ pickOrt: function(button, pressed, opts) {
+ var i18n = Lada.getApplication().bundle;
+ var oForm = button.up('form');
+ var osg = button.up('window').down('ortstammdatengrid');
+ if (button.pressed) {
+ button.setText(i18n.getMsg('ortszuordnung.form.setOrt.pressed'));
+ osg.addListener('select',oForm.setOrt, oForm);
+ }
+ else {
+ button.setText(i18n.getMsg('ortszuordnung.form.setOrt'));
+ osg.removeListener('select',oForm.setOrt, oForm);
+ }
+ },
+
+
+ /**
* The dirtyForm function enables or disables the save and discard
* button which are present in the toolbar of the form.
* The Buttons are only active if the content of the form was altered
diff -r e9e974d31924 -r 1df6b6210b42 app/model/DatensatzErzeuger.js
--- a/app/model/DatensatzErzeuger.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/model/DatensatzErzeuger.js Thu Feb 04 16:31:46 2016 +0100
@@ -58,6 +58,7 @@
url: 'lada-server/rest/datensatzerzeuger',
reader: {
type: 'json',
+ totalProperty: 'totalCount',
root: 'data'
}
}
diff -r e9e974d31924 -r 1df6b6210b42 app/model/MessprogrammKategorie.js
--- a/app/model/MessprogrammKategorie.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/model/MessprogrammKategorie.js Thu Feb 04 16:31:46 2016 +0100
@@ -56,6 +56,7 @@
url: 'lada-server/rest/messprogrammkategorie',
reader: {
type: 'json',
+ totalProperty: 'totalCount',
root: 'data'
}
}
diff -r e9e974d31924 -r 1df6b6210b42 app/model/Ort.js
--- a/app/model/Ort.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/model/Ort.js Thu Feb 04 16:31:46 2016 +0100
@@ -82,6 +82,7 @@
url: 'lada-server/rest/ort',
reader: {
type: 'json',
+ totalProperty: 'totalCount',
root: 'data'
}
}
diff -r e9e974d31924 -r 1df6b6210b42 app/model/Probenehmer.js
--- a/app/model/Probenehmer.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/model/Probenehmer.js Thu Feb 04 16:31:46 2016 +0100
@@ -74,6 +74,7 @@
url: 'lada-server/rest/probenehmer',
reader: {
type: 'json',
+ totalProperty: 'totalCount',
root: 'data'
}
}
diff -r e9e974d31924 -r 1df6b6210b42 app/view/form/Ortszuordnung.js
--- a/app/view/form/Ortszuordnung.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/form/Ortszuordnung.js Thu Feb 04 16:31:46 2016 +0100
@@ -14,20 +14,28 @@
alias: 'widget.ortszuordnungform',
model: 'Lada.model.Ortszuordnung',
- width: '100%',
+
+ requires: [
+ 'Lada.view.widget.Verwaltungseinheit',
+ 'Lada.view.widget.Staat'
+ ],
+
+ layout: 'fit',
margin: 5,
border: 0,
record: null,
- trackResetOnLoad: true,
+ //trackResetOnLoad: true,
initComponent: function() {
var i18n = Lada.getApplication().bundle;
this.items = [{
xtype: 'fieldset',
title: i18n.getMsg('ortszuordnung.form.fset.title'),
+ layout: 'fit',
items: [{
+ layout: 'hbox',
border: 0,
margin: '0, 0, 10, 0',
dockedItems: [{
@@ -39,7 +47,14 @@
borderLeft: '1px solid #b5b8c8 !important',
borderRight: '1px solid #b5b8c8 !important'
},
- items: ['->', {
+ items: [{
+ text: i18n.getMsg('ortszuordnung.form.setOrt'),
+ qtip: i18n.getMsg('ortszuordnung.form.setOrt.qtip'),
+ icon: 'resources/img/dialog-ok-apply.png',
+ action: 'setOrt',
+ enableToggle: true,
+ disabled: true
+ }, '->', {
text: i18n.getMsg('save'),
qtip: i18n.getMsg('save.qtip'),
icon: 'resources/img/dialog-ok-apply.png',
@@ -54,25 +69,39 @@
}]
}],
items: [{
- xtype: 'container',
- layout: {
- type: 'hbox'
- },
- flex: 1,
+ layout: 'vbox',
+ border: 0,
items: [{
xtype: 'tfield',
maxLength: 100,
name: 'ortszusatztext',
fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszusatztext'),
- width: 280,
- labelWidth: 80
}, {
xtype: 'tfield',
maxLength: 100,
name: 'ortszuordnungTyp',
fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp'),
- width: 280,
- labelWidth: 80
+ }, {
+ xtype: 'textfield',
+ readOnly: true,
+ hidden: true,
+ name: 'ortId'
+ }]
+ }, {
+ layout: 'vbox',
+ border: 0,
+ items: [{
+ xtype: 'displayfield',
+ fieldLabel: i18n.getMsg('orte.gemId'),
+ name: 'gemId'
+ }, {
+ xtype: 'displayfield',
+ fieldLabel: i18n.getMsg('Gemeinde'),
+ name: 'gemeinde'
+ }, {
+ xtype: 'displayfield',
+ fieldLabel: i18n.getMsg('staat'),
+ name: 'staat'
}]
}]
}]
@@ -82,6 +111,52 @@
setRecord: function(record) {
this.getForm().loadRecord(record);
+
+ if (! record.get('readonly')) {
+ this.down('[action=setOrt]').enable();
+ this.setReadOnly(false);
+ }
+ else {
+ this.setReadOnly(true);
+ }
+ this.refreshOrt();
+ },
+
+ refreshOrt: function() {
+ var ortId = this.getRecord().get('ortId');
+
+ var orteStore = Ext.StoreManager.get('orte');
+ var ort = orteStore.getById(ortId);
+ var verwStore = Ext.StoreManager.get('verwaltungseinheiten');
+ var verw = verwStore.getById(ort.get('gemId'));
+ var staatStore = Ext.StoreManager.get('staaten');
+ var staat = staatStore.getById(ort.get('staatId'));
+
+ this.getForm().setValues({
+ gemId: ort.get('gemId'),
+ gemeinde: verw.get('bezeichnung'),
+ staat: staat.get('staatIso')
+ });
+ },
+
+ /**
+ * setOrt can be called from a CallbackFunction, ie select from a grid.
+ * it will set the ortId of this record
+ */
+ setOrt: function(row, selRecord, index, opts) {
+
+ console.log('setOrt' + Date.now());
+ var newOrtId = selRecord.get('id');
+ var r = this.getRecord();
+ if (newOrtId) {
+ if (newOrtId != r.get('ortId')) {
+ this.getForm().setValues({ ortId: newOrtId});
+ this.refreshOrt();
+ //set dirty...
+ //this.fireEvent('dirtychange', this.getForm(), true);
+ }
+ }
+ console.log('setOrtEnd' + Date.now());
},
setMessages: function(errors, warnings) {
diff -r e9e974d31924 -r 1df6b6210b42 app/view/grid/MessprogrammeList.js
--- a/app/view/grid/MessprogrammeList.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/grid/MessprogrammeList.js Thu Feb 04 16:31:46 2016 +0100
@@ -24,7 +24,6 @@
dock: 'top',
items: [{
xtype: 'tbtext',
- id: 'tbtitle',
text: i18n.getMsg('messprogramme.gridTitle')
},
'->',
diff -r e9e974d31924 -r 1df6b6210b42 app/view/grid/Orte.js
--- a/app/view/grid/Orte.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/grid/Orte.js Thu Feb 04 16:31:46 2016 +0100
@@ -31,27 +31,6 @@
var i18n = Lada.getApplication().bundle;
this.emptyText = i18n.getMsg('orte.emptyGrid');
- this.dockedItems = [{
- xtype: 'toolbar',
- dock: 'top',
- items: [{
- xtype: 'tbtext',
- id: 'tbtitle',
- text: i18n.getMsg('orte.gridTitle')
- },
- '->',
- {
- text: i18n.getMsg('orte.button.add'),
- icon: 'resources/img/list-add.png',
- action: 'add',
- disabled: true // disabled on startup, will be enabled by setStore
- }, {
- text: i18n.getMsg('orte.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('orte.ortId'),
dataIndex: 'ortId'
@@ -144,16 +123,21 @@
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
- }]);
+
+ var ptbar = this.down('pagingtoolbar');
+ if (ptbar) {
+ this.removeDocked(ptbar);
+ }
+
+ if (store.pageSize > 0) {
+ this.addDocked([{
+ xtype: 'pagingtoolbar',
+ dock: 'bottom',
+ store: store,
+ displayInfo: true
+ }]);
+ }
}
}
});
diff -r e9e974d31924 -r 1df6b6210b42 app/view/grid/Ortszuordnung.js
--- a/app/view/grid/Ortszuordnung.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/grid/Ortszuordnung.js Thu Feb 04 16:31:46 2016 +0100
@@ -48,14 +48,14 @@
this.columns = [{
header: 'Typ',
dataIndex: 'ortszuordnungTyp',
- width: 50,
+ flex: 1,
editor: {
allowBlank: false
}
}, {
header: 'Staat',
dataIndex: 'ortId',
- width: 70,
+ flex: 1,
renderer: function(value) {
var store = Ext.data.StoreManager.get('orte');
var staaten = Ext.data.StoreManager.get('staaten');
@@ -66,7 +66,7 @@
}, {
header: 'Gemeindeschlüssel',
dataIndex: 'ortId',
- width: 120,
+ flex: 3,
renderer: function(value) {
var store = Ext.data.StoreManager.get('orte');
var record = store.getById(value);
@@ -75,7 +75,7 @@
}, {
header: 'Gemeindename',
dataIndex: 'ortId',
- flex: 1,
+ flex: 4,
renderer: function(value) {
var store = Ext.data.StoreManager.get('orte');
var gemeinden =
@@ -87,6 +87,7 @@
}
}, {
header: 'Ortszusatztext',
+ flex: 6,
dataIndex: 'ortszusatztext'
}];
this.listeners = {
diff -r e9e974d31924 -r 1df6b6210b42 app/view/grid/ProbeList.js
--- a/app/view/grid/ProbeList.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/grid/ProbeList.js Thu Feb 04 16:31:46 2016 +0100
@@ -24,7 +24,6 @@
dock: 'top',
items: [{
xtype: 'tbtext',
- id: 'tbtitle',
text: i18n.getMsg('probe.gridTitle')
},
'->',
diff -r e9e974d31924 -r 1df6b6210b42 app/view/panel/Map.js
--- a/app/view/panel/Map.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/panel/Map.js Thu Feb 04 16:31:46 2016 +0100
@@ -14,9 +14,15 @@
Ext.define('Lada.view.panel.Map', {
extend: 'Ext.panel.Panel',
alias: 'widget.map',
+ name: 'map',
record: null,
locationRecord: null,
+ externalOrteStore: false,
+ /*
+ * if externalOrteStore is true, the mappanel will not load the orte
+ * store on it's own; it expects an already loaded store instead
+ */
/**
* @cfg
@@ -62,7 +68,6 @@
keyControl.activate();
this.bodyStyle = {background: '#fff'};
this.initData();
- this.tbar = Ext.create('Lada.view.widget.MapToolbar');
this.addEvents('featureselected');
this.callParent(arguments);
},
@@ -73,54 +78,11 @@
*/
initData: function() {
var me = this;
- this.locationFeatures = [];
- this.locationStore = Ext.data.StoreManager.get('locations');
- for (var i = 0; i < this.locationStore.count(); i++) {
- this.locationFeatures.push(new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Point(
- this.locationStore.getAt(i).get('longitude'),
- this.locationStore.getAt(i).get('latitude')
- ),
- {
- id: this.locationStore.getAt(i).get('id'),
- bez: this.locationStore.getAt(i).get('bezeichnung')
- }
- ));
+
+ if (!this.externalOrteStore) {
+ this.locationStore = Ext.data.StoreManager.get('orte');
+ this.addLocations(locationStore);
}
- this.featureLayer = new OpenLayers.Layer.Vector('vector_' + this.map.name, {
- styleMap: new OpenLayers.StyleMap({
- 'default': new OpenLayers.Style(OpenLayers.Util.applyDefaults({
- externalGraphic: 'resources/lib/OpenLayers/img/marker-green.png',
- graphicOpacity: 1,
- pointRadius: 10,
- label: '${bez}',
- labelAlign: 'rt',
- fontColor: 'green',
- fontWeight: 'bold'
- }, OpenLayers.Feature.Vector.style['default'])),
- 'select': new OpenLayers.Style({
- externalGraphic: 'resources/lib/OpenLayers/img/marker-blue.png',
- pointRadius: 15,
- label: '${bez}',
- labelAlign: 'rt',
- fontColor: 'blue',
- fontWeight: 'bold'
- })
- })
- });
- this.featureLayer.addFeatures(this.locationFeatures);
- this.map.addLayer(this.featureLayer);
-
- this.selectControl = new OpenLayers.Control.SelectFeature(this.featureLayer, {
- clickout: false,
- toggle: false,
- multiple: false,
- hover: false,
- onSelect: me.selectedFeature,
- scope: me
- });
- this.map.addControl(this.selectControl);
- this.selectControl.activate();
},
selectFeature: function(id) {
@@ -151,6 +113,61 @@
this.selectControl.select(features.feature);
},
+ addLocations: function(locationStore) {
+ locationFeatures = [];
+
+ // Iterate the Store and create features from it
+ for (var i = 0; i < locationStore.count(); i++) {
+ locationFeatures.push(new OpenLayers.Feature.Vector(
+ new OpenLayers.Geometry.Point(
+ locationStore.getAt(i).get('longitude'),
+ locationStore.getAt(i).get('latitude')
+ ),
+ {
+ id: locationStore.getAt(i).get('id'),
+ bez:locationStore.getAt(i).get('kurztext')
+ }
+ ));
+ }
+
+ // Create a new Feature Layer and add it to the map
+ this.featureLayer = new OpenLayers.Layer.Vector('vector_' + this.map.name, {
+ styleMap: new OpenLayers.StyleMap({
+ 'default': new OpenLayers.Style(OpenLayers.Util.applyDefaults({
+ externalGraphic: 'resources/lib/OpenLayers/img/marker-green.png',
+ graphicOpacity: 1,
+ pointRadius: 10,
+ label: '${bez}',
+ labelAlign: 'rt',
+ fontColor: 'green',
+ fontWeight: 'bold'
+ }, OpenLayers.Feature.Vector.style['default'])),
+ 'select': new OpenLayers.Style({
+ externalGraphic: 'resources/lib/OpenLayers/img/marker-blue.png',
+ pointRadius: 15,
+ label: '${bez}',
+ labelAlign: 'rt',
+ fontColor: 'blue',
+ fontWeight: 'bold'
+ })
+ })
+ });
+ this.featureLayer.addFeatures(locationFeatures);
+ this.map.addLayer(this.featureLayer);
+
+ this.selectControl = new OpenLayers.Control.SelectFeature(this.featureLayer, {
+ clickout: false,
+ toggle: false,
+ multiple: false,
+ hover: false,
+ onSelect: me.selectedFeature,
+ scope: me
+ });
+ this.map.addControl(this.selectControl);
+ this.selectControl.activate();
+ },
+
+
/**
* @private
* Override to display and update the map view in the panel.
diff -r e9e974d31924 -r 1df6b6210b42 app/view/panel/Ort.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/panel/Ort.js Thu Feb 04 16:31:46 2016 +0100
@@ -0,0 +1,128 @@
+Ext.define('Lada.view.panel.Ort', {
+ extend: 'Ext.panel.Panel',
+ alias: 'widget.ortpanel',
+
+ requires: [
+ 'Lada.view.panel.Map',
+ 'Lada.view.grid.Orte'
+ ],
+
+ width: '100%',
+ //height: 200,
+
+ layout: {
+ type: 'border',
+ },
+ toolbarPos: 'top',
+
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+
+ // Different Layout of toolbar depending on the bars position.
+ if (this.toolbarPos == 'top') {
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'top',
+ items: [{
+ xtype: 'tbtext',
+ text: i18n.getMsg('orte.gridTitle')
+ },
+ '->',
+ {
+ text: i18n.getMsg('map.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'addMap',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('orte.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('orte.button.delete'),
+ icon: 'resources/img/list-remove.png',
+ action: 'delete',
+ disabled: true // disabled on startup, will be enabled by controller if necessary
+ }]
+ }];
+ }
+ else {
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: this.toolbarPos,
+ items: [ '->',
+ {
+ text: i18n.getMsg('map.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'addMap',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }, {
+ text: i18n.getMsg('orte.button.add'),
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ disabled: true // disabled on startup, will be enabled by setStore
+ }]
+ }];
+ }
+
+ this.items = [{
+ xtype: 'ortstammdatengrid',
+ width: '60%',
+ collapsible: true,
+ region: 'east',
+ }, {
+ xtype: 'map',
+ region: 'center',
+ layout: 'border',
+ title: i18n.getMsg('map.title'),
+ externalOrteStore: true,
+ listeners: {
+ beforecollapse: function() {
+ var c = this.map.getControlsByClass('OpenLayers.Control.ScaleLine');
+ this.map.removeControl(c[0]);
+ },
+ expand: function() {
+ this.map.addControl(new OpenLayers.Control.ScaleLine());
+ }
+ }
+ }],
+
+ this.callParent(arguments);
+ },
+
+ setStore: function(store) {
+ var me = this;
+ var osg = this.down('ortstammdatengrid');
+ var map = this.down('map');
+
+ if (!store) {
+ var ortstore = Ext.create('Lada.store.Orte', {
+ defaultPageSize: 0,
+ listeners: {
+ beforeload: {
+ fn: function() {
+ osg.setLoading(true);
+ map.setLoading(true);
+ }
+ },
+ load: {
+ fn: function() {
+ osg.setLoading(false);
+ map.setLoading(false);
+ osg.setStore(ortstore);
+ map.addLocations(ortstore);
+
+ }
+ }
+ }
+ });
+ }
+ else {
+ osg.setStore(store);
+ map.addLocations(store);
+ }
+ //enable buttons
+ me.down('toolbar button[action=add]').enable();
+ me.down('toolbar button[action=addMap]').enable();
+ }
+});
diff -r e9e974d31924 -r 1df6b6210b42 app/view/widget/DynamicGrid.js
--- a/app/view/widget/DynamicGrid.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/widget/DynamicGrid.js Thu Feb 04 16:31:46 2016 +0100
@@ -35,11 +35,14 @@
setStore: function(store){
var i18n = Lada.getApplication().bundle;
- this.removeDocked(Ext.getCmp('ptbar'), true);
this.reconfigure(store);
+ var ptbar = this.down('pagingtoolbar');
+ if (ptbar) {
+ this.removeDocked(ptbar);
+ }
+
this.addDocked([{
xtype: 'pagingtoolbar',
- id: 'ptbar',
dock: 'bottom',
store: store,
displayInfo: true
diff -r e9e974d31924 -r 1df6b6210b42 app/view/window/OrtCreate.js
--- a/app/view/window/OrtCreate.js Fri Jan 29 14:51:17 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +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.
- */
-
-/**
- * Window to create a Ort
- */
-Ext.define('Lada.view.window.OrtCreate', {
- extend: 'Ext.window.Window',
- alias: 'widget.ortcreate',
-
- requires: [
- 'Lada.view.panel.Map',
- 'Lada.view.form.Ort',
- 'Lada.view.form.Location'
- ],
-
- collapsible: true,
- maximizable: true,
- autoshow: true,
- layout: 'border',
- constrain: true,
-
- record: null,
- grid: null,
-
- /**
- * This function initialises the Window
- */
- initComponent: function() {
- this.title = 'Ort';
- this.buttons = [{
- text: 'Schließen',
- scope: this,
- handler: this.close
- }];
- this.width = 900;
- this.height = 515;
- this.bodyStyle = {background: '#fff'};
-
- // add listeners to change the window appearence when it becomes inactive
- this.on({
- activate: function(){
- this.getEl().removeCls('window-inactive');
- },
- deactivate: function(){
- this.getEl().addCls('window-inactive');
- }
- });
-
- this.items = [{
- region: 'west',
- border: 0,
- layout: 'vbox',
- items: [{
- xtype: 'ortform',
- margin: 5
- }, {
- xtype: 'locationform',
- margin: 5
- }]
- }, {
- xtype: 'fset',
- bodyStyle: {
- background: '#fff'
- },
- layout: 'border',
- name: 'mapfield',
- title: 'Karte',
- region: 'center',
- padding: '5, 5',
- margin: 5,
- items: [{
- xtype: 'map',
- region: 'center',
- layout: 'border',
- bodyStyle: {
- background: '#fff'
- },
- name: 'map',
- listeners: { //A listener which listens to the mappanels featureselected event
- featureselected: this.selectedFeature
- }
- }]
- }];
- this.callParent(arguments);
- },
-
- /**
- * Initialise the Data of this Window
- */
- initData: function() {
- var ort = Ext.create('Lada.model.Ort', {
- probeId: this.record.get('id')
- });
- this.down('ortform').setRecord(ort);
- },
-
- /**
- * @private
- * Override to display and update the map view in the panel.
- */
- afterRender: function(){
- this.superclass.afterRender.apply(this, arguments);
- var map = this.down('map');
- map.map.zoomToMaxExtent();
- },
-
- /**
- * This function is used by the MapPanel, when a Feature was selected
- */
- selectedFeature: function(context, args) {
- var feature = args[0];
- if (feature.attributes.id &&
- feature.attributes.id !== '') {
- var record = Ext.data.StoreManager.get('locations').getById(feature.attributes.id);
- context.up('window').down('locationform').setRecord(record);
- context.up('window').down('locationform').setReadOnly(true);
- context.up('window').down('ortform').down('combobox').setValue(record.id);
- }
- else {
- context.up('window').down('locationform').setRecord(this.locationRecord);
- context.up('window').down('locationform').setReadOnly(false);
- }
- },
-
- /**
- * Instructs the fields / forms listed in this method to set a message.
- * @param errors These Errors shall be shown
- * @param warnings These Warning shall be shown
- */
- setMessages: function(errors, warnings) {
- //todo this is a stub
- },
-
- /**
- * Instructs the fields / forms listed in this method to clear their messages.
- */
- clearMessages: function() {
- //todo this is a stub
- }
-});
diff -r e9e974d31924 -r 1df6b6210b42 app/view/window/OrtEdit.js
--- a/app/view/window/OrtEdit.js Fri Jan 29 14:51:17 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +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.
- */
-
-/**
- * Window to edit a Ort
- */
-Ext.define('Lada.view.window.OrtEdit', {
- extend: 'Ext.window.Window',
- alias: 'widget.ortedit',
-
- requires: [
- 'Lada.view.panel.Map',
- 'Lada.view.form.Ort',
- 'Lada.view.form.Location'
- ],
-
- collapsible: true,
- maximizable: true,
- autoshow: true,
- layout: 'border',
- constrain: true,
-
- parentWindow: null,
- probe: null,
- record: null,
- grid: null,
-
- /**
- * This function initialises the Window
- */
- initComponent: function() {
- if (this.record === null) {
- Ext.Msg.alert('Kein valider Ort ausgewählt!');
- this.callParent(arguments);
- return;
- }
- if (this.probe === null) {
- Ext.Msg.alert('Zu dem Ort existiert keine Probe!');
- this.callParent(arguments);
- return;
- }
- this.title = 'Ort';
- this.buttons = [{
- text: 'Schließen',
- scope: this,
- handler: this.close
- }];
- this.width = 900;
- this.height = 515;
- this.bodyStyle = {background: '#fff'};
-
- // add listeners to change the window appearence when it becomes inactive
- this.on({
- activate: function(){
- this.getEl().removeCls('window-inactive');
- },
- deactivate: function(){
- this.getEl().addCls('window-inactive');
- }
- });
-
- this.items = [{
- region: 'west',
- border: 0,
- layout: 'vbox',
- items: [{
- xtype: 'ortform',
- margin: 5,
- recordId: this.record.get('id')
- }, {
- xtype: 'locationform',
- margin: 5,
- recordId: this.record.get('id')
- }]
- }, {
- xtype: 'fset',
- bodyStyle: {
- background: '#fff'
- },
- layout: 'border',
- name: 'mapfield',
- title: 'Karte',
- region: 'center',
- padding: '5, 5',
- margin: 5,
- items: [{
- xtype: 'map',
- region: 'center',
- layout: 'border',
- record: this.record,
- bodyStyle: {
- background: '#fff'
- },
- name: 'map',
- listeners: { //A listener which listens to the mappanels featureselected event
- featureselected: this.selectedFeature
- }
- }]
- }];
- this.callParent(arguments);
- },
-
- /**
- * Initialise the Data of this Window
- */
- initData: function() {
- Ext.ClassManager.get('Lada.model.Ort').load(this.record.get('id'), {
- failure: function(record, action) {
- // TODO
- },
- success: function(record, response) {
- var me = this;
- if (record.get('treeModified') < record.get('parentModified')) {
- Ext.Msg.show({
- title: 'Probe nicht aktuell!',
- msg: 'Die zugehörige Probe wurde verändert.\nMöchten Sie zu der Probe zurückkehren und neu laden?\nOhne das erneute Laden der Probe wird das Speichern des Ortes nicht möglich sein.',
- buttons: Ext.Msg.OKCANCEL,
- icon: Ext.Msg.WARNING,
- closable: false,
- fn: function(button) {
- if (button === 'ok') {
- me.close();
- me.parentWindow.initData();
- }
- else {
- me.record.set('treeModified', me.probe.get('treeModified'));
- }
- }
- });
- }
- this.down('ortform').setRecord(record);
- if (this.probe.get('readonly')) {
- this.down('ortform').setReadOnly(true);
- }
- this.record = record;
- },
- scope: this
- });
- Ext.ClassManager.get('Lada.model.Location').load(this.record.get('ort'), {
- failure: function(record, action) {
- // TODO
- },
- success: function(record, response) {
- this.down('locationform').setRecord(record);
- this.down('locationform').setReadOnly(true);
- },
- scope: this
- });
- },
-
- /**
- * @private
- * Override to display and update the map view in the panel.
- */
- afterRender: function(){
- this.superclass.afterRender.apply(this, arguments);
- var map = this.down('map');
- if (this.record) {
- map.selectFeature(this.record.get('ort'));
- }
- else {
- map.map.zoomToMaxExtent();
- }
- },
-
- /**
- * This function is used by the MapPanel, when a Feature was selected
- */
- selectedFeature: function(context, args) {
- var feature = args[0];
- if (feature.attributes.id &&
- feature.attributes.id !== '') {
- var record = Ext.data.StoreManager.get('locations').getById(feature.attributes.id);
- context.up('window').down('locationform').setRecord(record);
- context.up('window').down('locationform').setReadOnly(true);
- context.up('window').down('ortform').down('combobox').setValue(record.id);
- }
- else {
- context.up('window').down('locationform').setRecord(this.locationRecord);
- context.up('window').down('locationform').setReadOnly(false);
- }
- },
-
- /**
- * Instructs the fields / forms listed in this method to set a message.
- * @param errors These Errors shall be shown
- * @param warnings These Warning shall be shown
- */
- setMessages: function(errors, warnings) {
- //todo this is a stub
- },
-
- /**
- * Instructs the fields / forms listed in this method to clear their messages.
- */
- clearMessages: function() {
- //todo this is a stub
- }
-});
diff -r e9e974d31924 -r 1df6b6210b42 app/view/window/Ortszuordnung.js
--- a/app/view/window/Ortszuordnung.js Fri Jan 29 14:51:17 2016 +0100
+++ b/app/view/window/Ortszuordnung.js Thu Feb 04 16:31:46 2016 +0100
@@ -14,13 +14,14 @@
alias: 'widget.ortszuordnungwindow',
requires: [
- 'Lada.view.form.Ortszuordnung'
+ 'Lada.view.form.Ortszuordnung',
+ 'Lada.view.panel.Ort'
],
collapsible: true,
maximizable: true,
autoshow: true,
- layout: 'border',
+ layout: 'vbox',
constrain: true,
probe: null,
@@ -37,14 +38,14 @@
this.title = i18n.getMsg('ortszuordnung.window.title');
if (this.record && this.probe) {
- // A new record will be created
+ // A record be edited
this.title = i18n.getMsg('ortszuordnung.window.title')
+ ' '
+ i18n.getMsg('ortszuordnung.window.title2')
+ ' '
+ i18n.getMsg('probe')
+ ' '
- + probe.get('hauptprobennr')
+ + this.probe.get('hauptprobennr')
+ ' '
+ i18n.getMsg('edit');
}
@@ -56,7 +57,7 @@
+ ' '
+ i18n.getMsg('probe')
+ ' '
- + probe.get('hauptprobennr')
+ + this.probe.get('hauptprobennr')
+ ' '
+ i18n.getMsg('create');
}
@@ -81,16 +82,14 @@
});
this.items = [{
- region: 'west',
- border: 0,
- layout: 'hbox',
- items: [{
- xtype: 'ortszuordnungform',
- margin: 5
- //}, {
- // xtype: 'ortpanel',
- // margin: 5
- }]
+ xtype: 'ortszuordnungform',
+ layout: 'fit',
+ margin: 5
+ }, {
+ xtype: 'ortpanel',
+ flex: 1,
+ toolbarPos: 'bottom',
+ margin: 5
}];
this.callParent(arguments);
},
@@ -100,6 +99,17 @@
*/
initData: function() {
this.down('ortszuordnungform').setRecord(this.record);
+ this.down('ortpanel').setStore();
+ },
+
+ /**
+ * @private
+ * Override to display and update the map view in the panel.
+ */
+ afterRender: function(){
+ this.superclass.afterRender.apply(this, arguments);
+ var map = this.down('ortpanel').down('map');
+ map.map.zoomToMaxExtent();
},
/**
diff -r e9e974d31924 -r 1df6b6210b42 index.html
--- a/index.html Fri Jan 29 14:51:17 2016 +0100
+++ b/index.html Thu Feb 04 16:31:46 2016 +0100
@@ -20,7 +20,7 @@
<script type="text/javascript" src="resources/lib/Blob/Blob.js"></script>
<!-- <x-compile> -->
<!-- <x-bootstrap> -->
- <script type="text/javascript" src="extjs/ext-all.js"></script>
+ <script type="text/javascript" src="extjs/ext-all-dev.js"></script>
<script type="text/javascript" src="extjs/locale/ext-lang-de.js"></script>
<!-- </x-bootstrap> -->
<script type="text/javascript" src="app.js"></script>
More information about the Lada-commits
mailing list