kibana-sinatra 3.0.0.0 → 3.0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -3
- data/lib/kibana/assets/app/components/extend-jquery.js +1 -1
- data/lib/kibana/assets/app/components/kbn.js +1 -1
- data/lib/kibana/assets/app/components/lodash.extended.js +1 -1
- data/lib/kibana/assets/app/components/require.config.js +1 -0
- data/lib/kibana/assets/app/controllers/all.js +1 -1
- data/lib/kibana/assets/app/controllers/dash.js +1 -1
- data/lib/kibana/assets/app/controllers/pulldown.js +1 -1
- data/lib/kibana/assets/app/controllers/row.js +1 -1
- data/lib/kibana/assets/app/dashboards/blank.json +1 -1
- data/lib/kibana/assets/app/dashboards/guided.json +1 -1
- data/lib/kibana/assets/app/dashboards/noted.json +1 -1
- data/lib/kibana/assets/app/directives/addPanel.js +1 -1
- data/lib/kibana/assets/app/directives/all.js +1 -1
- data/lib/kibana/assets/app/directives/arrayJoin.js +1 -1
- data/lib/kibana/assets/app/directives/configModal.js +1 -1
- data/lib/kibana/assets/app/directives/confirmClick.js +1 -1
- data/lib/kibana/assets/app/directives/dashUpload.js +1 -1
- data/lib/kibana/assets/app/directives/esVersion.js +1 -1
- data/lib/kibana/assets/app/directives/kibanaPanel.js +1 -1
- data/lib/kibana/assets/app/directives/kibanaSimplePanel.js +2 -2
- data/lib/kibana/assets/app/directives/ngBlur.js +1 -1
- data/lib/kibana/assets/app/directives/ngModelOnBlur.js +1 -1
- data/lib/kibana/assets/app/directives/tip.js +1 -1
- data/lib/kibana/assets/app/factories/store.js +1 -1
- data/lib/kibana/assets/app/filters/all.js +11 -3
- data/lib/kibana/assets/app/panels/bettermap/module.js +2 -2
- data/lib/kibana/assets/app/panels/filtering/module.html +19 -19
- data/lib/kibana/assets/app/panels/filtering/module.js +3 -1
- data/lib/kibana/assets/app/panels/goal/module.js +1 -1
- data/lib/kibana/assets/app/panels/histogram/editor.html +3 -0
- data/lib/kibana/assets/app/panels/histogram/module.js +4 -4
- data/lib/kibana/assets/app/panels/hits/module.js +1 -1
- data/lib/kibana/assets/app/panels/map/module.js +1 -1
- data/lib/kibana/assets/app/panels/query/editors/topN.html +3 -3
- data/lib/kibana/assets/app/panels/query/meta.html +7 -7
- data/lib/kibana/assets/app/panels/query/module.html +9 -9
- data/lib/kibana/assets/app/panels/query/module.js +4 -3
- data/lib/kibana/assets/app/panels/sparklines/module.js +1 -1
- data/lib/kibana/assets/app/panels/stats/module.js +2 -2
- data/lib/kibana/assets/app/panels/table/micropanel.html +1 -1
- data/lib/kibana/assets/app/panels/table/modal.html +1 -3
- data/lib/kibana/assets/app/panels/table/module.html +7 -0
- data/lib/kibana/assets/app/panels/table/module.js +22 -13
- data/lib/kibana/assets/app/panels/terms/module.html +21 -5
- data/lib/kibana/assets/app/panels/terms/module.js +3 -3
- data/lib/kibana/assets/app/panels/timepicker/module.js +0 -1
- data/lib/kibana/assets/app/panels/trends/module.js +6 -8
- data/lib/kibana/assets/app/partials/dashLoader.html +1 -1
- data/lib/kibana/assets/app/partials/dasheditor.html +4 -4
- data/lib/kibana/assets/app/partials/querySelect.html +3 -3
- data/lib/kibana/assets/app/services/dashboard.js +14 -12
- data/lib/kibana/assets/app/services/esVersion.js +14 -8
- data/lib/kibana/assets/app/services/fields.js +16 -15
- data/lib/kibana/assets/app/services/filterSrv.js +28 -22
- data/lib/kibana/assets/app/services/kbnIndex.js +23 -20
- data/lib/kibana/assets/app/services/querySrv.js +29 -20
- data/lib/kibana/sinatra/version.rb +1 -1
- data/lib/kibana/views/config.erb +5 -0
- data/lib/tasks/update.rb +6 -4
- metadata +2 -2
@@ -7,28 +7,28 @@
|
|
7
7
|
</style>
|
8
8
|
|
9
9
|
<fieldset>
|
10
|
-
<select class="input-small" ng-model="
|
10
|
+
<select class="input-small" ng-model="dashboard.current.services.query.list[id].type" ng-change="typeChange(dashboard.current.services.query.list[id])">
|
11
11
|
<option ng-repeat="type in queryTypes">{{type}}</option>
|
12
|
-
</select>  <a href="" class="small" ng-click="queryHelp(
|
12
|
+
</select>  <a href="" class="small" ng-click="queryHelp(dashboard.current.services.query.list[id].type)"> About the {{dashboard.current.services.query.list[id].type}} query</a>
|
13
13
|
|
14
14
|
<hr class="small">
|
15
15
|
|
16
16
|
<label class="small">Legend value</label>
|
17
|
-
<input type="text" ng-model="
|
17
|
+
<input type="text" ng-model="dashboard.current.services.query.list[id].alias" placeholder="Alias...">
|
18
18
|
</fieldset>
|
19
19
|
|
20
|
-
<div ng-include src="queryConfig(
|
20
|
+
<div ng-include src="queryConfig(dashboard.current.services.query.list[id].type)"></div>
|
21
21
|
|
22
22
|
|
23
23
|
<hr class="small">
|
24
24
|
<div>
|
25
|
-
<i ng-repeat="color in querySrv.colors" class="pointer" ng-class="{'icon-circle-blank':
|
25
|
+
<i ng-repeat="color in querySrv.colors" class="pointer" ng-class="{'icon-circle-blank':dashboard.current.services.query.list[id].color == color,'icon-circle':dashboard.current.services.query.list[id].color != color}" ng-style="{color:color}" ng-click="dashboard.current.services.query.list[id].color = color;render();"> </i>
|
26
26
|
</div>
|
27
27
|
|
28
28
|
|
29
29
|
<div class="pull-right">
|
30
|
-
<a class="btn btn-mini" ng-click="
|
31
|
-
<a class="btn btn-mini" ng-class="{active:
|
30
|
+
<a class="btn btn-mini" ng-click="dashboard.current.services.query.list[id].enable=false;dashboard.refresh();dismiss();" class="pointer">Deactivate</a>
|
31
|
+
<a class="btn btn-mini" ng-class="{active:dashboard.current.services.query.list[id].pin}" ng-click="toggle_pin(id);dismiss();" class="pointer">Pin <i class="icon-pushpin"></i></a>
|
32
32
|
<input class="btn btn-mini" ng-click="dashboard.refresh();dismiss();" type="submit"/ value="Close">
|
33
33
|
</div>
|
34
34
|
</div>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
<div ng-controller='query' ng-init="init()" class="query-panel">
|
2
|
-
<div ng-repeat="id in (unPinnedQueries = (
|
2
|
+
<div ng-repeat="id in (unPinnedQueries = (dashboard.current.services.query.ids|pinnedQuery:false))" ng-class="{'short-query': unPinnedQueries.length>1}">
|
3
3
|
<form class="form-search" style="position:relative;margin:5px 0;" ng-submit="refresh()">
|
4
4
|
<span class="begin-query">
|
5
|
-
<i class="pointer" ng-class="queryIcon(
|
6
|
-
<i class="pointer icon-circle-blank" ng-click="
|
7
|
-
<i class="icon-remove-sign pointer remove-query" ng-show="
|
5
|
+
<i class="pointer" ng-class="queryIcon(dashboard.current.services.query.list[id].type)" ng-show="dashboard.current.services.query.list[id].enable" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
|
6
|
+
<i class="pointer icon-circle-blank" ng-click="dashboard.current.services.query.list[id].enable=true;dashboard.refresh();" ng-hide="dashboard.current.services.query.list[id].enable" bs-tooltip="'Activate query'" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
|
7
|
+
<i class="icon-remove-sign pointer remove-query" ng-show="dashboard.current.services.query.ids.length > 1" ng-click="querySrv.remove(id);refresh()"></i>
|
8
8
|
</span>
|
9
9
|
<span>
|
10
|
-
<input class="search-query panel-query" ng-disabled="!
|
10
|
+
<input class="search-query panel-query" ng-disabled="!dashboard.current.services.query.list[id].enable" ng-class="{ 'input-block-level': unPinnedQueries.length==1, 'last-query': $last, 'has-remove': dashboard.current.services.query.ids.length > 1 }" bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" ng-model="dashboard.current.services.query.list[id].query" />
|
11
11
|
</span>
|
12
12
|
<span class="end-query">
|
13
13
|
<i class="icon-search pointer" ng-click="refresh()" ng-show="$last"></i>
|
@@ -15,12 +15,12 @@
|
|
15
15
|
</span>
|
16
16
|
</form>
|
17
17
|
</div>
|
18
|
-
<div style="display:inline-block" ng-repeat="id in
|
18
|
+
<div style="display:inline-block" ng-repeat="id in dashboard.current.services.query.ids|pinnedQuery:true">
|
19
19
|
<span class="pointer badge pins" ng-show="$first" ng-click="panel.pinned = !panel.pinned">Pinned <i ng-class="{'icon-caret-right':panel.pinned,'icon-caret-left':!panel.pinned}"></i></span>
|
20
20
|
<span ng-show="panel.pinned" class="badge pinned">
|
21
|
-
<i class="icon-circle pointer" ng-show="
|
22
|
-
<i class="pointer icon-circle-blank" bs-tooltip="'Activate query'" ng-click="
|
23
|
-
<span bs-tooltip="
|
21
|
+
<i class="icon-circle pointer" ng-show="dashboard.current.services.query.list[id].enable" ng-style="{color: dashboard.current.services.query.list[id].color}" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft"></i>
|
22
|
+
<i class="pointer icon-circle-blank" bs-tooltip="'Activate query'" ng-click="dashboard.current.services.query.list[id].enable=true;dashboard.refresh();" ng-hide="dashboard.current.services.query.list[id].enable" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
|
23
|
+
<span bs-tooltip="dashboard.current.services.query.list[id].query | limitTo:45"> {{dashboard.current.services.query.list[id].alias || dashboard.current.services.query.list[id].query}}</span>
|
24
24
|
</span>
|
25
25
|
</div>
|
26
26
|
<span style="display:inline-block" ng-show="unPinnedQueries.length == 0">
|
@@ -36,6 +36,7 @@ define([
|
|
36
36
|
_.defaults($scope.panel,_d);
|
37
37
|
|
38
38
|
$scope.querySrv = querySrv;
|
39
|
+
$scope.dashboard = dashboard;
|
39
40
|
|
40
41
|
// A list of query types for the query config popover
|
41
42
|
$scope.queryTypes = querySrv.types;
|
@@ -51,7 +52,7 @@ define([
|
|
51
52
|
};
|
52
53
|
|
53
54
|
$scope.refresh = function() {
|
54
|
-
update_history(_.pluck($scope.
|
55
|
+
update_history(_.pluck($scope.dashboard.current.services.query.list,'query'));
|
55
56
|
dashboard.refresh();
|
56
57
|
};
|
57
58
|
|
@@ -60,7 +61,7 @@ define([
|
|
60
61
|
};
|
61
62
|
|
62
63
|
$scope.toggle_pin = function(id) {
|
63
|
-
|
64
|
+
dashboard.current.services.query.list[id].pin = dashboard.current.services.query.list[id].pin ? false : true;
|
64
65
|
};
|
65
66
|
|
66
67
|
$scope.queryIcon = function(type) {
|
@@ -92,7 +93,7 @@ define([
|
|
92
93
|
alias: q.alias,
|
93
94
|
color: q.color
|
94
95
|
};
|
95
|
-
|
96
|
+
dashboard.current.services.query.list[_nq.id] = querySrv.defaults(_nq);
|
96
97
|
};
|
97
98
|
|
98
99
|
var update_history = function(query) {
|
@@ -173,7 +173,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
|
|
173
173
|
_.each(queries, function(q) {
|
174
174
|
var query = $scope.ejs.FilteredQuery(
|
175
175
|
querySrv.toEjsObj(q),
|
176
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
176
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
177
177
|
);
|
178
178
|
|
179
179
|
var facet = $scope.ejs.DateHistogramFacet(q.id);
|
@@ -117,7 +117,7 @@ define([
|
|
117
117
|
.facetFilter($scope.ejs.QueryFilter(
|
118
118
|
$scope.ejs.FilteredQuery(
|
119
119
|
boolQuery,
|
120
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
120
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
121
121
|
)))).size(0);
|
122
122
|
|
123
123
|
_.each(queries, function (q) {
|
@@ -129,7 +129,7 @@ define([
|
|
129
129
|
.facetFilter($scope.ejs.QueryFilter(
|
130
130
|
$scope.ejs.FilteredQuery(
|
131
131
|
query,
|
132
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
132
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
133
133
|
)
|
134
134
|
))
|
135
135
|
);
|
@@ -22,7 +22,7 @@
|
|
22
22
|
<tbody>
|
23
23
|
<tr ng-repeat='field in micropanel.values'>
|
24
24
|
<td>{{$index+1}}.</td>
|
25
|
-
<td style="word-wrap:break-word">{{{true: "__blank__", false:field[0] }[field[0] == '' || field[0] == undefined]|tableTruncate:panel.trimFactor:3}}</td>
|
25
|
+
<td style="word-wrap:break-word">{{{true: "__blank__", false:field[0] }[(field[0] == '' || field[0] == undefined) && field[0] != 0]|tableTruncate:panel.trimFactor:3}}</td>
|
26
26
|
<td>
|
27
27
|
<i class="pointer icon-search" ng-click="build_search(micropanel.field,field[0]);dismiss();"></i>
|
28
28
|
<i class="pointer icon-ban-circle" ng-click="build_search(micropanel.field,field[0],true);dismiss();"></i>
|
@@ -33,9 +33,7 @@
|
|
33
33
|
}
|
34
34
|
</style>
|
35
35
|
<h4>Top 10 terms in field {{modalField}}</h4>
|
36
|
-
<
|
37
|
-
<kibana-simple-panel ng-click="dismiss();" type="'{{facetType}}'" panel='{{facetPanel}}' ng-cloak></kibana-simple-panel>
|
38
|
-
</div>
|
36
|
+
<kibana-simple-panel ng-click="dismiss();" type="'{{facetType}}'" panel='{{facetPanel}}' ng-cloak></kibana-simple-panel>
|
39
37
|
</div>
|
40
38
|
|
41
39
|
<div class="modal-footer">
|
@@ -50,6 +50,7 @@
|
|
50
50
|
</style>
|
51
51
|
|
52
52
|
<div class="table-container">
|
53
|
+
|
53
54
|
<div bindonce ng-class="{'table-sidebar':panel.field_list}" ng-if="panel.field_list">
|
54
55
|
<div class="sidebar-nav">
|
55
56
|
|
@@ -90,6 +91,12 @@
|
|
90
91
|
</div>
|
91
92
|
|
92
93
|
<div style="{{panel.overflow}}:{{panel.height || row.height}};" ng-class="{'table-main':panel.field_list}" class="table-doc-table">
|
94
|
+
|
95
|
+
<div class="table-facet" ng-if="modalField">
|
96
|
+
<h4><button class="btn btn-mini btn-danger" ng-click="closeFacet();">close</button> Top 10 terms in field {{modalField}}</h4>
|
97
|
+
<kibana-simple-panel type="'{{facetType}}'" panel='{{facetPanel}}' ng-cloak></kibana-simple-panel>
|
98
|
+
</div>
|
99
|
+
|
93
100
|
<i class="pull-left icon-chevron-sign-right pointer" ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Show field list'" ng-show="!panel.field_list"></i>
|
94
101
|
<div class="row-fluid" ng-show="panel.paging">
|
95
102
|
<div class="span1 offset1" style="text-align:right">
|
@@ -25,7 +25,8 @@ function (angular, app, _, kbn, moment) {
|
|
25
25
|
var module = angular.module('kibana.panels.table', []);
|
26
26
|
app.useModule(module);
|
27
27
|
|
28
|
-
module.controller('table', function($rootScope, $scope, $modal, $q, $compile,
|
28
|
+
module.controller('table', function($rootScope, $scope, $modal, $q, $compile, $timeout,
|
29
|
+
fields, querySrv, dashboard, filterSrv) {
|
29
30
|
$scope.panelMeta = {
|
30
31
|
modals : [
|
31
32
|
{
|
@@ -156,10 +157,19 @@ function (angular, app, _, kbn, moment) {
|
|
156
157
|
// Create a percent function for the view
|
157
158
|
$scope.percent = kbn.to_percent;
|
158
159
|
|
160
|
+
$scope.closeFacet = function() {
|
161
|
+
if($scope.modalField) {
|
162
|
+
delete $scope.modalField;
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
159
166
|
$scope.termsModal = function(field,chart) {
|
160
|
-
$scope.
|
161
|
-
|
162
|
-
|
167
|
+
$scope.closeFacet();
|
168
|
+
$timeout(function() {
|
169
|
+
$scope.modalField = field;
|
170
|
+
showModal(
|
171
|
+
'{"height":"200px","chart":"'+chart+'","field":"'+field+'"}','terms');
|
172
|
+
},0);
|
163
173
|
};
|
164
174
|
|
165
175
|
$scope.statsModal = function(field) {
|
@@ -174,18 +184,16 @@ function (angular, app, _, kbn, moment) {
|
|
174
184
|
|
175
185
|
// create a new modal. Can't reuse one modal unforunately as the directive will not
|
176
186
|
// re-render on show.
|
177
|
-
|
187
|
+
/*
|
188
|
+
$modal({
|
178
189
|
template: './app/panels/table/modal.html',
|
179
|
-
persist:
|
180
|
-
show:
|
181
|
-
scope: $scope,
|
190
|
+
persist: false,
|
191
|
+
show: true,
|
192
|
+
scope: $scope.$new(),
|
182
193
|
keyboard: false
|
183
194
|
});
|
195
|
+
*/
|
184
196
|
|
185
|
-
// and show it
|
186
|
-
$q.when(panelModal).then(function(modalEl) {
|
187
|
-
modalEl.modal('show');
|
188
|
-
});
|
189
197
|
};
|
190
198
|
|
191
199
|
|
@@ -306,7 +314,7 @@ function (angular, app, _, kbn, moment) {
|
|
306
314
|
request = request.query(
|
307
315
|
$scope.ejs.FilteredQuery(
|
308
316
|
boolQuery,
|
309
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
317
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
310
318
|
))
|
311
319
|
.highlight(
|
312
320
|
$scope.ejs.Highlight($scope.panel.highlight)
|
@@ -324,6 +332,7 @@ function (angular, app, _, kbn, moment) {
|
|
324
332
|
$scope.panelMeta.loading = false;
|
325
333
|
|
326
334
|
if(_segment === 0) {
|
335
|
+
$scope.panel.offset = 0;
|
327
336
|
$scope.hits = 0;
|
328
337
|
$scope.data = [];
|
329
338
|
$scope.current_fields = [];
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<div ng-controller='terms' ng-init="init()">
|
2
2
|
<style>
|
3
3
|
.pieLabel { pointer-events: none }
|
4
|
+
.terms-legend-term {
|
5
|
+
word-break: break-all;
|
6
|
+
}
|
4
7
|
</style>
|
5
8
|
|
6
9
|
<!-- START Pie or bar chart -->
|
@@ -8,13 +11,18 @@
|
|
8
11
|
<!-- vertical legend above -->
|
9
12
|
<table class="small" ng-show="panel.arrangement == 'vertical'">
|
10
13
|
<tr ng-repeat="term in legend">
|
11
|
-
<td><i class="icon-circle" ng-style="{color:term.color}"></i></td>
|
14
|
+
<td><i class="icon-circle" ng-style="{color:term.color}"></i></td>
|
15
|
+
<td class="terms-legend-term" style="padding-right:10px;padding-left:10px;">{{term.label}}</td>
|
16
|
+
<td>{{term.data[0][1]}}</td>
|
12
17
|
</tr>
|
13
18
|
</table>
|
14
19
|
|
15
20
|
<!-- horizontal legend above -->
|
16
21
|
<span class="small" ng-show="panel.arrangement == 'horizontal'" ng-repeat="term in legend" style="float:left;padding-left: 10px;">
|
17
|
-
|
22
|
+
<span>
|
23
|
+
<i class="icon-circle" ng-style="{color:term.color}"></i>
|
24
|
+
<span class="terms-legend-term">{{term.label}}</span> ({{term.data[0][1]}})
|
25
|
+
</span>
|
18
26
|
</span>
|
19
27
|
|
20
28
|
<span class="small pull-left" ng-show="panel.tmode == 'terms_stats'">
|
@@ -32,28 +40,36 @@
|
|
32
40
|
<!-- vertical legend below -->
|
33
41
|
<table class="small" ng-show="panel.arrangement == 'vertical'">
|
34
42
|
<tr ng-repeat="term in legend">
|
35
|
-
<td><i class="icon-circle" ng-style="{color:term.color}"></i></i></td>
|
43
|
+
<td><i class="icon-circle" ng-style="{color:term.color}"></i></i></td>
|
44
|
+
<td class="terms-legend-term" style="padding-right:10px;padding-left:10px;">{{term.label}}</td>
|
45
|
+
<td>{{term.data[0][1]}}</td>
|
36
46
|
</tr>
|
37
47
|
</table>
|
38
48
|
|
39
49
|
<!-- horizontal legend below -->
|
40
50
|
<span class="small" ng-show="panel.arrangement == 'horizontal'" ng-repeat="term in legend" style="float:left;padding-left: 10px;">
|
41
|
-
|
51
|
+
<span>
|
52
|
+
<i class="icon-circle" ng-style="{color:term.color}"></i>
|
53
|
+
<span class="terms-legend-term">{{term.label}}</span> ({{term.data[0][1]}})
|
54
|
+
</span>
|
42
55
|
</span>
|
43
56
|
|
44
57
|
<span class="small pull-left" ng-show="panel.tmode == 'terms_stats'">
|
45
58
|
  | {{ panel.tstat }} of <strong>{{ panel.valuefield }}</strong>
|
46
59
|
</span>
|
47
60
|
|
61
|
+
<div style="clear:both"></div>
|
48
62
|
</div>
|
49
63
|
<!-- END Pie or Bar chart -->
|
50
64
|
|
65
|
+
|
66
|
+
|
51
67
|
<table ng-style="panel.style" class="table table-striped table-condensed" ng-show="panel.chart == 'table'">
|
52
68
|
<thead>
|
53
69
|
<th>Term</th> <th>{{ panel.tmode == 'terms_stats' ? panel.tstat : 'Count' }}</th> <th>Action</th>
|
54
70
|
</thead>
|
55
71
|
<tr ng-repeat="term in data" ng-show="showMeta(term)">
|
56
|
-
<td>{{term.label}}</td>
|
72
|
+
<td class="terms-legend-term">{{term.label}}</td>
|
57
73
|
<td>{{term.data[0][1]}}</td>
|
58
74
|
<td>
|
59
75
|
<span ng-hide="term.meta == 'other'">
|
@@ -96,7 +96,7 @@ function (angular, app, _, $, kbn) {
|
|
96
96
|
*/
|
97
97
|
chart : 'bar',
|
98
98
|
/** @scratch /panels/terms/5
|
99
|
-
* counter_pos:: The location of the legend in respect to the chart, above or
|
99
|
+
* counter_pos:: The location of the legend in respect to the chart, above, below, or none.
|
100
100
|
*/
|
101
101
|
counter_pos : 'above',
|
102
102
|
/** @scratch /panels/terms/5
|
@@ -177,7 +177,7 @@ function (angular, app, _, $, kbn) {
|
|
177
177
|
.facetFilter($scope.ejs.QueryFilter(
|
178
178
|
$scope.ejs.FilteredQuery(
|
179
179
|
boolQuery,
|
180
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
180
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
181
181
|
)))).size(0);
|
182
182
|
}
|
183
183
|
if($scope.panel.tmode === 'terms_stats') {
|
@@ -190,7 +190,7 @@ function (angular, app, _, $, kbn) {
|
|
190
190
|
.facetFilter($scope.ejs.QueryFilter(
|
191
191
|
$scope.ejs.FilteredQuery(
|
192
192
|
boolQuery,
|
193
|
-
filterSrv.getBoolFilter(filterSrv.ids)
|
193
|
+
filterSrv.getBoolFilter(filterSrv.ids())
|
194
194
|
)))).size(0);
|
195
195
|
}
|
196
196
|
|
@@ -81,7 +81,6 @@ function (angular, app, _, moment, kbn) {
|
|
81
81
|
$scope.temptime.from.date.setHours(0,0,0,0);
|
82
82
|
$scope.temptime.to.date.setHours(0,0,0,0);
|
83
83
|
|
84
|
-
console.log(new Date().getTimezoneOffset());
|
85
84
|
|
86
85
|
// This is an ugly hack, but works.
|
87
86
|
if(new Date().getTimezoneOffset() < 0) {
|
@@ -110,11 +110,13 @@ function (angular, app, _, kbn) {
|
|
110
110
|
timeField = timeField[0];
|
111
111
|
}
|
112
112
|
|
113
|
-
// This logic can be
|
113
|
+
// This logic can be simplified greatly with the new kbn.parseDate
|
114
114
|
$scope.time = filterSrv.timeRange('last');
|
115
|
+
|
116
|
+
|
115
117
|
$scope.old_time = {
|
116
|
-
from : new Date($scope.time.from.getTime() - kbn.interval_to_ms($scope.panel.ago)),
|
117
|
-
to : new Date($scope.time.to.getTime() - kbn.interval_to_ms($scope.panel.ago))
|
118
|
+
from : new Date($scope.time.from.getTime() - kbn.interval_to_ms($scope.panel.ago)).valueOf(),
|
119
|
+
to : new Date($scope.time.to.getTime() - kbn.interval_to_ms($scope.panel.ago)).valueOf()
|
118
120
|
};
|
119
121
|
|
120
122
|
var _segment = _.isUndefined(segment) ? 0 : segment;
|
@@ -128,11 +130,7 @@ function (angular, app, _, kbn) {
|
|
128
130
|
_.each(queries, function(query) {
|
129
131
|
var q = $scope.ejs.FilteredQuery(
|
130
132
|
querySrv.toEjsObj(query),
|
131
|
-
filterSrv.getBoolFilter(
|
132
|
-
$scope.ejs.RangeFilter(timeField)
|
133
|
-
.from($scope.time.from)
|
134
|
-
.to($scope.time.to)
|
135
|
-
));
|
133
|
+
filterSrv.getBoolFilter(filterSrv.ids()));
|
136
134
|
|
137
135
|
request = request
|
138
136
|
.facet($scope.ejs.QueryFacet(query.id)
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<li ng-repeat="pulldown in dashboard.current.nav" ng-controller="PulldownCtrl" ng-show="pulldown.enable"><kibana-simple-panel type="pulldown.type" ng-cloak></kibana-simple-panel></li>
|
8
8
|
|
9
|
-
<li><a bs-tooltip="'Goto saved default'" data-placement="bottom" href='#/dashboard'><i class='icon-home'></i></a></li>
|
9
|
+
<li ng-if="dashboard.current.loader.show_home !== false"><a bs-tooltip="'Goto saved default'" data-placement="bottom" href='#/dashboard'><i class='icon-home'></i></a></li>
|
10
10
|
<li class="dropdown" ng-show="showDropdown('load')" >
|
11
11
|
<a href="#" bs-tooltip="'Load'" data-placement="bottom" class="dropdown-toggle" data-toggle="dropdown" ng-click="elasticsearch_dblist('title:'+elasticsearch.query+'*')">
|
12
12
|
<i class='icon-folder-open'></i>
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<div ng-model="editor.index" bs-tabs style="text-transform:capitalize;">
|
5
5
|
<div ng-repeat="tab in ['General','Index','Rows','Controls']" data-title="{{tab}}">
|
6
6
|
</div>
|
7
|
-
<div ng-repeat="tab in dashboard.current.nav" data-title="{{tab.type}}">
|
7
|
+
<div ng-repeat="tab in dashboard.current.nav|editable" data-title="{{tab.title || tab.type}}">
|
8
8
|
</div>
|
9
9
|
</div>
|
10
10
|
|
@@ -162,14 +162,14 @@
|
|
162
162
|
<div class="editor-option" ng-repeat="pulldown in dashboard.current.pulldowns">
|
163
163
|
<label class="small" style="text-transform:capitalize;">{{pulldown.type}}</label><input type="checkbox" ng-model="pulldown.enable" ng-checked="pulldown.enable">
|
164
164
|
</div>
|
165
|
-
<div class="editor-option" ng-repeat="pulldown in dashboard.current.nav">
|
165
|
+
<div class="editor-option" ng-repeat="pulldown in dashboard.current.nav|editable">
|
166
166
|
<label class="small" style="text-transform:capitalize;">{{pulldown.type}}</label><input type="checkbox" ng-model="pulldown.enable" ng-checked="pulldown.enable">
|
167
167
|
</div>
|
168
168
|
</div>
|
169
169
|
</div>
|
170
170
|
</div>
|
171
171
|
|
172
|
-
<div ng-repeat="pulldown in dashboard.current.nav" ng-controller="PulldownCtrl" ng-show="editor.index == 4+$index">
|
172
|
+
<div ng-repeat="pulldown in dashboard.current.nav|editable" ng-controller="PulldownCtrl" ng-show="editor.index == 4+$index">
|
173
173
|
<ng-include ng-show="pulldown.enable" src="edit_path(pulldown.type)"></ng-include>
|
174
174
|
<button ng-hide="pulldown.enable" class="btn" ng-click="pulldown.enable = true">Enable the {{pulldown.type}}</button>
|
175
175
|
</div>
|
@@ -181,4 +181,4 @@
|
|
181
181
|
<button type="button" ng-click="add_row(dashboard.current,row); reset_row();" class="btn btn-info" ng-show="editor.index == 2">Create Row</button>
|
182
182
|
<button type="button" class="btn btn-success" ng-click="editor.index=0;editSave(dashboard);dismiss();reset_panel();dashboard.refresh()">Save</button>
|
183
183
|
<button type="button" class="btn btn-danger" ng-click="editor.index=0;dismiss();reset_panel();dashboard.refresh()">Cancel</button>
|
184
|
-
</div>
|
184
|
+
</div>
|
@@ -16,9 +16,9 @@
|
|
16
16
|
</div>
|
17
17
|
<div class="span9 querySelect" ng-show="panel.queries.mode == 'selected'">
|
18
18
|
<label class="small">Selected Queries</label>
|
19
|
-
<span ng-style="{'border-color': querySrv.list[id].color}" ng-class="{selected:_.contains(panel.queries.ids,id),unselected:!_.contains(panel.queries.ids,id)}" ng-repeat="id in querySrv.ids" ng-click="panel.queries.ids = _.toggleInOut(panel.queries.ids,id);set_refresh(true);" class="query pointer badge">
|
20
|
-
<i class="icon-circle" ng-style="{color: querySrv.list[id].color}"></i>
|
21
|
-
<span> {{querySrv.list[id].alias || querySrv.list[id].query}}</span>
|
19
|
+
<span ng-style="{'border-color': querySrv.list()[id].color}" ng-class="{selected:_.contains(panel.queries.ids,id),unselected:!_.contains(panel.queries.ids,id)}" ng-repeat="id in querySrv.ids()" ng-click="panel.queries.ids = _.toggleInOut(panel.queries.ids,id);set_refresh(true);" class="query pointer badge">
|
20
|
+
<i class="icon-circle" ng-style="{color: querySrv.list()[id].color}"></i>
|
21
|
+
<span> {{querySrv.list()[id].alias || querySrv.list()[id].query}}</span>
|
22
22
|
</span>
|
23
23
|
</div>
|
24
24
|
</div>
|