[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:
@@ -335,12 +335,16 @@ my.Map = Backbone.View.extend({
|
|||||||
// If not found, the user can define them via the UI form.
|
// If not found, the user can define them via the UI form.
|
||||||
_setupGeometryField: function(){
|
_setupGeometryField: function(){
|
||||||
var geomField, latField, lonField;
|
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')));
|
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
|
// Private: Check if a field in the current model exists in the provided
|
||||||
|
|||||||
@@ -184,8 +184,8 @@ my.DataExplorer = Backbone.View.extend({
|
|||||||
initialize: function(options) {
|
initialize: function(options) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.el = $(this.el);
|
this.el = $(this.el);
|
||||||
// Hash of 'page' views (i.e. those for whole page) keyed by page name
|
|
||||||
this._setupState(options.state);
|
this._setupState(options.state);
|
||||||
|
// Hash of 'page' views (i.e. those for whole page) keyed by page name
|
||||||
if (options.views) {
|
if (options.views) {
|
||||||
this.pageViews = options.views;
|
this.pageViews = options.views;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -47,17 +47,26 @@ test('initialize state', function () {
|
|||||||
currentView: 'graph',
|
currentView: 'graph',
|
||||||
'view-grid': {
|
'view-grid': {
|
||||||
hiddenFields: ['x']
|
hiddenFields: ['x']
|
||||||
|
},
|
||||||
|
'view-map': {
|
||||||
|
latField: 'lat1',
|
||||||
|
lonField: 'lon1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ok(explorer.state.get('readOnly'));
|
ok(explorer.state.get('readOnly'));
|
||||||
ok(explorer.state.get('currentView'), 'graph');
|
ok(explorer.state.get('currentView'), 'graph');
|
||||||
|
|
||||||
// check the correct view is visible
|
// check the correct view is visible
|
||||||
var css = explorer.el.find('.navigation a[data-view="graph"]').attr('class').split(' ');
|
var css = explorer.el.find('.navigation a[data-view="graph"]').attr('class').split(' ');
|
||||||
ok(_.contains(css, 'disabled'), css);
|
ok(_.contains(css, 'disabled'), css);
|
||||||
|
|
||||||
var css = explorer.el.find('.navigation a[data-view="grid"]').attr('class').split(' ');
|
var css = explorer.el.find('.navigation a[data-view="grid"]').attr('class').split(' ');
|
||||||
ok(!(_.contains(css, 'disabled')), css);
|
ok(!(_.contains(css, 'disabled')), css);
|
||||||
|
|
||||||
|
// check pass through of view config
|
||||||
|
deepEqual(explorer.state.get('view-grid')['hiddenFields'], ['x']);
|
||||||
|
equal(explorer.state.get('view-map')['lonField'], 'lon1');
|
||||||
|
|
||||||
$el.remove();
|
$el.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user