Initial commit
This commit is contained in:
27
lib/assets/javascripts/builder/node-geometry-tracker.js
Executable file
27
lib/assets/javascripts/builder/node-geometry-tracker.js
Executable file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Track geometry changes that happens in any Node definition model
|
||||
*/
|
||||
|
||||
module.exports = {
|
||||
track: function (params) {
|
||||
if (!params) throw new Error('several parameters required');
|
||||
if (!params.layerDefinitionsCollection) throw new Error('layerDefinitionsCollection is required');
|
||||
if (!params.analysisDefinitionNodesCollection) throw new Error('analysisDefinitionNodesCollection is required');
|
||||
if (!params.analysisDefinitionsCollection) throw new Error('analysisDefinitionsCollection is required');
|
||||
|
||||
this._layerDefinitionsCollection = params.layerDefinitionsCollection;
|
||||
this._analysisDefinitionsCollection = params.analysisDefinitionsCollection;
|
||||
|
||||
params.analysisDefinitionNodesCollection.bind('change:simple_geom', this._onNodeGeometryChange, this);
|
||||
},
|
||||
|
||||
_onNodeGeometryChange: function (nodeDefModel) {
|
||||
if (nodeDefModel.get('table_name')) { // If it is a source node, no save
|
||||
return;
|
||||
}
|
||||
var layerDefModel = this._layerDefinitionsCollection.findWhere({ source: nodeDefModel.get('id') });
|
||||
if (layerDefModel) {
|
||||
this._analysisDefinitionsCollection.saveAnalysisForLayer(layerDefModel);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user