kibana-sinatra 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/kibana/assets/app/app.js +4 -2
- data/lib/kibana/assets/app/components/kbn.js +114 -0
- data/lib/kibana/assets/app/components/require.config.js +5 -1
- data/lib/kibana/assets/app/controllers/dash.js +30 -2
- data/lib/kibana/assets/app/controllers/row.js +33 -0
- data/lib/kibana/assets/app/dashboards/blank.json +0 -11
- data/lib/kibana/assets/app/dashboards/default.json +0 -11
- data/lib/kibana/assets/app/dashboards/guided.json +0 -11
- data/lib/kibana/assets/app/dashboards/logstash.json +0 -6
- data/lib/kibana/assets/app/dashboards/noted.json +0 -11
- data/lib/kibana/assets/app/directives/addPanel.js +1 -1
- data/lib/kibana/assets/app/directives/kibanaPanel.js +3 -2
- data/lib/kibana/assets/app/directives/kibanaSimplePanel.js +3 -3
- data/lib/kibana/assets/app/panels/bettermap/module.js +52 -17
- data/lib/kibana/assets/app/panels/column/module.js +18 -8
- data/lib/kibana/assets/app/panels/histogram/editor.html +3 -0
- data/lib/kibana/assets/app/panels/histogram/module.html +1 -1
- data/lib/kibana/assets/app/panels/histogram/module.js +179 -49
- data/lib/kibana/assets/app/panels/histogram/styleEditor.html +4 -0
- data/lib/kibana/assets/app/panels/hits/module.js +46 -18
- data/lib/kibana/assets/app/panels/map/module.js +40 -21
- data/lib/kibana/assets/app/panels/pie/module.html +3 -0
- data/lib/kibana/assets/app/panels/pie/module.js +62 -25
- data/lib/kibana/assets/app/panels/sparklines/module.js +42 -35
- data/lib/kibana/assets/app/panels/table/editor.html +2 -2
- data/lib/kibana/assets/app/panels/table/module.html +24 -19
- data/lib/kibana/assets/app/panels/table/module.js +80 -29
- data/lib/kibana/assets/app/panels/terms/module.html +3 -0
- data/lib/kibana/assets/app/panels/terms/module.js +65 -17
- data/lib/kibana/assets/app/panels/text/module.js +21 -9
- data/lib/kibana/assets/app/panels/trends/module.js +34 -13
- data/lib/kibana/assets/app/partials/dasheditor.html +1 -1
- data/lib/kibana/assets/app/services/dashboard.js +14 -14
- data/lib/kibana/assets/app/services/fields.js +11 -8
- data/lib/kibana/assets/app/services/filterSrv.js +27 -17
- data/lib/kibana/assets/app/services/querySrv.js +14 -15
- data/lib/kibana/assets/css/bootstrap.dark.min.css +1 -1
- data/lib/kibana/assets/css/bootstrap.light.min.css +1 -1
- data/lib/kibana/assets/index.html +1 -1
- data/lib/kibana/assets/vendor/angular/angular-strap.js +6 -3
- data/lib/kibana/assets/vendor/angular/bindonce.js +269 -0
- data/lib/kibana/assets/vendor/bootstrap/less/overrides.less +6 -0
- data/lib/kibana/assets/vendor/elasticjs/elastic-angular-client.js +37 -24
- data/lib/kibana/assets/vendor/elasticjs/elastic.js +4694 -2419
- data/lib/kibana/assets/vendor/jquery/jquery.flot.byte.js +107 -0
- data/lib/kibana/sinatra/version.rb +1 -1
- data/lib/kibana/views/config.erb +19 -16
- metadata +4 -2
@@ -29,6 +29,10 @@
|
|
29
29
|
<label class="small">Point Radius</label>
|
30
30
|
<select class="input-mini" ng-model="panel.pointradius" ng-options="f for f in [1,2,3,4,5,6,7,8,9,10]"></select>
|
31
31
|
</div>
|
32
|
+
<div class="editor-option">
|
33
|
+
<label class="small">Y Format <tip>Y-axis formatting</tip></label>
|
34
|
+
<select class="input-small" ng-model="panel.y_format" ng-options="f for f in ['none','short','bytes']"></select>
|
35
|
+
</div>
|
32
36
|
</div>
|
33
37
|
<div class="section">
|
34
38
|
<h5>Multiple Series</h5>
|
@@ -1,16 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
*/
|
1
|
+
/** @scratch /panels/5
|
2
|
+
* include::panels/hits.asciidoc[]
|
3
|
+
*/
|
4
|
+
|
5
|
+
/** @scratch /panels/hits/0
|
6
|
+
* == Hits
|
7
|
+
* Status: *Stable*
|
8
|
+
*
|
9
|
+
* The hits panel displays the number of hits for each of the queries on the dashboard in a
|
10
|
+
* configurable format specified by the `chart' property.
|
11
|
+
*
|
12
|
+
*/
|
14
13
|
define([
|
15
14
|
'angular',
|
16
15
|
'app',
|
@@ -46,18 +45,47 @@ define([
|
|
46
45
|
|
47
46
|
// Set and populate defaults
|
48
47
|
var _d = {
|
49
|
-
queries : {
|
50
|
-
mode : 'all',
|
51
|
-
ids : []
|
52
|
-
},
|
53
48
|
style : { "font-size": '10pt'},
|
49
|
+
/** @scratch /panels/hits/3
|
50
|
+
* === Parameters
|
51
|
+
*
|
52
|
+
* arrangement:: The arrangement of the legend. horizontal or vertical
|
53
|
+
*/
|
54
54
|
arrangement : 'horizontal',
|
55
|
+
/** @scratch /panels/hits/3
|
56
|
+
* chart:: bar, pie or none
|
57
|
+
*/
|
55
58
|
chart : 'bar',
|
59
|
+
/** @scratch /panels/hits/3
|
60
|
+
* counter_pos:: The position of the legend, above or below
|
61
|
+
*/
|
56
62
|
counter_pos : 'above',
|
63
|
+
/** @scratch /panels/hits/3
|
64
|
+
* donut:: If the chart is set to pie, setting donut to true will draw a hole in the midle of it
|
65
|
+
*/
|
57
66
|
donut : false,
|
67
|
+
/** @scratch /panels/hits/3
|
68
|
+
* tilt:: If the chart is set to pie, setting tilt to true will tilt it back into an oval
|
69
|
+
*/
|
58
70
|
tilt : false,
|
71
|
+
/** @scratch /panels/hits/3
|
72
|
+
* labels:: If the chart is set to pie, setting labels to true will draw labels in the slices
|
73
|
+
*/
|
59
74
|
labels : true,
|
60
|
-
|
75
|
+
/** @scratch /panels/hits/3
|
76
|
+
* spyable:: Setting spyable to false disables the inspect icon.
|
77
|
+
*/
|
78
|
+
spyable : true,
|
79
|
+
/** @scratch /panels/hits/5
|
80
|
+
* ==== Queries
|
81
|
+
* queries object:: This object describes the queries to use on this panel.
|
82
|
+
* queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+
|
83
|
+
* queries.ids::: In +selected+ mode, which query ids are selected.
|
84
|
+
*/
|
85
|
+
queries : {
|
86
|
+
mode : 'all',
|
87
|
+
ids : []
|
88
|
+
},
|
61
89
|
};
|
62
90
|
_.defaults($scope.panel,_d);
|
63
91
|
|
@@ -1,19 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
N indices
|
14
|
-
|
15
|
-
*/
|
16
|
-
|
1
|
+
/** @scratch /panels/5
|
2
|
+
* include::panels/map.asciidoc[]
|
3
|
+
*/
|
4
|
+
|
5
|
+
/** @scratch /panels/map/0
|
6
|
+
* == Map
|
7
|
+
* Status: *Stable*
|
8
|
+
*
|
9
|
+
* The map panel translates 2 letter country or state codes into shaded regions on a map. Currently
|
10
|
+
* available maps are world, usa and europe.
|
11
|
+
*
|
12
|
+
*/
|
17
13
|
define([
|
18
14
|
'angular',
|
19
15
|
'app',
|
@@ -49,16 +45,39 @@ function (angular, app, _, $) {
|
|
49
45
|
|
50
46
|
// Set and populate defaults
|
51
47
|
var _d = {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
48
|
+
/** @scratch /panels/map/3
|
49
|
+
* === Parameters
|
50
|
+
*
|
51
|
+
* map:: Map to display. world, usa, europe
|
52
|
+
*/
|
56
53
|
map : "world",
|
54
|
+
/** @scratch /panels/map/3
|
55
|
+
* colors:: An array of colors to use to shade the map. If 2 colors are specified, shades
|
56
|
+
* between them will be used. For example [`#A0E2E2', `#265656']
|
57
|
+
*/
|
57
58
|
colors : ['#A0E2E2', '#265656'],
|
59
|
+
/** @scratch /panels/map/3
|
60
|
+
* size:: Max number of regions to shade
|
61
|
+
*/
|
58
62
|
size : 100,
|
63
|
+
/** @scratch /panels/map/3
|
64
|
+
* exclude:: exclude this array of regions. For example [`US',`BR',`IN']
|
65
|
+
*/
|
59
66
|
exclude : [],
|
67
|
+
/** @scratch /panels/map/3
|
68
|
+
* spyable:: Setting spyable to false disables the inspect icon.
|
69
|
+
*/
|
60
70
|
spyable : true,
|
61
|
-
|
71
|
+
/** @scratch /panels/map/5
|
72
|
+
* ==== Queries
|
73
|
+
* queries object:: This object describes the queries to use on this panel.
|
74
|
+
* queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+
|
75
|
+
* queries.ids::: In +selected+ mode, which query ids are selected.
|
76
|
+
*/
|
77
|
+
queries : {
|
78
|
+
mode : 'all',
|
79
|
+
ids : []
|
80
|
+
}
|
62
81
|
};
|
63
82
|
_.defaults($scope.panel,_d);
|
64
83
|
|
@@ -1,4 +1,7 @@
|
|
1
1
|
<div ng-controller='pie' ng-init="init()">
|
2
|
+
<style>
|
3
|
+
.pieLabel { pointer-events: none }
|
4
|
+
</style>
|
2
5
|
<div ng-show="panel.legend == 'above'" ng-repeat="query in legend" style="float:left;padding-left: 10px;">
|
3
6
|
<span ng-show="panel.chart != 'none'"><i class="icon-circle" ng-style="{color:query.color}"></i></span><span class="small"> {{query.label}} ({{query.data[0][1]}}) </span></span>
|
4
7
|
</div><br>
|
@@ -1,21 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
* labels :: Label the slices of the pie?
|
14
|
-
* mode :: 'terms' or 'goal'
|
15
|
-
* default_field :: LOL wat? A dumb fail over field if for some reason the query object
|
16
|
-
doesn't have a field
|
17
|
-
* spyable :: Show the 'eye' icon that displays the last ES query for this panel
|
18
|
-
*/
|
1
|
+
/** @scratch /panels/5
|
2
|
+
* include::panels/pie.asciidoc[]
|
3
|
+
*/
|
4
|
+
|
5
|
+
/** @scratch /panels/pie/0
|
6
|
+
* == Pie
|
7
|
+
* Status: *Deprecated*
|
8
|
+
*
|
9
|
+
* The pie panel has been largely replaced by the +terms+ panel. It exists for backwards compatibility
|
10
|
+
* for now, but will be removed in a future release
|
11
|
+
*
|
12
|
+
*/
|
19
13
|
define([
|
20
14
|
'angular',
|
21
15
|
'app',
|
@@ -51,20 +45,63 @@ define([
|
|
51
45
|
|
52
46
|
// Set and populate defaults
|
53
47
|
var _d = {
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
48
|
+
/** @scratch /panels/pie/3
|
49
|
+
* === Parameters
|
50
|
+
*
|
51
|
+
* mode:: terms or goal. Terms mode finds the top N most popular terms, Goal mode display
|
52
|
+
* progress towards a fix goal in terms of documents matched
|
53
|
+
*/
|
54
|
+
mode : "terms",
|
55
|
+
/** @scratch /panels/pie/3
|
56
|
+
* size:: The max number of results to display in +terms+ mode.
|
57
|
+
*/
|
59
58
|
size : 10,
|
59
|
+
/** @scratch /panels/pie/3
|
60
|
+
* exclude:: Exclude these terms in terms mode
|
61
|
+
*/
|
60
62
|
exclude : [],
|
63
|
+
/** @scratch /panels/pie/3
|
64
|
+
* donut:: Draw a hole in the middle of the pie, creating a tasty donut.
|
65
|
+
*/
|
61
66
|
donut : false,
|
67
|
+
/** @scratch /panels/pie/3
|
68
|
+
* tilt:: Tilt the pie back into an oval shape
|
69
|
+
*/
|
62
70
|
tilt : false,
|
71
|
+
/** @scratch /panels/pie/3
|
72
|
+
* legend:: The location of the legend, above, below or none
|
73
|
+
*/
|
63
74
|
legend : "above",
|
75
|
+
/** @scratch /panels/pie/3
|
76
|
+
* labels:: Set to false to disable drawing labels inside the pie slices
|
77
|
+
*/
|
64
78
|
labels : true,
|
65
|
-
|
66
|
-
|
79
|
+
/** @scratch /panels/pie/3
|
80
|
+
* spyable:: Set to false to disable the inspect function.
|
81
|
+
*/
|
67
82
|
spyable : true,
|
83
|
+
/** @scratch /panels/pie/3
|
84
|
+
* ==== Query
|
85
|
+
*
|
86
|
+
* query object:: This confusingly named object has properties to set the terms mode field,
|
87
|
+
* and the fixed goal for the goal mode
|
88
|
+
* query.field::: the field to facet on in terms mode
|
89
|
+
* query.goal::: the fixed goal for goal mode
|
90
|
+
*/
|
91
|
+
query : { field:"_type", goal: 100},
|
92
|
+
/** @scratch /panels/pie/5
|
93
|
+
* ==== Queries
|
94
|
+
*
|
95
|
+
* queries object:: This object describes the queries to use on this panel.
|
96
|
+
* queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+
|
97
|
+
* queries.ids::: In +selected+ mode, which query ids are selected.
|
98
|
+
*/
|
99
|
+
queries : {
|
100
|
+
mode : 'all',
|
101
|
+
ids : []
|
102
|
+
},
|
103
|
+
default_field : '_type',
|
104
|
+
|
68
105
|
};
|
69
106
|
_.defaults($scope.panel,_d);
|
70
107
|
|
@@ -1,32 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Set to 0 and you'll get something like a scatter plot
|
14
|
-
* timezone :: This isn't totally functional yet. Currently only supports browser and utc.
|
15
|
-
browser will adjust the x-axis labels to match the timezone of the user's
|
16
|
-
browser
|
17
|
-
* spyable :: Dislay the 'eye' icon that show the last elasticsearch query
|
18
|
-
* zoomlinks :: Show the zoom links?
|
19
|
-
* bars :: Show bars in the chart
|
20
|
-
* stack :: Stack multiple queries. This generally a crappy way to represent things.
|
21
|
-
You probably should just use a line chart without stacking
|
22
|
-
* points :: Should circles at the data points on the chart
|
23
|
-
* lines :: Line chart? Sweet.
|
24
|
-
* legend :: Show the legend?
|
25
|
-
* x-axis :: Show x-axis labels and grid lines
|
26
|
-
* y-axis :: Show y-axis labels and grid lines
|
27
|
-
* interactive :: Allow drag to select time range
|
28
|
-
|
29
|
-
*/
|
1
|
+
/** @scratch /panels/5
|
2
|
+
* include::panels/sparklines.asciidoc[]
|
3
|
+
*/
|
4
|
+
|
5
|
+
/** @scratch /panels/sparklines/0
|
6
|
+
* == Sparklines
|
7
|
+
* Status: *Experimental*
|
8
|
+
*
|
9
|
+
* The sparklines panel shows tiny time charts. The purpose of these is not to give an exact value,
|
10
|
+
* but rather to show the shape of the time series in a compact manner
|
11
|
+
*
|
12
|
+
*/
|
30
13
|
define([
|
31
14
|
'angular',
|
32
15
|
'app',
|
@@ -70,15 +53,39 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
|
|
70
53
|
|
71
54
|
// Set and populate defaults
|
72
55
|
var _d = {
|
56
|
+
/** @scratch /panels/sparklines/3
|
57
|
+
* === Parameters
|
58
|
+
* mode:: Value to use for the y-axis. For all modes other than count, +value_field+ must be
|
59
|
+
* defined. Possible values: count, mean, max, min, total.
|
60
|
+
*/
|
73
61
|
mode : 'count',
|
62
|
+
/** @scratch /panels/sparklines/3
|
63
|
+
* time_field:: x-axis field. This must be defined as a date type in Elasticsearch.
|
64
|
+
*/
|
74
65
|
time_field : '@timestamp',
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
},
|
66
|
+
/** @scratch /panels/sparklines/3
|
67
|
+
* value_field:: y-axis field if +mode+ is set to mean, max, min or total. Must be numeric.
|
68
|
+
*/
|
79
69
|
value_field : null,
|
70
|
+
/** @scratch /panels/sparklines/3
|
71
|
+
* interval:: Sparkline intervals are computed automatically as long as there is a time filter
|
72
|
+
* present. In the absence of a time filter, use this interval.
|
73
|
+
*/
|
80
74
|
interval : '5m',
|
81
|
-
|
75
|
+
/** @scratch /panels/sparklines/3
|
76
|
+
* spyable:: Show inspect icon
|
77
|
+
*/
|
78
|
+
spyable : true,
|
79
|
+
/** @scratch /panels/sparklines/5
|
80
|
+
* ==== Queries
|
81
|
+
* queries object:: This object describes the queries to use on this panel.
|
82
|
+
* queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+
|
83
|
+
* queries.ids::: In +selected+ mode, which query ids are selected.
|
84
|
+
*/
|
85
|
+
queries : {
|
86
|
+
mode : 'all',
|
87
|
+
ids : []
|
88
|
+
},
|
82
89
|
};
|
83
90
|
|
84
91
|
_.defaults($scope.panel,_d);
|
@@ -332,7 +339,7 @@ function (angular, app, $, _, kbn, moment, timeSeries) {
|
|
332
339
|
max: _.isUndefined(scope.series.range.to) ? null : scope.series.range.to.getTime()
|
333
340
|
},
|
334
341
|
grid: {
|
335
|
-
hoverable:
|
342
|
+
hoverable: false,
|
336
343
|
show: false
|
337
344
|
}
|
338
345
|
};
|
@@ -42,7 +42,7 @@
|
|
42
42
|
<select class="input-small" ng-model="panel.style['font-size']" ng-options="f for f in ['7pt','8pt','9pt','10pt','12pt','14pt','16pt','18pt','20pt','24pt','28pt','32pt','36pt','42pt','48pt','52pt','60pt','72pt']"></select></span>
|
43
43
|
</div>
|
44
44
|
<div class="span2">
|
45
|
-
<h6>Trim Factor <tip>Trim fields to this long divided by # of rows
|
46
|
-
<input type="number" class="input-small" ng-model="panel.trimFactor">
|
45
|
+
<h6>Trim Factor <tip>Trim fields to this long divided by # of rows. Requires data refresh.</tip></h6>
|
46
|
+
<input type="number" class="input-small" ng-model="panel.trimFactor" ng-change="set_refresh(true)">
|
47
47
|
</div>
|
48
48
|
</div>
|
@@ -8,24 +8,29 @@
|
|
8
8
|
</style>
|
9
9
|
|
10
10
|
<div class="row-fluid">
|
11
|
-
<div ng-class="{'span3':panel.field_list}" ng-
|
11
|
+
<div bindonce ng-class="{'span3':panel.field_list}" ng-if="panel.field_list">
|
12
12
|
<div class="sidebar-nav">
|
13
13
|
<strong>Fields <i class=" icon-chevron-sign-left pointer " ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Hide field list'" ng-show="panel.field_list"></i></strong><p>
|
14
14
|
<div class="small">
|
15
|
-
<span class="link" ng-click="panel.all_fields = true;" ng-class="{strong:panel.all_fields}">
|
16
|
-
|
15
|
+
<span class="link" ng-click="panel.all_fields = true;" ng-class="{strong:panel.all_fields}">
|
16
|
+
All ({{fields.list.length}})</span><br>
|
17
|
+
<span class="link" ng-click="panel.all_fields = false;" ng-class="{strong:!panel.all_fields}">
|
18
|
+
Current ({{current_fields.length || 0}})</span>
|
19
|
+
|
17
20
|
</div>
|
18
21
|
<div><input type="text" class="input-medium" placeholder="Type to filter..." ng-model="fieldFilter"></div>
|
19
22
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<
|
24
|
-
<a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: _.contains(panel.fields,field)}">{{field}}</a>
|
23
|
+
<ul class="unstyled" style="{{panel.overflow}}:{{panel.height || row.height}};overflow-y:auto;overflow-x:hidden;" ng-if="panel.all_fields">
|
24
|
+
<li ng-style="panel.style" ng-repeat="field in fields.list|filter:fieldFilter|orderBy:identity">
|
25
|
+
<i class="pointer" ng-class="{'icon-check': columns[field],'icon-check-empty': _.isUndefined(columns[field])}" ng-click="toggle_field(field)"></i>
|
26
|
+
<a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: columns[field]}" bo-text="field"></a>
|
25
27
|
</li>
|
26
|
-
|
27
|
-
|
28
|
-
|
28
|
+
</ul>
|
29
|
+
|
30
|
+
<ul class="unstyled" style="{{panel.overflow}}:{{panel.height || row.height}};overflow-y:auto;overflow-x:hidden;" ng-if="!panel.all_fields">
|
31
|
+
<li ng-style="panel.style" ng-repeat="field in current_fields|filter:fieldFilter|orderBy:identity">
|
32
|
+
<i class="pointer" ng-class="{'icon-check': columns[field],'icon-check-empty': _.isUndefined(columns[field])}" ng-click="toggle_field(field)"></i>
|
33
|
+
<a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: columns[field]}" bo-text="field"></a>
|
29
34
|
</li>
|
30
35
|
</ul>
|
31
36
|
|
@@ -61,12 +66,12 @@
|
|
61
66
|
</th>
|
62
67
|
|
63
68
|
</thead>
|
64
|
-
<tbody ng-repeat="event in data| slice:panel.offset:panel.offset+panel.size" ng-class-odd="'odd'">
|
69
|
+
<tbody bindonce ng-repeat="event in data| slice:panel.offset:panel.offset+panel.size" ng-class-odd="'odd'">
|
65
70
|
<tr ng-click="toggle_details(event)" class="pointer">
|
66
|
-
<td ng-
|
67
|
-
<td ng-show="panel.fields.length>0" ng-repeat="field in panel.fields"
|
71
|
+
<td ng-if="panel.fields.length<1" bo-text="event._source|stringify|tableTruncate:panel.trimFactor:1"></td>
|
72
|
+
<td ng-show="panel.fields.length>0" ng-repeat="field in panel.fields" bo-html="(event.kibana.highlight[field]||event.kibana._source[field]) |tableHighlight | tableTruncate:panel.trimFactor:panel.fields.length"></td>
|
68
73
|
</tr>
|
69
|
-
<tr ng-
|
74
|
+
<tr ng-if="event.kibana.details">
|
70
75
|
<td colspan={{panel.fields.length}} ng-switch="event.kibana.view">
|
71
76
|
<span>
|
72
77
|
View:
|
@@ -82,18 +87,18 @@
|
|
82
87
|
<th>Value</th>
|
83
88
|
</thead>
|
84
89
|
<tr ng-repeat="(key,value) in event.kibana._source track by $index" ng-class-odd="'odd'">
|
85
|
-
<td
|
90
|
+
<td bo-text="key"></td>
|
86
91
|
<td style="white-space:nowrap">
|
87
92
|
<i class='icon-search pointer' ng-click="build_search(key,value)" bs-tooltip="'Add filter to match this value'"></i>
|
88
93
|
<i class='icon-ban-circle pointer' ng-click="build_search(key,value,true)" bs-tooltip="'Add filter to NOT match this value'"></i>
|
89
94
|
<i class="pointer icon-th" ng-click="toggle_field(key)" bs-tooltip="'Toggle table column'"></i>
|
90
95
|
</td>
|
91
96
|
<!-- At some point we need to create a more efficient way of applying the filter pipeline -->
|
92
|
-
<td style="white-space:pre-wrap"
|
97
|
+
<td style="white-space:pre-wrap" bo-html="value|noXml|urlLink|stringify"></td>
|
93
98
|
</tr>
|
94
99
|
</table>
|
95
|
-
<pre style="white-space:pre-wrap"
|
96
|
-
<pre
|
100
|
+
<pre style="white-space:pre-wrap" bo-html="without_kibana(event)|tableJson:2" ng-switch-when="json"></pre>
|
101
|
+
<pre bo-html="without_kibana(event)|tableJson:1" ng-switch-when="raw"></pre>
|
97
102
|
</td>
|
98
103
|
</tr>
|
99
104
|
</tbody>
|