[Lada-commits] [PATCH] Ortszuordnung: Search, new orte, display and validity check
Wald Commits
scm-commit at wald.intevation.org
Fri Jan 27 13:25:23 CET 2017
# HG changeset patch
# User Maximilian Krambach <mkrambach at intevation.de>
# Date 1485519914 -3600
# Node ID 08085b7d1d0b6281da79b8a5bd20149daf6afff2
# Parent e317ba349204f582b55d03ea275bf7283333e52e
Ortszuordnung: Search, new orte, display and validity check
diff -r e317ba349204 -r 08085b7d1d0b app/controller/form/Ortszuordnung.js
--- a/app/controller/form/Ortszuordnung.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/controller/form/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
@@ -27,7 +27,8 @@
click: this.discard
},
'ortszuordnungform': {
- dirtychange: this.dirtyForm
+ validitychange: this.validityChange,
+ dirtychange: this.validityChange
}
});
},
@@ -84,7 +85,9 @@
formPanel.getForm().loadRecord(formPanel.getForm().getRecord());
var json = response.request.scope.reader.jsonData;
if (json) {
- if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
+ if(Object.keys(json.errors).length > 0 ||
+ Object.keys(json.warnings).length > 0) {
+
formPanel.setMessages(json.errors, json.warnings);
}
@@ -118,65 +121,53 @@
}
catch (e) {
}
- //set undirty.
- formPanel.fireEvent('dirtychange', formPanel.getForm(), false);
},
/**
* When the button is Active, a Record can be selected.
* If the Record was selected from a grid this function
- * sets the ortzuordnung.
+ * sets the ortzuordnung.
* TODO: Check if the selected Record is a ORT
- * TODO: Enable picking from Maps
*/
- pickOrt: function(button, pressed, opts) {
+ chooseLocation: 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);
- }
- },
-
- chooseLocation: function(button, pressed, opts) {
var win = button.up('window');
var gridPanel = win.down('panel[name=ortgrid]');
+ var osg = win.down('ortstammdatengrid');
+ var oForm = button.up('form');
if (pressed) {
win.setHeight(Ext.getBody().getViewSize().height - 50);
+ button.setText(i18n.getMsg('ortszuordnung.form.setOrt.pressed'));
win.setY(25);
gridPanel.show();
+ osg.addListener('select',oForm.setOrt, oForm);
+
}
else {
var y = (Ext.getBody().getViewSize().height - 465) / 2
win.setHeight(465);
win.setY(y);
+ button.setText(i18n.getMsg('ortszuordnung.form.setOrt'));
gridPanel.hide();
+ osg.removeListener('select',oForm.setOrt, oForm);
}
},
-
/**
- * The dirtyForm function enables or disables the save and discard
+ * The validitychange 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
- * (the form is dirty).
*/
- dirtyForm: function(form, dirty) {
- if (dirty) {
- if (form.getValues().ortId !== ''
+ validityChange: function(form, valid) {
+ if (form.isDirty()) {
+ form.owner.down('button[action=discard]').setDisabled(false);
+ if ( valid && form.getValues().ortId !== ''
&& /[UEZA]/.test(form.getValues().ortszuordnungTyp)
- ) {
+ ) {
form.owner.down('button[action=save]').setDisabled(false);
+ } else {
+ form.owner.down('button[action=save]').setDisabled(true);
}
- form.owner.down('button[action=discard]').setDisabled(false);
- }
- else {
- form.owner.down('button[action=save]').setDisabled(true);
+ } else {
form.owner.down('button[action=discard]').setDisabled(true);
}
}
diff -r e317ba349204 -r 08085b7d1d0b app/controller/grid/Ortszuordnung.js
--- a/app/controller/grid/Ortszuordnung.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/controller/grid/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
@@ -14,7 +14,7 @@
requires: [
'Lada.view.window.Ortszuordnung',
- 'Lada.view.form.Ortserstellung',
+ 'Lada.view.window.Ortserstellung',
'Lada.view.window.OrtFilter'
],
@@ -134,26 +134,22 @@
/**
* Opens the form for a new Messpunkt
*/
- createort: function() {
- Ext.create('Lada.view.form.Ortserstellung').show();
+ createort: function(button) {
+ Ext.create('Lada.view.window.Ortserstellung',{
+ parentWindow: button.up('ortszuordnungwindow')
+ }).show();
},
/**
*
- * Opens the form for a new Messpunkt, with prefilled coordinates.
- * TODO Not functional yet
+ * Creates an event listener for a map click
*/
frommap: function(button) {
var map = button.up('ortszuordnungwindow').down('map');
- // map.getClick();
- //TODO: wait for click return
- Ext.create('Lada.view.form.Ortserstellung', {
- presets: {
- kda_id: 4,
- koord_x_extern: 35000000, //TODO dummy values
- koord_y_extern: 1000000
- }
- }).show();
+ var me = this;
+ map.map.events.register('click', button, me.newOrtfromMapClick);
+ // TODO visual feedback that map click is active.
+ // TODO Deactivate event listener if button is destroyed
},
/**
@@ -163,8 +159,29 @@
cloneort: function(button) {
var grid = button.up('ortszuordnungwindow').down('ortstammdatengrid').getView();
var selected = grid.getSelectionModel().getSelection()[0];
- Ext.create('Lada.view.form.Ortserstellung', {
- presets: selected.data
+ Ext.create('Lada.view.window.Ortserstellung', {
+ record: Ext.create('Lada.model.Ort', selected.data),
+ parentWindow: button.up('ortszuordnungwindow')
+ }).show();
+ },
+
+ /**
+ * Gets the clicked map's coordinates and opens a new Messpunkt window with coordinates prefilled
+ */
+ newOrtfromMapClick: function(evt) {
+ var me = this; //this = button(action:frommap)
+ var map = this.up('ortszuordnungwindow').down('map').map;
+ var lonlat = map.getLonLatFromViewPortPx(evt.xy).transform(new OpenLayers.Projection('EPSG:3857'),
+ new OpenLayers.Projection('EPSG:4326'));
+ var controller = Lada.app.getController('Lada.controller.grid.Ortszuordnung');
+ map.events.unregister('click', this, controller.newOrtfromMapClick);
+ Ext.create('Lada.view.window.Ortserstellung', {
+ record: Ext.create('Lada.model.Ort',{
+ koordXExtern: lonlat.lon,
+ koordYExtern: lonlat.lat,
+ kdaId : 4
+ }),
+ parentWindow: this.up('ortszuordnungwindow')
}).show();
},
@@ -239,20 +256,26 @@
var grid = this.searchField.up('panel').down('ortstammdatengrid');
grid.getSelectionModel().select(record);
grid.getView().focusRow(record);
- console.log(record);
},
selectedVerwaltungseinheit: function(grid, record) {
var win = grid.up('window');
win.hide();
this.searchField.reset();
- console.log(record);
+ Ext.create('Lada.view.window.Ortserstellung', {
+ record: Ext.create('Lada.model.Ort', record.data),
+ parentWindow: grid.up('ortszuordnungwindow')
+ }).show();
},
selectedStaat: function(grid, record) {
var win = grid.up('window');
+ console.log(grid.up('ortszuordnungwindow'));
win.hide();
+ Ext.create('Lada.view.window.Ortserstellung', {
+ record: Ext.create('Lada.model.Ort', record.data),
+ parentWindow: grid.up('ortszuordnungwindow')
+ }).show();
this.searchField.reset();
- console.log(record);
}
});
diff -r e317ba349204 -r 08085b7d1d0b app/view/form/OrtInfo.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/form/OrtInfo.js Fri Jan 27 13:25:14 2017 +0100
@@ -0,0 +1,76 @@
+/* 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.
+ */
+
+/**
+ * Form used to display the data of an Ort record.
+ */
+Ext.define('Lada.view.form.OrtInfo', {
+ extend: 'Ext.form.Panel',
+ alias: 'widget.ortinfo',
+ model: 'Lada.model.Ort',
+ border: 0,
+ flex: 1,
+ margin: '0, 10, 0, 0',
+ record: null,
+ initComponent: function() {
+ var i18n = Lada.getApplication().bundle;
+ this.items = [{
+ layout: 'vbox',
+ flex: 1,
+ border: 0,
+ items: [{
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.ortId'),
+ name: 'ortId'
+ },
+ {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.kurztext'),
+ name: 'kurztext'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.langtext'),
+ name: 'langtext'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('staat'),
+ name: 'staatISO'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.gemeinde'),
+ name: 'gemeinde'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.gemeindename'),
+ name: 'gemeinde'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.kda'),
+ name: 'kdaId'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.koordx'),
+ name: 'koordXExtern'
+ }, {
+ xtype: 'displayfield',
+ labelWidth: 125,
+ fieldLabel: i18n.getMsg('orte.koordy'),
+ name: 'koordYExtern'
+ }]
+ }];
+ this.callParent(arguments);
+ }
+});
\ No newline at end of file
diff -r e317ba349204 -r 08085b7d1d0b app/view/form/Ortserstellung.js
--- a/app/view/form/Ortserstellung.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/view/form/Ortserstellung.js Fri Jan 27 13:25:14 2017 +0100
@@ -8,7 +8,6 @@
/**
* Form to create a new Messpunkt
- * TODO: layout
*/
Ext.define('Lada.view.form.Ortserstellung', {
extend: 'Ext.form.Panel',
@@ -33,7 +32,7 @@
margin : '0, 5, 5, 5',
labelWidth: 80,
width: 150,
- value: Lada.netzbetreiber
+ value: Lada.netzbetreiber[0]
}, {
xtype: 'checkbox',
name: 'aktiv',
@@ -238,10 +237,8 @@
this_panel.record.set('id', null);
this_panel.record.set('ortId', null);
this_panel.record.set('netzbetreiberId', Lada.netzbetreiber[0]);
- console.log(this_panel.record);
this_panel.record.save({
success: function(record, response) {
- console.log(response);
var newOrtId;
Ext.Msg.show({
title: Lada.getApplication().bundle.getMsg('success'),
@@ -265,28 +262,24 @@
});
},
failure: function(record, response) {
- console.log(response);
- // TODO
-// response.error.status
-// response.error.statusText
-// var json = Ext.decode(response.response.responseText);
-// if (json) {
-// if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
-// console.log(json.errors);
-// console.log(json.warnings);
-// formPanel.setMessages(json.errors, json.warnings);
-// }
-// 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'));
+ // TODO check
+ var json = Ext.decode(response.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.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'));
+ }
}
});
}
diff -r e317ba349204 -r 08085b7d1d0b app/view/form/Ortszuordnung.js
--- a/app/view/form/Ortszuordnung.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/view/form/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
@@ -16,6 +16,7 @@
model: 'Lada.model.Ortszuordnung',
requires: [
+ 'Lada.view.form.OrtInfo',
'Lada.view.widget.Verwaltungseinheit',
'Lada.view.widget.Staat'
],
@@ -30,6 +31,7 @@
initComponent: function() {
var i18n = Lada.getApplication().bundle;
+ var me = this;
this.items = [{
xtype: 'fieldset',
title: i18n.getMsg('ortszuordnung.form.fset.title'),
@@ -75,7 +77,7 @@
items: [{
layout: 'vbox',
border: 0,
- margin: '0, 10, 0, 0',
+ margin: '0, 20, 0, 0',
items: [{
xtype: 'tfield',
labelWidth: 125,
@@ -87,82 +89,39 @@
labelWidth: 125,
maxLength: 1,
allowBlank: false,
- regex: /[UEZA]/,
+ regex: /[UEZA]{1}/,
activeError: 'U, E, Z oder A eingeben',
name: 'ortszuordnungTyp',
- fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp')
+ fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp'),
+
}, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.ortid'),
+ // this field is hidden because the user doesn't
+ // need to know the internal ortID
+ xtype: 'textfield',
+ // fieldLabel: i18n.getMsg('orte.ortid'),
+ allowBlank: false,
+ regex: /^[0-9]{1,45}$/,
submitValue: true,
- name: 'ortId'
+ hidden: true,
+ name: 'ortId',
+ listeners: {
+ change: me.changedOrt
+ }
}]
- }, {
- layout: 'vbox',
- flex: 1,
- margin: '0, 10, 0, 0',
- border: 0,
- items: [{
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.kurztext'),
- name: 'kurztext'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.langtext'),
- name: 'langtext'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('staat'),
- name: 'staatISO'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.gemeinde'),
- name: 'gemeinde'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.gemeindename'),
- name: 'gemeinde'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.kda'),
- name: 'kdaId'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.koordx'),
- name: 'koordXExtern'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.koordy'),
- name: 'koordYExtern'
- }]
- }]
+ },
+ Ext.create('Lada.view.form.OrtInfo', {
+ record: me.record
+ })
+ ]
}]
- //}, {
- // layout: 'vbox',
- // flex: 1,
- // margin: '0, 10, 0, 0',
- // border: 0,
- // items: [{
- // xtype: ''
- // }]
- }]
- }];
+ }]
+ }];
this.callParent(arguments);
},
setRecord: function(record) {
this.getForm().loadRecord(record);
-
- if (! record.get('readonly')) {
+ if (!record.get('readonly')) {
this.down('[action=setOrt]').enable();
this.setReadOnly(false);
}
@@ -183,8 +142,9 @@
var verw = verwStore.getById(ort.get('gemId'));
var staatStore = Ext.StoreManager.get('staaten');
var staat = staatStore.getById(ort.get('staatId'));
-
- this.getForm().setValues({
+ var ortinfo = this.down('ortinfo')
+ ortinfo.loadRecord(ort);
+ ortinfo.getForm().setValues({
gemeinde: verw.get('bezeichnung'),
staat: staat.get('staatIso'),
lon: ort.get('longitude'),
@@ -194,7 +154,7 @@
/**
* setOrt can be called from a CallbackFunction, ie select from a grid.
- * it will set the ortId of this record
+ * it will set the ortId of this record
*/
setOrt: function(row, selRecord, index, opts) {
var newOrtId = selRecord.get('id');
@@ -204,8 +164,6 @@
r.set('ortId', newOrtId);
this.getForm().setValues({ortId: newOrtId});
this.refreshOrt(newOrtId);
- //set dirty...
- this.fireEvent('dirtychange', this.getForm(), true);
}
}
},
@@ -240,7 +198,7 @@
for (var i = 0; i < content.length; i++) {
errorText += i18n.getMsg(content[i].toString()) + '\n';
}
- element.showErrors(errorText);
+ element.markInvalid(errorText);
}
}
},
@@ -252,6 +210,17 @@
setReadOnly: function(value) {
this.down('tfield[name=ortszusatztext]').setReadOnly(value);
this.down('textfield[name=ortszuordnungTyp]').setReadOnly(value);
+ },
+
+ /**
+ * Helper to trigger the forms' validity check on change of ortID
+ */
+ changedOrt: function() {
+ var controller = Lada.app.getController(
+ 'Lada.controller.form.Ortszuordnung');
+ var form = this.up('form').getForm();
+ controller.validityChange(form, form.isValid());
+
}
});
diff -r e317ba349204 -r 08085b7d1d0b app/view/panel/Map.js
--- a/app/view/panel/Map.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/view/panel/Map.js Fri Jan 27 13:25:14 2017 +0100
@@ -63,10 +63,10 @@
zoomMethod: null,
// initializing with view centered on germany
center: new OpenLayers.LonLat(1160000,6694000),
- zoom: 7
});
this.map.setOptions(this.mapOptions);
this.map.addLayers(this.layers);
+ this.map.zoomTo(6);
var keyControl = new OpenLayers.Control.KeyboardDefaults();
this.map.addControl(keyControl);
keyControl.activate();
diff -r e317ba349204 -r 08085b7d1d0b app/view/window/MessprogrammOrt.js
--- a/app/view/window/MessprogrammOrt.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/view/window/MessprogrammOrt.js Fri Jan 27 13:25:14 2017 +0100
@@ -9,25 +9,29 @@
/**
* Window to add a Ort to a Messprogramm
*/
+// TODO: This is >80% identical to Lada.view.form.Ortszuordnung.
+// Differences: This has no ortszuordnung record. It only receives and sends
+// an ortId
+
Ext.define('Lada.view.window.MessprogrammOrt', {
extend: 'Ext.window.Window',
alias: 'widget.messprogrammort',
requires: [
- 'Lada.model.Ort',
+ 'Lada.view.form.Ortserstellung',
'Lada.view.panel.Map',
- 'Lada.view.widget.Location',
- 'Lada.view.form.Location'
+ 'Lada.view.grid.Orte'
],
collapsible: true,
maximizable: true,
autoshow: true,
- layout: 'border',
+ layout: 'fit',
constrain: true,
parentWindow: null,
- record: null,
+
+ ortId: null,
/**
* This function initialises the Window
@@ -49,9 +53,6 @@
.ortWindow = null;
}
}];
- this.width = 900;
- this.height = 515;
- this.bodyStyle = {background: '#fff'};
// add listeners to change the window appearence when it becomes inactive
this.on({
@@ -68,120 +69,94 @@
});
this.items = [{
- region: 'west',
+ layout: 'border',
+ bodyStyle: {background: '#fff'},
border: 0,
- layout: 'vbox',
- items: [{
- xtype: 'fieldset',
- title: i18n.getMsg('ortId'),
- margin: 5,
- items: [{
- border: 0,
- margin: '0, 0, 10, 0',
- items: [{
- xtype: 'location',
- fieldLabel: i18n.getMsg('ortId'),
- labelWidth: 80,
- width: 280,
- forceSelection: true,
- name: 'ortId',
- listeners: {//Update MapPanel etc...
- select: this.updateDetails
- }
- }]
- }]
- }, {
- xtype: 'locationform',
- margin: 5,
- recordId: this.record.get('ortId')
- }]
- }, {
- 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.get('ortId') ? this.record : null,
- bodyStyle: {
- background: '#fff'
- },
- name: 'map',
- listeners: { //A listener which listens to the mappanels featureselected event
- featureselected: this.selectedFeature
- }
+ margin: '13, 5, 10, 5',
+ minHeight: 380,
+ externalOrteStore: true
+ }, {
+ xtype: 'panel',
+ layout: 'hbox',
+ border: 0,
+ margin: '0, 0, 10, 0',
+ dockedItems: [{
+ xtype: 'toolbar',
+ dock: 'bottom',
+ border: '0, 1, 1, 1',
+ style: {
+ borderBottom: '1px solid #b5b8c8 !important',
+ borderLeft: '1px solid #b5b8c8 !important',
+ borderRight: '1px solid #b5b8c8 !important'
+ },
+ items: [{
+ text: i18n.getMsg('ortszuordnung.form.setOrt'),
+ tooltip: i18n.getMsg('ortszuordnung.form.setOrt.qtip'),
+ icon: 'resources/img/dialog-ok-apply.png',
+ action: 'setOrt',
+ enableToggle: true,
+ disabled: true
+ }, '->', {
+ text: i18n.getMsg('save'),
+ tooltip: i18n.getMsg('save.qtip'),
+ icon: 'resources/img/dialog-ok-apply.png',
+ action: 'save',
+ disabled: true
+ }, {
+ text: i18n.getMsg('discard'),
+ tooltip: i18n.getMsg('discard.qtip'),
+ icon: 'resources/img/dialog-cancel.png',
+ action: 'discard',
+ disabled: true
+ }]
+ }],
+ items: [Ext.create('Lada.view.form.OrtInfo')]
+ }, {
+ region: 'south',
+ border: 0,
+ layout: 'fit',
+ name: 'ortgrid',
+ hidden: true,
+ maxHeight: 240,
+ items: [{
+ xtype: 'ortstammdatengrid'
+ }],
+ dockedItems: [{
+ xtype: 'toolbar',
+ dock: 'bottom',
+ border: '0, 1, 1, 1',
+ style: {
+ borderBottom: '1px solid #b5b8c8 !important',
+ borderLeft: '1px solid #b5b8c8 !important',
+ borderRight: '1px solid #b5b8c8 !important'
+ },
+ items: [{
+ xtype: 'textfield',
+ name: 'search',
+ labelWidth: 50,
+ enableKeyEvents: true,
+ fieldLabel: i18n.getMsg('ortszuordnung.ortsuche'),
+ }, '->', {
+ text: i18n.getMsg('orte.new'),
+ action: 'createort'
+ }, {
+ text: i18n.getMsg('orte.frommap'),
+ action: 'frommap'
+ }, {
+ text: i18n.getMsg('orte.clone'),
+ action: 'clone'
+ }]
+ }]
}]
}];
this.callParent(arguments);
+ //TODO: load the passed OrtId
},
- /**
- * Initialise the Data of this Window.
- */
- initData: function() {
- //Only do this if an OrtId exists...
- var ortId = this.record.get('ortId');
-
- if (ortId) {
- Ext.ClassManager.get('Lada.model.Ort').load(ortId, {
- failure: function(record, action) {
- // TODO
- },
- success: function(record, response) {
- var me = this;
- if (record.get('treeModified') < record.get('parentModified')) {
- Ext.Msg.show({
- title: 'Messprogramm nicht aktuell!',
- msg: 'Das zugehörige Messprogramm wurde verändert.\nMöchten Sie zu dem Messprogramm zurückkehren und neu laden?\nOhne das erneute Laden des Messprogrammes 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();
- me.parentWindow.down('messprogrammform')
- .ortWindow = null;
- }
- else {
- me.record.set('treeModified', me.probe.get('treeModified'));
- }
- }
- });
- }
- this.record = record;
- },
- 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.get('ortId')) {
- map.selectFeature(this.record.get('ortId'));
- }
- 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 &&
diff -r e317ba349204 -r 08085b7d1d0b app/view/window/Ortszuordnung.js
--- a/app/view/window/Ortszuordnung.js Thu Jan 26 17:33:56 2017 +0100
+++ b/app/view/window/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
@@ -16,7 +16,8 @@
requires: [
'Lada.view.form.Ortszuordnung',
'Lada.view.form.Ortserstellung',
- 'Lada.view.panel.Ort'
+ 'Lada.view.panel.Map',
+ 'Lada.view.grid.Orte'
],
collapsible: true,
@@ -26,6 +27,7 @@
constrain: true,
probe: null,
+
parentWindow: null,
record: null,
grid: null,
@@ -35,7 +37,6 @@
*/
initComponent: function() {
var i18n = Lada.getApplication().bundle;
-
this.title = i18n.getMsg('ortszuordnung.window.title');
if (this.record && this.probe) {
@@ -62,7 +63,6 @@
+ ' '
+ i18n.getMsg('create');
}
-
this.buttons = [{
text: i18n.getMsg('close'),
scope: this,
@@ -82,7 +82,6 @@
}
});
-
this.items = [{
layout: 'border',
bodyStyle: {background: '#fff'},
More information about the Lada-commits
mailing list