From 48fbdcd3f8571c10af5890e500928c2129e2cbbf Mon Sep 17 00:00:00 2001 From: CJ Cenizal Date: Fri, 16 Sep 2016 16:33:21 -0700 Subject: [PATCH] Refactor visualize wizard. - Migrate from absolute imports to relative imports. - Reorganize files for clearer hierarchy. - Represent one concern per file. - Aggregate route definitions in one place. - Clarify entry points into code, with clear dependencies. --- .../kibana/public/visualize/index.js | 84 ++++++++++++------- .../public/visualize/wizard/step_1.html | 58 ++++++------- .../visualize/wizard/step_1_controller.js | 11 +++ .../public/visualize/wizard/step_2.html | 40 ++++----- .../visualize/wizard/step_2_controller.js | 21 +++++ .../kibana/public/visualize/wizard/wizard.js | 64 -------------- 6 files changed, 139 insertions(+), 139 deletions(-) create mode 100644 src/core_plugins/kibana/public/visualize/wizard/step_1_controller.js create mode 100644 src/core_plugins/kibana/public/visualize/wizard/step_2_controller.js delete mode 100644 src/core_plugins/kibana/public/visualize/wizard/wizard.js diff --git a/src/core_plugins/kibana/public/visualize/index.js b/src/core_plugins/kibana/public/visualize/index.js index 74924db7e2528..ac5db4b441182 100644 --- a/src/core_plugins/kibana/public/visualize/index.js +++ b/src/core_plugins/kibana/public/visualize/index.js @@ -1,33 +1,61 @@ -import 'plugins/kibana/visualize/styles/main.less'; -import 'plugins/kibana/visualize/editor/editor'; -import 'plugins/kibana/visualize/wizard/wizard'; -import 'plugins/kibana/visualize/editor/add_bucket_agg'; -import 'plugins/kibana/visualize/editor/agg'; -import 'plugins/kibana/visualize/editor/agg_add'; -import 'plugins/kibana/visualize/editor/agg_filter'; -import 'plugins/kibana/visualize/editor/agg_group'; -import 'plugins/kibana/visualize/editor/agg_param'; -import 'plugins/kibana/visualize/editor/agg_params'; -import 'plugins/kibana/visualize/editor/nesting_indicator'; -import 'plugins/kibana/visualize/editor/sidebar'; -import 'plugins/kibana/visualize/editor/vis_options'; -import 'plugins/kibana/visualize/editor/draggable_container'; -import 'plugins/kibana/visualize/editor/draggable_item'; -import 'plugins/kibana/visualize/editor/draggable_handle'; -import 'plugins/kibana/visualize/saved_visualizations/_saved_vis'; -import 'plugins/kibana/visualize/saved_visualizations/saved_visualizations'; -import uiRoutes from 'ui/routes'; +import './styles/main.less'; +import './editor/editor'; +import './editor/add_bucket_agg'; +import './editor/agg'; +import './editor/agg_add'; +import './editor/agg_filter'; +import './editor/agg_group'; +import './editor/agg_param'; +import './editor/agg_params'; +import './editor/nesting_indicator'; +import './editor/sidebar'; +import './editor/vis_options'; +import './editor/draggable_container'; +import './editor/draggable_item'; +import './editor/draggable_handle'; +import './saved_visualizations/_saved_vis'; +import './saved_visualizations/saved_visualizations'; +import '../discover/saved_searches/saved_searches'; +import '../../../../ui/public/directives/saved_object_finder'; +import '../../../../ui/public/directives/paginated_selectable_list'; +import routes from '../../../../ui/public/routes'; +import modules from '../../../../ui/public/modules'; +import RegistryVisTypesProvider from '../../../../ui/public/registry/vis_types'; -uiRoutes -.defaults(/visualize/, { - requireDefaultIndex: true -}) -.when('/visualize', { - redirectTo: '/visualize/step/1' -}); +const module = modules.get('app/visualize', ['kibana/courier']); + +import step1Template from './wizard/step_1.html'; +import step1Controller from './wizard/step_1_controller'; +step1Controller(module, RegistryVisTypesProvider); + +import step2Template from './wizard/step_2.html'; +import step2Controller from './wizard/step_2_controller'; +step2Controller(module); + +routes + .defaults(/visualize/, { + requireDefaultIndex: true + }) + .when('/visualize', { + redirectTo: '/visualize/step/1' + }) + .when('/visualize/step/1', { + template: step1Template, + controller: 'VisualizeWizardStep1', + }) + .when('/visualize/step/2', { + template: step2Template, + controller: 'VisualizeWizardStep2', + resolve: { + indexPatternIds: function (courier) { + return courier.indexPatterns.getIds(); + } + }, + }); // preloading -require('ui/saved_objects/saved_object_registry') -.register(require('plugins/kibana/visualize/saved_visualizations/saved_visualization_register')); +import savedObjectRegistry from '../../../../ui/public/saved_objects/saved_object_registry'; +import savedVisualizationRegister from './saved_visualizations/saved_visualization_register'; +savedObjectRegistry.register(savedVisualizationRegister); diff --git a/src/core_plugins/kibana/public/visualize/wizard/step_1.html b/src/core_plugins/kibana/public/visualize/wizard/step_1.html index 8f49ed3db0409..e173b1686b638 100644 --- a/src/core_plugins/kibana/public/visualize/wizard/step_1.html +++ b/src/core_plugins/kibana/public/visualize/wizard/step_1.html @@ -1,31 +1,33 @@ - -
-
-

Create New Visualization

-
- -
- -

{{type.title}}

-
-

{{type.description}}

-
+
+ +
+
+

Create New Visualization

+ +
+
+

Or, Open a Saved Visualization

+
-
-
-

Or, Open a Saved Visualization

-
diff --git a/src/core_plugins/kibana/public/visualize/wizard/step_1_controller.js b/src/core_plugins/kibana/public/visualize/wizard/step_1_controller.js new file mode 100644 index 0000000000000..5771be829e63f --- /dev/null +++ b/src/core_plugins/kibana/public/visualize/wizard/step_1_controller.js @@ -0,0 +1,11 @@ +export default (module, RegistryVisTypesProvider) => { + module.controller('VisualizeWizardStep1', function ($scope, timefilter, Private) { + timefilter.enabled = false; + + $scope.visTypes = Private(RegistryVisTypesProvider); + $scope.visTypeUrl = function (visType) { + if (!visType.requiresSearch) return '#/visualize/create?type=' + encodeURIComponent(visType.name); + else return '#/visualize/step/2?type=' + encodeURIComponent(visType.name); + }; + }); +}; diff --git a/src/core_plugins/kibana/public/visualize/wizard/step_2.html b/src/core_plugins/kibana/public/visualize/wizard/step_2.html index 1abc1b3778a98..9dd8570f09e2e 100644 --- a/src/core_plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/core_plugins/kibana/public/visualize/wizard/step_2.html @@ -1,22 +1,24 @@ - -
-
-

From a New Search, Select Index

- -
-
-

Or, From a Saved Search

- - + +
+
+

From a New Search, Select Index

+ + > +
+
+

Or, From a Saved Search

+ + +
diff --git a/src/core_plugins/kibana/public/visualize/wizard/step_2_controller.js b/src/core_plugins/kibana/public/visualize/wizard/step_2_controller.js new file mode 100644 index 0000000000000..01d2795580e87 --- /dev/null +++ b/src/core_plugins/kibana/public/visualize/wizard/step_2_controller.js @@ -0,0 +1,21 @@ +export default module => { + module.controller('VisualizeWizardStep2', function ($route, $scope, timefilter, kbnUrl) { + const type = $route.current.params.type; + + $scope.step2WithSearchUrl = function (hit) { + return kbnUrl.eval('#/visualize/create?&type={{type}}&savedSearchId={{id}}', {type: type, id: hit.id}); + }; + + timefilter.enabled = false; + + $scope.indexPattern = { + selection: null, + list: $route.current.locals.indexPatternIds + }; + + $scope.makeUrl = function (pattern) { + if (!pattern) return; + return `#/visualize/create?type=${type}&indexPattern=${pattern}`; + }; + }); +}; diff --git a/src/core_plugins/kibana/public/visualize/wizard/wizard.js b/src/core_plugins/kibana/public/visualize/wizard/wizard.js deleted file mode 100644 index 64d71203d56bb..0000000000000 --- a/src/core_plugins/kibana/public/visualize/wizard/wizard.js +++ /dev/null @@ -1,64 +0,0 @@ -import _ from 'lodash'; -import 'plugins/kibana/visualize/saved_visualizations/saved_visualizations'; -import 'ui/directives/saved_object_finder'; -import 'ui/directives/paginated_selectable_list'; -import 'plugins/kibana/discover/saved_searches/saved_searches'; -import routes from 'ui/routes'; -import RegistryVisTypesProvider from 'ui/registry/vis_types'; -import uiModules from 'ui/modules'; - - -const templateStep = function (num, txt) { - return '
' + txt + '
'; -}; - -const module = uiModules.get('app/visualize', ['kibana/courier']); - -/******** -/** Wizard Step 1 -/********/ -routes.when('/visualize/step/1', { - template: templateStep(1, require('plugins/kibana/visualize/wizard/step_1.html')) -}); - -module.controller('VisualizeWizardStep1', function ($scope, $route, $location, timefilter, Private) { - timefilter.enabled = false; - - $scope.visTypes = Private(RegistryVisTypesProvider); - $scope.visTypeUrl = function (visType) { - if (!visType.requiresSearch) return '#/visualize/create?type=' + encodeURIComponent(visType.name); - else return '#/visualize/step/2?type=' + encodeURIComponent(visType.name); - }; -}); - -/******** -/** Wizard Step 2 -/********/ -routes.when('/visualize/step/2', { - template: templateStep(2, require('plugins/kibana/visualize/wizard/step_2.html')), - resolve: { - indexPatternIds: function (courier) { - return courier.indexPatterns.getIds(); - } - } -}); - -module.controller('VisualizeWizardStep2', function ($route, $scope, $location, timefilter, kbnUrl) { - const type = $route.current.params.type; - - $scope.step2WithSearchUrl = function (hit) { - return kbnUrl.eval('#/visualize/create?&type={{type}}&savedSearchId={{id}}', {type: type, id: hit.id}); - }; - - timefilter.enabled = false; - - $scope.indexPattern = { - selection: null, - list: $route.current.locals.indexPatternIds - }; - - $scope.makeUrl = function (pattern) { - if (!pattern) return; - return `#/visualize/create?type=${type}&indexPattern=${pattern}`; - }; -});