From 15443e4bf075b4b49a55f6c6fbee97571e3f38d8 Mon Sep 17 00:00:00 2001 From: Spencer Alger Date: Thu, 2 Oct 2014 16:17:53 -0700 Subject: [PATCH 1/3] [pie] validate thats splits come first --- src/kibana/apps/visualize/editor/agg.html | 14 +++++++++++++- src/kibana/apps/visualize/editor/agg.js | 17 +++++++++++++++++ src/kibana/components/vis_types/pie.js | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/kibana/apps/visualize/editor/agg.html b/src/kibana/apps/visualize/editor/agg.html index 911a1229551c1..f1d89b4b57cb0 100644 --- a/src/kibana/apps/visualize/editor/agg.html +++ b/src/kibana/apps/visualize/editor/agg.html @@ -66,7 +66,17 @@
- +
+

+ "{{ agg.schema.title }}" aggs must run before all other buckets! +

+ +
@@ -79,5 +89,7 @@ ng-options="agg as agg.title for agg in aggTypeOptions | aggFilter:agg.schema.aggFilter">
+ +
\ No newline at end of file diff --git a/src/kibana/apps/visualize/editor/agg.js b/src/kibana/apps/visualize/editor/agg.js index f39493c4f5375..be15cd04a645a 100644 --- a/src/kibana/apps/visualize/editor/agg.js +++ b/src/kibana/apps/visualize/editor/agg.js @@ -35,6 +35,7 @@ define(function (require) { var i = $scope.$index; $scope.$first = i === 0; $scope.$last = i === $scope.group.length - 1; + $scope.aggIsTooLow = calcAggIsTooLow(); }); (function setupControlManagement() { @@ -166,6 +167,22 @@ define(function (require) { aggs.splice(index, 1); }; + + function calcAggIsTooLow() { + if (!$scope.agg.schema.mustBeFirst) { + return false; + } + + var firstDifferentSchema = _.findIndex($scope.group, function (agg) { + return agg.schema !== $scope.agg.schema; + }); + + if (firstDifferentSchema === -1) { + return false; + } + + return $scope.$index > firstDifferentSchema; + } } }; }); diff --git a/src/kibana/components/vis_types/pie.js b/src/kibana/components/vis_types/pie.js index 8079d26c266ce..cfdc4b622d538 100644 --- a/src/kibana/components/vis_types/pie.js +++ b/src/kibana/components/vis_types/pie.js @@ -39,6 +39,7 @@ define(function (require) { name: 'split', icon: 'fa fa-th', title: 'Split Chart', + mustBeFirst: true, min: 0, max: 1 } From 2c66b998eae75f2d10ce9c418439894d97409662 Mon Sep 17 00:00:00 2001 From: Spencer Alger Date: Thu, 2 Oct 2014 16:46:57 -0700 Subject: [PATCH 2/3] [vis/editor] style errors a bit, show above the schemaConfig --- src/kibana/apps/visualize/editor/agg.html | 18 +++--------------- src/kibana/apps/visualize/editor/agg.js | 10 ++++++++-- .../apps/visualize/editor/agg_select.html | 11 +++++++++++ .../visualize/editor/{ => styles}/editor.less | 8 ++++++++ src/kibana/apps/visualize/styles/main.less | 2 +- 5 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 src/kibana/apps/visualize/editor/agg_select.html rename src/kibana/apps/visualize/editor/{ => styles}/editor.less (95%) diff --git a/src/kibana/apps/visualize/editor/agg.html b/src/kibana/apps/visualize/editor/agg.html index f1d89b4b57cb0..80d0da93534cc 100644 --- a/src/kibana/apps/visualize/editor/agg.html +++ b/src/kibana/apps/visualize/editor/agg.html @@ -66,8 +66,8 @@
-
-

+

+

"{{ agg.schema.title }}" aggs must run before all other buckets!

-
- - - -
- - +
\ No newline at end of file diff --git a/src/kibana/apps/visualize/editor/agg.js b/src/kibana/apps/visualize/editor/agg.js index be15cd04a645a..d63b33b3b843a 100644 --- a/src/kibana/apps/visualize/editor/agg.js +++ b/src/kibana/apps/visualize/editor/agg.js @@ -5,6 +5,7 @@ define(function (require) { var _ = require('lodash'); var $ = require('jquery'); var aggTypes = Private(require('components/agg_types/index')); + var aggSelectHtml = require('text!apps/visualize/editor/agg_select.html'); require('apps/visualize/editor/agg_param'); @@ -41,8 +42,9 @@ define(function (require) { (function setupControlManagement() { var $editorContainer = $el.find('.vis-editor-agg-editor'); + var $schemaEditor = $('
').addClass('schemaEditors').appendTo($editorContainer); + var $aggSelect = $(aggSelectHtml).appendTo($editorContainer); if ($scope.agg.schema.editor) { - var $schemaEditor = $('
').prependTo($editorContainer); $schemaEditor.append($scope.agg.schema.editor); $compile($schemaEditor)(editorScope()); } @@ -52,8 +54,12 @@ define(function (require) { $scope.$watch('agg.type', function updateAggParamEditor(newType, oldType) { if ($aggParamEditors) { $aggParamEditors.remove(); + $aggParamEditors = null; + } + + if ($aggParamEditorsScope) { $aggParamEditorsScope.$destroy(); - $aggParamEditors = $aggParamEditorsScope = null; + $aggParamEditorsScope = null; } var agg = $scope.agg; diff --git a/src/kibana/apps/visualize/editor/agg_select.html b/src/kibana/apps/visualize/editor/agg_select.html new file mode 100644 index 0000000000000..9fc7e281be686 --- /dev/null +++ b/src/kibana/apps/visualize/editor/agg_select.html @@ -0,0 +1,11 @@ +
+ + + +
\ No newline at end of file diff --git a/src/kibana/apps/visualize/editor/editor.less b/src/kibana/apps/visualize/editor/styles/editor.less similarity index 95% rename from src/kibana/apps/visualize/editor/editor.less rename to src/kibana/apps/visualize/editor/styles/editor.less index df0b78485f9c9..d88c896ea28e1 100644 --- a/src/kibana/apps/visualize/editor/editor.less +++ b/src/kibana/apps/visualize/editor/styles/editor.less @@ -138,6 +138,14 @@ } } + &-error { + margin: @vis-editor-agg-editor-spacing 0; + padding: @vis-editor-agg-editor-spacing; + text-align: center; + background: @btn-danger-bg; + color: @btn-danger-color; + } + &-editor { margin-top: @vis-editor-agg-editor-spacing; diff --git a/src/kibana/apps/visualize/styles/main.less b/src/kibana/apps/visualize/styles/main.less index 67207d1583dd2..6a8ec51f85735 100644 --- a/src/kibana/apps/visualize/styles/main.less +++ b/src/kibana/apps/visualize/styles/main.less @@ -19,4 +19,4 @@ font-size: 1.2em; } -@import "../editor/editor.less"; +@import "../editor/styles/editor.less"; From 30fbfbf6ebb3e3ae84ade973b83137c260f7d984 Mon Sep 17 00:00:00 2001 From: Spencer Alger Date: Fri, 3 Oct 2014 12:03:22 -0700 Subject: [PATCH 3/3] [vis/editor] compile the agg