Initial commit
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
var _ = require('underscore');
|
||||
var GeneratedAnalysisOptionModel = require('./analysis-option-models/generated-analysis-option-model');
|
||||
var camshaftReference = require('camshaft-reference');
|
||||
var latestCamshaftReference = camshaftReference.getVersion('latest');
|
||||
var Analyses = require('builder/data/analyses');
|
||||
|
||||
/**
|
||||
* Analysis definitions, organized in buckets per top-level category
|
||||
*
|
||||
* - {Obj} -> options (userModel, configModel, queryGeometryModel)
|
||||
*/
|
||||
module.exports = function (options) {
|
||||
var categories = {
|
||||
create_clean: {
|
||||
title: _t('analysis-category.create-clean'),
|
||||
analyses: Analyses.getAnalysesByModalCategory('create_clean', options)
|
||||
},
|
||||
data_transformation: {
|
||||
title: _t('analysis-category.data-transformation'),
|
||||
analyses: Analyses.getAnalysesByModalCategory('data_transformation', options)
|
||||
},
|
||||
analyze_predict: {
|
||||
title: _t('analysis-category.analyze-predict'),
|
||||
analyses: Analyses.getAnalysesByModalCategory('analyze_predict', options)
|
||||
}
|
||||
};
|
||||
|
||||
var alsoGenerateFromCamshaftReference = options.userModel.featureEnabled('generate_analysis_options');
|
||||
|
||||
if (alsoGenerateFromCamshaftReference) {
|
||||
var implementedAnalyses = _.reduce(Object.keys(categories), function (memo, category) {
|
||||
return memo.concat(
|
||||
categories[category].analyses.map(function (analysis) {
|
||||
return analysis.nodeAttrs.type;
|
||||
})
|
||||
);
|
||||
}, []);
|
||||
|
||||
categories['generated'] = {
|
||||
title: 'Generated analyses by the Camshaft reference v' + _.last(camshaftReference.versions),
|
||||
analyses: _.compact(
|
||||
Object
|
||||
.keys(latestCamshaftReference.analyses)
|
||||
.filter(function (type) {
|
||||
return type !== 'source' && !_.contains(implementedAnalyses, type);
|
||||
})
|
||||
.map(function (type) {
|
||||
if (!Analyses.isAnalysisValidByType(type, options)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return {
|
||||
Model: GeneratedAnalysisOptionModel,
|
||||
nodeAttrs: {type: type},
|
||||
title: type,
|
||||
desc: JSON.stringify(latestCamshaftReference.analyses[type])
|
||||
};
|
||||
})
|
||||
)
|
||||
};
|
||||
}
|
||||
|
||||
return categories;
|
||||
};
|
||||
Reference in New Issue
Block a user