Initial commit
This commit is contained in:
+51
@@ -0,0 +1,51 @@
|
||||
var _ = require('underscore');
|
||||
var Backbone = require('backbone');
|
||||
var camshaftReference = require('builder/data/camshaft-reference');
|
||||
var nodeIds = require('builder/value-objects/analysis-node-ids');
|
||||
|
||||
module.exports = Backbone.Model.extend({
|
||||
|
||||
defaults: {
|
||||
title: '',
|
||||
category: '',
|
||||
selected: false,
|
||||
type_group: '',
|
||||
desc: '',
|
||||
link: ''
|
||||
},
|
||||
|
||||
initialize: function (attrs, opts) {
|
||||
if (!opts.nodeAttrs) throw new Error('nodeAttrs is required');
|
||||
|
||||
this._nodeAttrs = opts.nodeAttrs;
|
||||
},
|
||||
|
||||
belongsTo: function (category) {
|
||||
return this.get('category') === category;
|
||||
},
|
||||
|
||||
acceptsGeometryTypeAsInput: function (simpleGeometryType) {
|
||||
if (this.get('dummy') === true) return true;
|
||||
return camshaftReference.isValidInputGeometryForType(simpleGeometryType, this._nodeAttrs.type);
|
||||
},
|
||||
|
||||
getValidInputGeometries: function () {
|
||||
return camshaftReference.getValidInputGeometriesForType(this._nodeAttrs.type);
|
||||
},
|
||||
|
||||
getFormAttrs: function (layerDefModel) {
|
||||
var letter = layerDefModel.get('letter');
|
||||
var sourceId = layerDefModel.get('source');
|
||||
|
||||
return _.extend(
|
||||
{
|
||||
source: sourceId,
|
||||
id: letter === nodeIds.letter(sourceId)
|
||||
? nodeIds.next(sourceId)
|
||||
: letter + '1'
|
||||
},
|
||||
this._nodeAttrs
|
||||
);
|
||||
}
|
||||
|
||||
});
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
var _ = require('underscore');
|
||||
var AnalysisOptionModel = require('./analysis-option-model');
|
||||
|
||||
/**
|
||||
* Custom model for deprecated SQL function type, to set correct primary source
|
||||
*/
|
||||
module.exports = AnalysisOptionModel.extend({
|
||||
|
||||
/**
|
||||
* @override {AnalysisOptionModel.getNodeAttrs}
|
||||
*/
|
||||
getFormAttrs: function (layerDefModel) {
|
||||
var attrs = AnalysisOptionModel.prototype.getFormAttrs.apply(this, arguments);
|
||||
delete attrs.source;
|
||||
|
||||
_.extend(attrs, {
|
||||
primary_source: layerDefModel.get('source')
|
||||
});
|
||||
|
||||
return attrs;
|
||||
}
|
||||
});
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
var _ = require('underscore');
|
||||
var AnalysisOptionModel = require('./analysis-option-model');
|
||||
var camshaftReference = require('builder/data/camshaft-reference');
|
||||
|
||||
/**
|
||||
* Model to represent a generated analysis option.
|
||||
*/
|
||||
module.exports = AnalysisOptionModel.extend({
|
||||
|
||||
/**
|
||||
* @override {AnalysisOptionModel.getNodeAttrs}
|
||||
*/
|
||||
getFormAttrs: function () {
|
||||
var attrs = AnalysisOptionModel.prototype.getFormAttrs.apply(this, arguments);
|
||||
|
||||
this._removeSourceIfThereAreMultipleSources(attrs);
|
||||
|
||||
return attrs;
|
||||
},
|
||||
|
||||
_removeSourceIfThereAreMultipleSources: function (attrs) {
|
||||
var params = camshaftReference.paramsForType(attrs.type);
|
||||
var sourceCount = _.reduce(Object.keys(params), function (memo, name) {
|
||||
if (params[name].type === 'node') {
|
||||
memo++;
|
||||
}
|
||||
return memo;
|
||||
}, 0);
|
||||
|
||||
if (sourceCount > 1) {
|
||||
delete attrs.source;
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
var _ = require('underscore');
|
||||
var AnalysisOptionModel = require('./analysis-option-model');
|
||||
|
||||
/**
|
||||
* Custom model for merge type, to set correct primary source
|
||||
*/
|
||||
module.exports = AnalysisOptionModel.extend({
|
||||
|
||||
/**
|
||||
* @override {AnalysisOptionModel.getNodeAttrs}
|
||||
*/
|
||||
getFormAttrs: function (layerDefModel) {
|
||||
var attrs = AnalysisOptionModel.prototype.getFormAttrs.apply(this, arguments);
|
||||
delete attrs.source;
|
||||
|
||||
_.extend(attrs, {
|
||||
primary_source_name: 'left_source',
|
||||
left_source: layerDefModel.get('source')
|
||||
});
|
||||
|
||||
return attrs;
|
||||
}
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user