Skip to content

Commit

Permalink
Switch to config object instead of millions of params
Browse files Browse the repository at this point in the history
  • Loading branch information
arikfr committed Mar 4, 2014
1 parent 68482af commit 3320de0
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 15 deletions.
23 changes: 11 additions & 12 deletions rd_ui/app/scripts/visualizations/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,24 @@
var VisualizationProvider = function() {
this.visualizations = {};
this.visualizationTypes = {};
var defaultConfig = {
defaultOptions: {},
skipTypes: false,
editorTemplate: null
}

this.registerVisualization = function(type, name, rendererTemplate, editorTemplate, defaultOptions, skipTypes) {
var visualization = {
rendererTemplate: rendererTemplate,
editorTemplate: editorTemplate,
type: type,
name: name,
defaultOptions: defaultOptions || {}
};
this.registerVisualization = function(config) {
var visualization = _.extend({}, defaultConfig, config);

// TODO: this is prone to errors; better refactor.
if (_.isEmpty(this.visualizations)) {
this.defaultVisualization = visualization;
}

this.visualizations[type] = visualization;
this.visualizations[config.type] = visualization;

if (!skipTypes) {
this.visualizationTypes[name] = type;
if (!config.skipTypes) {
this.visualizationTypes[config.name] = config.type;
};
};

Expand All @@ -47,7 +46,7 @@
var Visualization = $resource('/api/visualizations/:id', {id: '@id'});
Visualization.visualizations = this.visualizations;
Visualization.visualizationTypes = this.visualizationTypes;
Visualization.renderVisualizationsTemplate = this.getSwitchTemplate('rendererTemplate');
Visualization.renderVisualizationsTemplate = this.getSwitchTemplate('renderTemplate');
Visualization.editorTemplate = this.getSwitchTemplate('editorTemplate');
Visualization.defaultVisualization = this.defaultVisualization;

Expand Down
9 changes: 8 additions & 1 deletion rd_ui/app/scripts/visualizations/chart.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@
'stacking': null
}
};
VisualizationProvider.registerVisualization('CHART', 'Chart', renderTemplate, editTemplate, defaultOptions);

VisualizationProvider.registerVisualization({
type: 'CHART',
name: 'Chart',
renderTemplate: renderTemplate,
editorTemplate: editTemplate,
defaultOptions: defaultOptions
});
}]);

chartVisualization.directive('chartRenderer', function () {
Expand Down
6 changes: 5 additions & 1 deletion rd_ui/app/scripts/visualizations/cohort.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@
var cohortVisualization = angular.module('redash.visualization');

cohortVisualization.config(['VisualizationProvider', function(VisualizationProvider) {
VisualizationProvider.registerVisualization('COHORT', 'Cohort', '<cohort-renderer options="visualization.options" query-result="queryResult"></cohort-renderer>', null);
VisualizationProvider.registerVisualization({
type: 'COHORT',
name: 'Cohort',
renderTemplate: '<cohort-renderer options="visualization.options" query-result="queryResult"></cohort-renderer>'
});
}]);

cohortVisualization.directive('cohortRenderer', function() {
Expand Down
7 changes: 6 additions & 1 deletion rd_ui/app/scripts/visualizations/table.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@
var tableVisualization = angular.module('redash.visualization');

tableVisualization.config(['VisualizationProvider', function(VisualizationProvider) {
VisualizationProvider.registerVisualization('TABLE', 'Table', '<grid-renderer options="visualization.options" query-result="queryResult"></grid-renderer>', null, {}, true);
VisualizationProvider.registerVisualization({
type: 'TABLE',
name: 'Table',
renderTemplate: '<grid-renderer options="visualization.options" query-result="queryResult"></grid-renderer>',
skipTypes: true
});
}]);

tableVisualization.directive('gridRenderer', function () {
Expand Down

0 comments on commit 3320de0

Please sign in to comment.