[bugfix,view-map][s]: 30m to track down and fix a bug whereby map view was ignoring config passed to it.

* setupGeometryFields was running (and overwriting) even if fields set in state passed in (which I don't think we want).
This commit is contained in:
Rufus Pollock
2012-04-21 23:47:52 +01:00
parent 92ec8d5b3e
commit 793fde4617
3 changed files with 20 additions and 7 deletions

View File

@@ -335,12 +335,16 @@ my.Map = Backbone.View.extend({
// If not found, the user can define them via the UI form.
_setupGeometryField: function(){
var geomField, latField, lonField;
this.state.set({
geomField: this._checkField(this.geometryFieldNames),
latField: this._checkField(this.latitudeFieldNames),
lonField: this._checkField(this.longitudeFieldNames)
});
this.geomReady = (this.state.get('geomField') || (this.state.get('latField') && this.state.get('lonField')));
// should not overwrite if we have already set this (e.g. explicitly via state)
if (!this.geomReady) {
this.state.set({
geomField: this._checkField(this.geometryFieldNames),
latField: this._checkField(this.latitudeFieldNames),
lonField: this._checkField(this.longitudeFieldNames)
});
this.geomReady = (this.state.get('geomField') || (this.state.get('latField') && this.state.get('lonField')));
}
},
// Private: Check if a field in the current model exists in the provided

View File

@@ -184,8 +184,8 @@ my.DataExplorer = Backbone.View.extend({
initialize: function(options) {
var self = this;
this.el = $(this.el);
// Hash of 'page' views (i.e. those for whole page) keyed by page name
this._setupState(options.state);
// Hash of 'page' views (i.e. those for whole page) keyed by page name
if (options.views) {
this.pageViews = options.views;
} else {