kibana-sinatra 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/kibana-sinatra.gemspec +1 -0
- data/lib/kibana/assets/app/app.js +8 -3
- data/lib/kibana/assets/app/components/kbn.js +45 -10
- data/lib/kibana/assets/app/components/{underscore.extended.js → lodash.extended.js} +2 -4
- data/lib/kibana/assets/app/components/require.config.js +5 -6
- data/lib/kibana/assets/app/components/settings.js +1 -1
- data/lib/kibana/assets/app/controllers/dash.js +10 -5
- data/lib/kibana/assets/app/controllers/dashLoader.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/default.json +1 -1
- data/lib/kibana/assets/app/dashboards/logstash.js +4 -4
- data/lib/kibana/assets/app/dashboards/logstash.json +1 -1
- data/lib/kibana/assets/app/directives/addPanel.js +1 -1
- data/lib/kibana/assets/app/directives/arrayJoin.js +1 -1
- data/lib/kibana/assets/app/directives/configModal.js +23 -5
- data/lib/kibana/assets/app/directives/kibanaPanel.js +70 -50
- data/lib/kibana/assets/app/directives/kibanaSimplePanel.js +1 -1
- data/lib/kibana/assets/app/factories/store.js +59 -0
- data/lib/kibana/assets/app/filters/all.js +6 -13
- data/lib/kibana/assets/app/panels/bettermap/module.html +5 -0
- data/lib/kibana/assets/app/panels/bettermap/module.js +1 -1
- data/lib/kibana/assets/app/panels/column/editor.html +1 -1
- data/lib/kibana/assets/app/panels/column/module.js +7 -6
- data/lib/kibana/assets/app/panels/dashcontrol/module.js +1 -1
- data/lib/kibana/assets/app/panels/derivequeries/module.js +1 -1
- data/lib/kibana/assets/app/panels/fields/module.js +1 -1
- data/lib/kibana/assets/app/panels/filtering/module.html +10 -17
- data/lib/kibana/assets/app/panels/filtering/module.js +19 -1
- data/lib/kibana/assets/app/panels/histogram/module.html +4 -4
- data/lib/kibana/assets/app/panels/histogram/module.js +62 -12
- data/lib/kibana/assets/app/panels/histogram/timeSeries.js +6 -3
- 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/pie/editor.html +1 -1
- data/lib/kibana/assets/app/panels/pie/module.js +1 -1
- data/lib/kibana/assets/app/panels/query/meta.html +1 -1
- data/lib/kibana/assets/app/panels/query/module.html +1 -1
- data/lib/kibana/assets/app/panels/query/module.js +2 -7
- data/lib/kibana/assets/app/panels/query/query.css +9 -7
- data/lib/kibana/assets/app/panels/sparklines/module.js +2 -2
- data/lib/kibana/assets/app/panels/sparklines/timeSeries.js +3 -3
- data/lib/kibana/assets/app/panels/stats/editor.html +36 -0
- data/lib/kibana/assets/app/panels/stats/module.html +15 -0
- data/lib/kibana/assets/app/panels/stats/module.js +199 -0
- data/lib/kibana/assets/app/panels/table/editor.html +23 -27
- data/lib/kibana/assets/app/panels/table/micropanel.html +3 -1
- data/lib/kibana/assets/app/panels/table/module.js +7 -1
- data/lib/kibana/assets/app/panels/terms/editor.html +16 -3
- data/lib/kibana/assets/app/panels/terms/module.html +14 -5
- data/lib/kibana/assets/app/panels/terms/module.js +66 -18
- data/lib/kibana/assets/app/panels/text/module.js +1 -1
- data/lib/kibana/assets/app/panels/timepicker/editor.html +14 -12
- data/lib/kibana/assets/app/panels/timepicker/module.html +3 -8
- data/lib/kibana/assets/app/panels/timepicker/module.js +1 -1
- data/lib/kibana/assets/app/panels/trends/module.js +1 -1
- data/lib/kibana/assets/app/partials/dashLoader.html +10 -10
- data/lib/kibana/assets/app/partials/dashboard.html +35 -44
- data/lib/kibana/assets/app/partials/dasheditor.html +7 -5
- data/lib/kibana/assets/app/partials/paneleditor.html +2 -1
- data/lib/kibana/assets/app/partials/panelgeneral.html +1 -1
- data/lib/kibana/assets/app/partials/roweditor.html +11 -9
- data/lib/kibana/assets/app/services/alertSrv.js +1 -1
- data/lib/kibana/assets/app/services/dashboard.js +27 -14
- data/lib/kibana/assets/app/services/esVersion.js +70 -31
- data/lib/kibana/assets/app/services/fields.js +14 -37
- data/lib/kibana/assets/app/services/filterSrv.js +7 -11
- data/lib/kibana/assets/app/services/kbnIndex.js +24 -15
- data/lib/kibana/assets/app/services/panelMove.js +1 -1
- data/lib/kibana/assets/app/services/querySrv.js +20 -6
- data/lib/kibana/assets/app/services/timer.js +1 -1
- 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/img/cubes.png +0 -0
- data/lib/kibana/assets/img/light.png +0 -0
- data/lib/kibana/assets/index.html +3 -2
- data/lib/kibana/assets/vendor/LICENSE.json +90 -0
- data/lib/kibana/assets/vendor/angular/angular-cookies.js +185 -0
- data/lib/kibana/assets/vendor/angular/angular-dragdrop.js +33 -4
- data/lib/kibana/assets/vendor/blob.js +178 -0
- data/lib/kibana/assets/vendor/bootstrap/bootstrap.js +6 -1
- data/lib/kibana/assets/vendor/bootstrap/less/bak/bootswatch.dark.less +555 -0
- data/lib/kibana/assets/vendor/bootstrap/less/bak/variables.dark.less +304 -0
- data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.dark.less +349 -327
- data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.light.less +590 -7
- data/lib/kibana/assets/vendor/bootstrap/less/modals.less +1 -1
- data/lib/kibana/assets/vendor/bootstrap/less/overrides.less +191 -75
- data/lib/kibana/assets/vendor/bootstrap/less/variables.dark.less +96 -97
- data/lib/kibana/assets/vendor/bootstrap/less/variables.light.less +84 -81
- data/lib/kibana/assets/vendor/jquery/jquery.flot.events.js +39 -51
- data/lib/kibana/assets/vendor/lodash.js +6785 -0
- data/lib/kibana/assets/vendor/numeral.js +565 -0
- data/lib/kibana/sinatra/version.rb +1 -1
- data/lib/kibana/views/config.erb +1 -0
- data/test/sinatra_test.rb +2 -2
- metadata +30 -4
- data/lib/kibana/assets/vendor/underscore.js +0 -1246
@@ -1,4 +1,4 @@
|
|
1
|
-
//
|
1
|
+
// Cosmo 2.3.2
|
2
2
|
// Variables
|
3
3
|
// --------------------------------------------------
|
4
4
|
|
@@ -10,43 +10,46 @@
|
|
10
10
|
// Grays
|
11
11
|
// -------------------------
|
12
12
|
@black: #000;
|
13
|
-
@grayDarker: #
|
14
|
-
@grayDark: #
|
15
|
-
@gray: #
|
16
|
-
@grayLight: #
|
13
|
+
@grayDarker: #080808;
|
14
|
+
@grayDark: #999;
|
15
|
+
@gray: #bbb;
|
16
|
+
@grayLight: #dfdfdf;
|
17
17
|
@grayLighter: #eee;
|
18
18
|
@white: #fff;
|
19
19
|
|
20
20
|
|
21
21
|
// Accent colors
|
22
22
|
// -------------------------
|
23
|
-
@blue: #
|
24
|
-
@blueDark: #
|
25
|
-
@green: #
|
26
|
-
@red: #
|
27
|
-
@yellow: #
|
28
|
-
@orange: #
|
29
|
-
@pink: #
|
30
|
-
@purple: #
|
31
|
-
|
23
|
+
@blue: #007FFF;
|
24
|
+
@blueDark: #1F26B6;
|
25
|
+
@green: #3FB618;
|
26
|
+
@red: #FF0039;
|
27
|
+
@yellow: #FFA500;
|
28
|
+
@orange: #FF7518;
|
29
|
+
@pink: #E671B8;
|
30
|
+
@purple: #9954BB;
|
31
|
+
|
32
|
+
// Kibana Variables
|
33
|
+
// -------------------------
|
34
|
+
@kibanaPanelBackground: @white;
|
32
35
|
|
33
36
|
// Scaffolding
|
34
37
|
// -------------------------
|
35
|
-
@bodyBackground:
|
36
|
-
@textColor:
|
38
|
+
@bodyBackground: @grayLighter;
|
39
|
+
@textColor: #555;
|
37
40
|
|
38
41
|
|
39
42
|
// Links
|
40
43
|
// -------------------------
|
41
|
-
@linkColor:
|
42
|
-
@linkColorHover:
|
44
|
+
@linkColor: @blue;
|
45
|
+
@linkColorHover: darken(@linkColor, 10%);
|
43
46
|
|
44
47
|
|
45
48
|
// Typography
|
46
49
|
// -------------------------
|
47
50
|
@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
48
51
|
@serifFontFamily: Georgia, "Times New Roman", Times, serif;
|
49
|
-
@monoFontFamily:
|
52
|
+
@monoFontFamily: Menlo, Monaco, Consolas, "Courier New", monospace;
|
50
53
|
|
51
54
|
@baseFontSize: 14px;
|
52
55
|
@baseFontFamily: @sansFontFamily;
|
@@ -55,7 +58,7 @@
|
|
55
58
|
|
56
59
|
@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
|
57
60
|
@headingsFontWeight: bold; // instead of browser default, bold
|
58
|
-
@headingsColor:
|
61
|
+
@headingsColor: @grayDarker; // empty to use BS default, @textColor
|
59
62
|
|
60
63
|
|
61
64
|
// Component sizing
|
@@ -66,57 +69,56 @@
|
|
66
69
|
@fontSizeSmall: @baseFontSize * 0.85; // ~12px
|
67
70
|
@fontSizeMini: @baseFontSize * 0.75; // ~11px
|
68
71
|
|
69
|
-
@paddingLarge:
|
72
|
+
@paddingLarge: 22px 30px; // 66px
|
70
73
|
@paddingSmall: 2px 10px; // 26px
|
71
|
-
@paddingMini:
|
74
|
+
@paddingMini: 2px 6px; // 24px
|
72
75
|
|
73
|
-
@baseBorderRadius:
|
74
|
-
@borderRadiusLarge:
|
75
|
-
@borderRadiusSmall:
|
76
|
+
@baseBorderRadius: 3px;
|
77
|
+
@borderRadiusLarge: 4px;
|
78
|
+
@borderRadiusSmall: 2px;
|
76
79
|
|
77
80
|
|
78
81
|
// Tables
|
79
82
|
// -------------------------
|
80
83
|
@tableBackground: transparent; // overall background-color
|
81
84
|
@tableBackgroundAccent: #f9f9f9; // for striping
|
82
|
-
@tableBackgroundHover: #
|
85
|
+
@tableBackgroundHover: #E8F8FD; // for hover
|
83
86
|
@tableBorder: #ddd; // table and cell border
|
84
87
|
|
85
88
|
// Buttons
|
86
89
|
// -------------------------
|
87
|
-
@btnBackground: @
|
88
|
-
@btnBackgroundHighlight: darken(@
|
89
|
-
@btnBorder: #
|
90
|
+
@btnBackground: @grayLighter;
|
91
|
+
@btnBackgroundHighlight: darken(@grayLighter, 15%);
|
92
|
+
@btnBorder: #bbb;
|
90
93
|
|
91
|
-
@btnPrimaryBackground: @
|
92
|
-
@btnPrimaryBackgroundHighlight:
|
94
|
+
@btnPrimaryBackground: lighten(@blue, 5%);
|
95
|
+
@btnPrimaryBackgroundHighlight: darken(@blue, 5%);
|
93
96
|
|
94
|
-
@btnInfoBackground:
|
95
|
-
@btnInfoBackgroundHighlight:
|
97
|
+
@btnInfoBackground: lighten(@purple, 5%);
|
98
|
+
@btnInfoBackgroundHighlight: darken(@purple, 5%);
|
96
99
|
|
97
|
-
@btnSuccessBackground:
|
98
|
-
@btnSuccessBackgroundHighlight:
|
100
|
+
@btnSuccessBackground: lighten(@green, 5%);
|
101
|
+
@btnSuccessBackgroundHighlight: darken(@green, 5%);
|
99
102
|
|
100
|
-
@btnWarningBackground: lighten(@orange,
|
101
|
-
@btnWarningBackgroundHighlight: @orange;
|
103
|
+
@btnWarningBackground: lighten(@orange, 5%);
|
104
|
+
@btnWarningBackgroundHighlight: darken(@orange, 5%);
|
102
105
|
|
103
|
-
@btnDangerBackground:
|
104
|
-
@btnDangerBackgroundHighlight:
|
106
|
+
@btnDangerBackground: lighten(@red, 5%);
|
107
|
+
@btnDangerBackgroundHighlight: darken(@red, 5%);
|
105
108
|
|
106
|
-
@btnInverseBackground:
|
107
|
-
@btnInverseBackgroundHighlight: @
|
109
|
+
@btnInverseBackground: lighten(@black, 5%);
|
110
|
+
@btnInverseBackgroundHighlight: darken(@black, 5%);
|
108
111
|
|
109
112
|
|
110
113
|
// Forms
|
111
114
|
// -------------------------
|
112
115
|
@inputBackground: @white;
|
113
|
-
@inputBorder:
|
116
|
+
@inputBorder: @gray;
|
114
117
|
@inputBorderRadius: @baseBorderRadius;
|
115
118
|
@inputDisabledBackground: @grayLighter;
|
116
119
|
@formActionsBackground: #f5f5f5;
|
117
120
|
@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
|
118
|
-
@inputText:
|
119
|
-
|
121
|
+
@inputText: #020202;
|
120
122
|
|
121
123
|
// Dropdowns
|
122
124
|
// -------------------------
|
@@ -129,7 +131,7 @@
|
|
129
131
|
@dropdownLinkColorHover: @white;
|
130
132
|
@dropdownLinkColorActive: @white;
|
131
133
|
|
132
|
-
@dropdownLinkBackgroundActive: @
|
134
|
+
@dropdownLinkBackgroundActive: @blue;
|
133
135
|
@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive;
|
134
136
|
|
135
137
|
|
@@ -158,7 +160,7 @@
|
|
158
160
|
|
159
161
|
// Input placeholder text color
|
160
162
|
// -------------------------
|
161
|
-
@placeholderText: @
|
163
|
+
@placeholderText: @gray;
|
162
164
|
|
163
165
|
|
164
166
|
// Hr border color
|
@@ -173,52 +175,53 @@
|
|
173
175
|
|
174
176
|
// Wells
|
175
177
|
// -------------------------
|
176
|
-
@wellBackground:
|
178
|
+
@wellBackground: @grayLighter;
|
177
179
|
|
178
180
|
|
179
181
|
// Navbar
|
180
182
|
// -------------------------
|
181
183
|
@navbarCollapseWidth: 979px;
|
182
184
|
@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
|
183
|
-
|
185
|
+
|
186
|
+
@navbarHeight: 50px;
|
187
|
+
@navbarBackgroundHighlight: @grayDarker;
|
184
188
|
@navbarBackground: @grayDarker;
|
185
|
-
@
|
186
|
-
@navbarBorder: darken(@navbarBackground, 12%);
|
189
|
+
@navbarBorder: transparent;
|
187
190
|
|
188
191
|
@navbarText: @white;
|
189
192
|
@navbarLinkColor: @white;
|
190
|
-
@navbarLinkColorHover: @
|
191
|
-
@navbarLinkColorActive: @
|
192
|
-
@navbarLinkBackgroundHover:
|
193
|
-
@navbarLinkBackgroundActive:
|
193
|
+
@navbarLinkColorHover: @gray;
|
194
|
+
@navbarLinkColorActive: @white;
|
195
|
+
@navbarLinkBackgroundHover: rgba(0, 0, 0, 0.05);
|
196
|
+
@navbarLinkBackgroundActive: transparent;
|
194
197
|
|
195
|
-
@navbarBrandColor: @
|
198
|
+
@navbarBrandColor: @navbarLinkColor;
|
196
199
|
|
197
200
|
// Inverted navbar
|
198
|
-
@navbarInverseBackground:
|
199
|
-
@navbarInverseBackgroundHighlight:
|
200
|
-
@navbarInverseBorder:
|
201
|
+
@navbarInverseBackground: @blue;
|
202
|
+
@navbarInverseBackgroundHighlight: @navbarInverseBackground;
|
203
|
+
@navbarInverseBorder: transparent;
|
201
204
|
|
202
|
-
@navbarInverseText: @
|
203
|
-
@navbarInverseLinkColor: @
|
205
|
+
@navbarInverseText: @white;
|
206
|
+
@navbarInverseLinkColor: @white;
|
204
207
|
@navbarInverseLinkColorHover: @white;
|
205
208
|
@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
|
206
|
-
@navbarInverseLinkBackgroundHover:
|
209
|
+
@navbarInverseLinkBackgroundHover: rgba(0, 0, 0, 0.05);
|
207
210
|
@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
|
208
211
|
|
209
212
|
@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
|
210
213
|
@navbarInverseSearchBackgroundFocus: @white;
|
211
214
|
@navbarInverseSearchBorder: @navbarInverseBackground;
|
212
|
-
@navbarInverseSearchPlaceholderColor:
|
215
|
+
@navbarInverseSearchPlaceholderColor: @grayDark;
|
213
216
|
|
214
217
|
@navbarInverseBrandColor: @navbarInverseLinkColor;
|
215
218
|
|
216
219
|
|
217
220
|
// Pagination
|
218
221
|
// -------------------------
|
219
|
-
@paginationBackground:
|
220
|
-
@paginationBorder:
|
221
|
-
@paginationActiveBackground:
|
222
|
+
@paginationBackground: @grayLight;
|
223
|
+
@paginationBorder: transparent;
|
224
|
+
@paginationActiveBackground: @blue;
|
222
225
|
|
223
226
|
|
224
227
|
// Hero unit
|
@@ -230,21 +233,21 @@
|
|
230
233
|
|
231
234
|
// Form states and alerts
|
232
235
|
// -------------------------
|
233
|
-
@warningText:
|
234
|
-
@warningBackground:
|
235
|
-
@warningBorder:
|
236
|
+
@warningText: lighten(@orange, 10%);
|
237
|
+
@warningBackground: @orange;
|
238
|
+
@warningBorder: transparent;
|
236
239
|
|
237
|
-
@errorText:
|
238
|
-
@errorBackground:
|
239
|
-
@errorBorder:
|
240
|
+
@errorText: lighten(@red, 10%);
|
241
|
+
@errorBackground: @red;
|
242
|
+
@errorBorder: transparent;
|
240
243
|
|
241
|
-
@successText:
|
242
|
-
@successBackground:
|
243
|
-
@successBorder:
|
244
|
+
@successText: lighten(@green, 10%);
|
245
|
+
@successBackground: @green;
|
246
|
+
@successBorder: transparent;
|
244
247
|
|
245
|
-
@infoText:
|
246
|
-
@infoBackground:
|
247
|
-
@infoBorder:
|
248
|
+
@infoText: lighten(@purple,10%);
|
249
|
+
@infoBackground: @purple;
|
250
|
+
@infoBorder: transparent;
|
248
251
|
|
249
252
|
|
250
253
|
// Tooltips and popovers
|
@@ -254,10 +257,10 @@
|
|
254
257
|
@tooltipArrowWidth: 5px;
|
255
258
|
@tooltipArrowColor: @tooltipBackground;
|
256
259
|
|
257
|
-
@popoverBackground:
|
258
|
-
@popoverArrowWidth:
|
259
|
-
@popoverArrowColor:
|
260
|
-
@popoverTitleBackground:
|
260
|
+
@popoverBackground: @white;
|
261
|
+
@popoverArrowWidth: 15px;
|
262
|
+
@popoverArrowColor: @white;
|
263
|
+
@popoverTitleBackground: @white;
|
261
264
|
|
262
265
|
// Special enhancement for popovers
|
263
266
|
@popoverArrowOuterWidth: @popoverArrowWidth + 1;
|
@@ -107,12 +107,12 @@
|
|
107
107
|
}
|
108
108
|
|
109
109
|
} else {
|
110
|
-
|
110
|
+
if (options.events.clustering) {
|
111
111
|
_clearEvents();
|
112
112
|
var ed = _clusterEvents(options.events.types, options.events.data, xaxis.max - xaxis.min);
|
113
113
|
_types = ed.types;
|
114
114
|
_setupEvents(ed.data);
|
115
|
-
}
|
115
|
+
}
|
116
116
|
_updateEvents();
|
117
117
|
}
|
118
118
|
}
|
@@ -177,19 +177,7 @@
|
|
177
177
|
};
|
178
178
|
|
179
179
|
var _showTooltip = function(x, y, event){
|
180
|
-
|
181
|
-
var tooltip = $('<div id="tooltip" class=""></div>').appendTo('body').fadeIn(200);
|
182
|
-
|
183
|
-
$('<div id="title">' + event.title + '</div>').appendTo(tooltip);
|
184
|
-
$('<div id="type">Type: ' + event.eventType + '</div>').appendTo(tooltip);
|
185
|
-
$('<div id="description">' + event.description + '</div>').appendTo(tooltip);
|
186
|
-
|
187
|
-
tooltip.css({
|
188
|
-
top: y - tooltip.height() - 5,
|
189
|
-
left: x
|
190
|
-
});
|
191
|
-
console.log(tooltip);
|
192
|
-
*/
|
180
|
+
$('#tooltip').remove();
|
193
181
|
|
194
182
|
// @rashidkpc - hack to work with our normal tooltip placer
|
195
183
|
var $tooltip = $('<div id="tooltip">');
|
@@ -313,19 +301,25 @@
|
|
313
301
|
//var po = plot.pointOffset({ x: 450, y: 1});
|
314
302
|
var container = plot.getPlaceholder(), o = plot.getPlotOffset(), yaxis,
|
315
303
|
xaxis = plot.getXAxes()[plot.getOptions().events.xaxis - 1], axes = plot.getAxes();
|
316
|
-
var top, left, div, icon, level, drawableEvent;
|
304
|
+
var top, left, div, icon, level, drawableEvent, eventType;
|
317
305
|
|
318
306
|
// determine the y axis used
|
319
307
|
if (axes.yaxis && axes.yaxis.used) yaxis = axes.yaxis;
|
320
308
|
if (axes.yaxis2 && axes.yaxis2.used) yaxis = axes.yaxis2;
|
321
309
|
|
310
|
+
if(event.eventType.split(',')[1] === 'cluster') {
|
311
|
+
eventType = event.eventType.split(',')[0]
|
312
|
+
} else {
|
313
|
+
eventType = event.eventType;
|
314
|
+
}
|
315
|
+
|
322
316
|
// use the default icon and level
|
323
|
-
if (_types == null || !_types[
|
317
|
+
if (_types == null || !_types[eventType] || !_types[eventType].icon) {
|
324
318
|
icon = DEFAULT_ICON;
|
325
319
|
level = 0;
|
326
320
|
} else {
|
327
|
-
icon = _types[
|
328
|
-
level = _types[
|
321
|
+
icon = _types[eventType].icon;
|
322
|
+
level = _types[eventType].level;
|
329
323
|
}
|
330
324
|
|
331
325
|
div = $('<i style="position:absolute" class="'+icon.icon+'"></i>').appendTo(container);
|
@@ -333,6 +327,7 @@
|
|
333
327
|
top = o.top + plot.height() - icon.size + 1;
|
334
328
|
left = xaxis.p2c(event.min) + o.left - icon.size / 2;
|
335
329
|
|
330
|
+
// Positions the marker
|
336
331
|
div.css({
|
337
332
|
left: left + 'px',
|
338
333
|
top: top,
|
@@ -348,35 +343,7 @@
|
|
348
343
|
// mouseenter
|
349
344
|
function(){
|
350
345
|
var pos = $(this).offset();
|
351
|
-
|
352
|
-
/*// check if the mouse is not already over the event
|
353
|
-
if ($(this).data("bouncing") == false || $(this).data("bouncing") == undefined) {
|
354
|
-
|
355
|
-
// check the div is not already bouncing
|
356
|
-
if ($(this).position().top == $(this).data("top")) {
|
357
|
-
$(this).effect("bounce", {
|
358
|
-
times: 3
|
359
|
-
}, 300);
|
360
|
-
}
|
361
|
-
|
362
|
-
$(this).data("bouncing", true);
|
363
|
-
_showTooltip(pos.left + $(this).width() / 2, pos.top, $(this).data("event"));
|
364
|
-
}*/
|
365
|
-
|
366
346
|
_showTooltip(pos.left + $(this).width() / 2, pos.top, $(this).data("event"));
|
367
|
-
|
368
|
-
if (event.min != event.max) {
|
369
|
-
plot.setSelection({
|
370
|
-
xaxis: {
|
371
|
-
from: event.min,
|
372
|
-
to: event.max
|
373
|
-
},
|
374
|
-
yaxis: {
|
375
|
-
from: yaxis.min,
|
376
|
-
to: yaxis.max
|
377
|
-
}
|
378
|
-
});
|
379
|
-
}
|
380
347
|
},
|
381
348
|
// mouseleave
|
382
349
|
function(){
|
@@ -480,12 +447,21 @@
|
|
480
447
|
// each cluser of each event type
|
481
448
|
$.each(eventType, function(index, cluster) {
|
482
449
|
|
450
|
+
var description = "<strong>"+(cluster.length>5?"Top 5 of ":"") + cluster.length + " events</strong>";
|
451
|
+
$.each(cluster,function(i,c) {
|
452
|
+
if(i > 5) {
|
453
|
+
return;
|
454
|
+
}
|
455
|
+
description += '<div style="'+(i%2?'background-color:#444;':'')+
|
456
|
+
'" style="padding-bottom:0px">'+c.description + "</div>";
|
457
|
+
});
|
458
|
+
|
483
459
|
var newEvent = {
|
484
460
|
min: cluster[0].min,
|
485
461
|
max: cluster[cluster.length - 1].min, //TODO: needs to be max of end event if it exists
|
486
462
|
eventType: cluster[0].eventType + ",cluster",
|
487
463
|
title: "Cluster of: " + cluster[0].title,
|
488
|
-
description:
|
464
|
+
description: description //+ ", Number of events in the cluster: " + cluster.length
|
489
465
|
};
|
490
466
|
|
491
467
|
newEvents.push(newEvent);
|
@@ -539,9 +515,11 @@
|
|
539
515
|
var _varianceAlgorithm = function(events, sens, space) {
|
540
516
|
var cluster, clusters = [], sum = 0, avg, density;
|
541
517
|
|
518
|
+
events.sort(sortEvents);
|
519
|
+
|
542
520
|
// find the average x delta
|
543
521
|
for (var i = 1; i < events.length - 1; i++) {
|
544
|
-
sum += events[i].min - events[i
|
522
|
+
sum += events[i].min - events[i-1].min;
|
545
523
|
}
|
546
524
|
avg = sum / (events.length - 2);
|
547
525
|
|
@@ -550,11 +528,13 @@
|
|
550
528
|
|
551
529
|
// middle points
|
552
530
|
for (var i = 1; i < events.length; i++) {
|
553
|
-
var leftDiff = events[i].min - events[i
|
531
|
+
var leftDiff = events[i - 1].min - events[i].min;
|
554
532
|
|
555
533
|
density = leftDiff / space;
|
556
534
|
|
557
|
-
|
535
|
+
var avgSens = avg * sens
|
536
|
+
|
537
|
+
if (leftDiff > avgSens && density > 0.05) {
|
558
538
|
clusters.push(cluster);
|
559
539
|
cluster = [ events[i] ];
|
560
540
|
} else {
|
@@ -638,4 +618,12 @@
|
|
638
618
|
if (ao.min < bo.min) return -1;
|
639
619
|
return 0;
|
640
620
|
};
|
621
|
+
|
622
|
+
function sortEvents(a,b) {
|
623
|
+
if (a.min < b.min) return 1;
|
624
|
+
if (a.min > b.min) return -1;
|
625
|
+
return 0;
|
626
|
+
};
|
627
|
+
|
628
|
+
|
641
629
|
})(jQuery);
|