Initial commit

This commit is contained in:
zhongjin
2020-06-15 10:58:47 +08:00
commit 4f1dfe7564
8590 changed files with 1516878 additions and 0 deletions
@@ -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
);
}
});
@@ -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;
}
});
@@ -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;
}
}
});
@@ -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;
}
});