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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/kibana-sinatra.gemspec +1 -0
  4. data/lib/kibana/assets/app/app.js +8 -3
  5. data/lib/kibana/assets/app/components/kbn.js +45 -10
  6. data/lib/kibana/assets/app/components/{underscore.extended.js → lodash.extended.js} +2 -4
  7. data/lib/kibana/assets/app/components/require.config.js +5 -6
  8. data/lib/kibana/assets/app/components/settings.js +1 -1
  9. data/lib/kibana/assets/app/controllers/dash.js +10 -5
  10. data/lib/kibana/assets/app/controllers/dashLoader.js +1 -1
  11. data/lib/kibana/assets/app/controllers/pulldown.js +1 -1
  12. data/lib/kibana/assets/app/controllers/row.js +1 -1
  13. data/lib/kibana/assets/app/dashboards/default.json +1 -1
  14. data/lib/kibana/assets/app/dashboards/logstash.js +4 -4
  15. data/lib/kibana/assets/app/dashboards/logstash.json +1 -1
  16. data/lib/kibana/assets/app/directives/addPanel.js +1 -1
  17. data/lib/kibana/assets/app/directives/arrayJoin.js +1 -1
  18. data/lib/kibana/assets/app/directives/configModal.js +23 -5
  19. data/lib/kibana/assets/app/directives/kibanaPanel.js +70 -50
  20. data/lib/kibana/assets/app/directives/kibanaSimplePanel.js +1 -1
  21. data/lib/kibana/assets/app/factories/store.js +59 -0
  22. data/lib/kibana/assets/app/filters/all.js +6 -13
  23. data/lib/kibana/assets/app/panels/bettermap/module.html +5 -0
  24. data/lib/kibana/assets/app/panels/bettermap/module.js +1 -1
  25. data/lib/kibana/assets/app/panels/column/editor.html +1 -1
  26. data/lib/kibana/assets/app/panels/column/module.js +7 -6
  27. data/lib/kibana/assets/app/panels/dashcontrol/module.js +1 -1
  28. data/lib/kibana/assets/app/panels/derivequeries/module.js +1 -1
  29. data/lib/kibana/assets/app/panels/fields/module.js +1 -1
  30. data/lib/kibana/assets/app/panels/filtering/module.html +10 -17
  31. data/lib/kibana/assets/app/panels/filtering/module.js +19 -1
  32. data/lib/kibana/assets/app/panels/histogram/module.html +4 -4
  33. data/lib/kibana/assets/app/panels/histogram/module.js +62 -12
  34. data/lib/kibana/assets/app/panels/histogram/timeSeries.js +6 -3
  35. data/lib/kibana/assets/app/panels/hits/module.js +1 -1
  36. data/lib/kibana/assets/app/panels/map/module.js +1 -1
  37. data/lib/kibana/assets/app/panels/pie/editor.html +1 -1
  38. data/lib/kibana/assets/app/panels/pie/module.js +1 -1
  39. data/lib/kibana/assets/app/panels/query/meta.html +1 -1
  40. data/lib/kibana/assets/app/panels/query/module.html +1 -1
  41. data/lib/kibana/assets/app/panels/query/module.js +2 -7
  42. data/lib/kibana/assets/app/panels/query/query.css +9 -7
  43. data/lib/kibana/assets/app/panels/sparklines/module.js +2 -2
  44. data/lib/kibana/assets/app/panels/sparklines/timeSeries.js +3 -3
  45. data/lib/kibana/assets/app/panels/stats/editor.html +36 -0
  46. data/lib/kibana/assets/app/panels/stats/module.html +15 -0
  47. data/lib/kibana/assets/app/panels/stats/module.js +199 -0
  48. data/lib/kibana/assets/app/panels/table/editor.html +23 -27
  49. data/lib/kibana/assets/app/panels/table/micropanel.html +3 -1
  50. data/lib/kibana/assets/app/panels/table/module.js +7 -1
  51. data/lib/kibana/assets/app/panels/terms/editor.html +16 -3
  52. data/lib/kibana/assets/app/panels/terms/module.html +14 -5
  53. data/lib/kibana/assets/app/panels/terms/module.js +66 -18
  54. data/lib/kibana/assets/app/panels/text/module.js +1 -1
  55. data/lib/kibana/assets/app/panels/timepicker/editor.html +14 -12
  56. data/lib/kibana/assets/app/panels/timepicker/module.html +3 -8
  57. data/lib/kibana/assets/app/panels/timepicker/module.js +1 -1
  58. data/lib/kibana/assets/app/panels/trends/module.js +1 -1
  59. data/lib/kibana/assets/app/partials/dashLoader.html +10 -10
  60. data/lib/kibana/assets/app/partials/dashboard.html +35 -44
  61. data/lib/kibana/assets/app/partials/dasheditor.html +7 -5
  62. data/lib/kibana/assets/app/partials/paneleditor.html +2 -1
  63. data/lib/kibana/assets/app/partials/panelgeneral.html +1 -1
  64. data/lib/kibana/assets/app/partials/roweditor.html +11 -9
  65. data/lib/kibana/assets/app/services/alertSrv.js +1 -1
  66. data/lib/kibana/assets/app/services/dashboard.js +27 -14
  67. data/lib/kibana/assets/app/services/esVersion.js +70 -31
  68. data/lib/kibana/assets/app/services/fields.js +14 -37
  69. data/lib/kibana/assets/app/services/filterSrv.js +7 -11
  70. data/lib/kibana/assets/app/services/kbnIndex.js +24 -15
  71. data/lib/kibana/assets/app/services/panelMove.js +1 -1
  72. data/lib/kibana/assets/app/services/querySrv.js +20 -6
  73. data/lib/kibana/assets/app/services/timer.js +1 -1
  74. data/lib/kibana/assets/css/bootstrap.dark.min.css +1 -1
  75. data/lib/kibana/assets/css/bootstrap.light.min.css +1 -1
  76. data/lib/kibana/assets/img/cubes.png +0 -0
  77. data/lib/kibana/assets/img/light.png +0 -0
  78. data/lib/kibana/assets/index.html +3 -2
  79. data/lib/kibana/assets/vendor/LICENSE.json +90 -0
  80. data/lib/kibana/assets/vendor/angular/angular-cookies.js +185 -0
  81. data/lib/kibana/assets/vendor/angular/angular-dragdrop.js +33 -4
  82. data/lib/kibana/assets/vendor/blob.js +178 -0
  83. data/lib/kibana/assets/vendor/bootstrap/bootstrap.js +6 -1
  84. data/lib/kibana/assets/vendor/bootstrap/less/bak/bootswatch.dark.less +555 -0
  85. data/lib/kibana/assets/vendor/bootstrap/less/bak/variables.dark.less +304 -0
  86. data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.dark.less +349 -327
  87. data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.light.less +590 -7
  88. data/lib/kibana/assets/vendor/bootstrap/less/modals.less +1 -1
  89. data/lib/kibana/assets/vendor/bootstrap/less/overrides.less +191 -75
  90. data/lib/kibana/assets/vendor/bootstrap/less/variables.dark.less +96 -97
  91. data/lib/kibana/assets/vendor/bootstrap/less/variables.light.less +84 -81
  92. data/lib/kibana/assets/vendor/jquery/jquery.flot.events.js +39 -51
  93. data/lib/kibana/assets/vendor/lodash.js +6785 -0
  94. data/lib/kibana/assets/vendor/numeral.js +565 -0
  95. data/lib/kibana/sinatra/version.rb +1 -1
  96. data/lib/kibana/views/config.erb +1 -0
  97. data/test/sinatra_test.rb +2 -2
  98. metadata +30 -4
  99. 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: #222;
14
- @grayDark: #333;
15
- @gray: #555;
16
- @grayLight: #999;
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: #049cdb;
24
- @blueDark: #0064cd;
25
- @green: #46a546;
26
- @red: #9d261d;
27
- @yellow: #ffc40d;
28
- @orange: #f89406;
29
- @pink: #c3325f;
30
- @purple: #7a43b6;
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: #ffffff;
36
- @textColor: @grayDark;
38
+ @bodyBackground: @grayLighter;
39
+ @textColor: #555;
37
40
 
38
41
 
39
42
  // Links
40
43
  // -------------------------
41
- @linkColor: #08c;
42
- @linkColorHover: lighten(@linkColor, 15%);
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: Monaco, Menlo, Consolas, "Courier New", monospace;
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: inherit; // empty to use BS default, @textColor
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: 11px 19px; // 44px
72
+ @paddingLarge: 22px 30px; // 66px
70
73
  @paddingSmall: 2px 10px; // 26px
71
- @paddingMini: 0 6px; // 22px
74
+ @paddingMini: 2px 6px; // 24px
72
75
 
73
- @baseBorderRadius: 4px;
74
- @borderRadiusLarge: 6px;
75
- @borderRadiusSmall: 3px;
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: #f5f5f5; // for hover
85
+ @tableBackgroundHover: #E8F8FD; // for hover
83
86
  @tableBorder: #ddd; // table and cell border
84
87
 
85
88
  // Buttons
86
89
  // -------------------------
87
- @btnBackground: @white;
88
- @btnBackgroundHighlight: darken(@white, 10%);
89
- @btnBorder: #ccc;
90
+ @btnBackground: @grayLighter;
91
+ @btnBackgroundHighlight: darken(@grayLighter, 15%);
92
+ @btnBorder: #bbb;
90
93
 
91
- @btnPrimaryBackground: @linkColor;
92
- @btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%);
94
+ @btnPrimaryBackground: lighten(@blue, 5%);
95
+ @btnPrimaryBackgroundHighlight: darken(@blue, 5%);
93
96
 
94
- @btnInfoBackground: #5bc0de;
95
- @btnInfoBackgroundHighlight: #2f96b4;
97
+ @btnInfoBackground: lighten(@purple, 5%);
98
+ @btnInfoBackgroundHighlight: darken(@purple, 5%);
96
99
 
97
- @btnSuccessBackground: #62c462;
98
- @btnSuccessBackgroundHighlight: #51a351;
100
+ @btnSuccessBackground: lighten(@green, 5%);
101
+ @btnSuccessBackgroundHighlight: darken(@green, 5%);
99
102
 
100
- @btnWarningBackground: lighten(@orange, 15%);
101
- @btnWarningBackgroundHighlight: @orange;
103
+ @btnWarningBackground: lighten(@orange, 5%);
104
+ @btnWarningBackgroundHighlight: darken(@orange, 5%);
102
105
 
103
- @btnDangerBackground: #ee5f5b;
104
- @btnDangerBackgroundHighlight: #bd362f;
106
+ @btnDangerBackground: lighten(@red, 5%);
107
+ @btnDangerBackgroundHighlight: darken(@red, 5%);
105
108
 
106
- @btnInverseBackground: #444;
107
- @btnInverseBackgroundHighlight: @grayDarker;
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: #ccc;
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: @grayDarker;
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: @linkColor;
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: @grayLight;
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: #f5f5f5;
178
+ @wellBackground: @grayLighter;
177
179
 
178
180
 
179
181
  // Navbar
180
182
  // -------------------------
181
183
  @navbarCollapseWidth: 979px;
182
184
  @navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
183
- @navbarHeight: 40px;
185
+
186
+ @navbarHeight: 50px;
187
+ @navbarBackgroundHighlight: @grayDarker;
184
188
  @navbarBackground: @grayDarker;
185
- @navbarBackgroundHighlight: @grayDark;
186
- @navbarBorder: darken(@navbarBackground, 12%);
189
+ @navbarBorder: transparent;
187
190
 
188
191
  @navbarText: @white;
189
192
  @navbarLinkColor: @white;
190
- @navbarLinkColorHover: @white;
191
- @navbarLinkColorActive: @navbarLinkColorHover;
192
- @navbarLinkBackgroundHover: @grayDark;
193
- @navbarLinkBackgroundActive: @navbarBackground;
193
+ @navbarLinkColorHover: @gray;
194
+ @navbarLinkColorActive: @white;
195
+ @navbarLinkBackgroundHover: rgba(0, 0, 0, 0.05);
196
+ @navbarLinkBackgroundActive: transparent;
194
197
 
195
- @navbarBrandColor: @grayLighter;
198
+ @navbarBrandColor: @navbarLinkColor;
196
199
 
197
200
  // Inverted navbar
198
- @navbarInverseBackground: #111111;
199
- @navbarInverseBackgroundHighlight: #222222;
200
- @navbarInverseBorder: #252525;
201
+ @navbarInverseBackground: @blue;
202
+ @navbarInverseBackgroundHighlight: @navbarInverseBackground;
203
+ @navbarInverseBorder: transparent;
201
204
 
202
- @navbarInverseText: @grayLight;
203
- @navbarInverseLinkColor: @grayLight;
205
+ @navbarInverseText: @white;
206
+ @navbarInverseLinkColor: @white;
204
207
  @navbarInverseLinkColorHover: @white;
205
208
  @navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
206
- @navbarInverseLinkBackgroundHover: transparent;
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: #ccc;
215
+ @navbarInverseSearchPlaceholderColor: @grayDark;
213
216
 
214
217
  @navbarInverseBrandColor: @navbarInverseLinkColor;
215
218
 
216
219
 
217
220
  // Pagination
218
221
  // -------------------------
219
- @paginationBackground: #fff;
220
- @paginationBorder: #ddd;
221
- @paginationActiveBackground: #f5f5f5;
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: #c09853;
234
- @warningBackground: #fcf8e3;
235
- @warningBorder: darken(spin(@warningBackground, -10), 3%);
236
+ @warningText: lighten(@orange, 10%);
237
+ @warningBackground: @orange;
238
+ @warningBorder: transparent;
236
239
 
237
- @errorText: #b94a48;
238
- @errorBackground: #f2dede;
239
- @errorBorder: darken(spin(@errorBackground, -10), 3%);
240
+ @errorText: lighten(@red, 10%);
241
+ @errorBackground: @red;
242
+ @errorBorder: transparent;
240
243
 
241
- @successText: #468847;
242
- @successBackground: #dff0d8;
243
- @successBorder: darken(spin(@successBackground, -10), 5%);
244
+ @successText: lighten(@green, 10%);
245
+ @successBackground: @green;
246
+ @successBorder: transparent;
244
247
 
245
- @infoText: #3a87ad;
246
- @infoBackground: #d9edf7;
247
- @infoBorder: darken(spin(@infoBackground, -10), 7%);
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: #fff;
258
- @popoverArrowWidth: 10px;
259
- @popoverArrowColor: #fff;
260
- @popoverTitleBackground: darken(@popoverBackground, 3%);
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
- /*if (options.events.clustering) {
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[event.eventType] || !_types[event.eventType].icon) {
317
+ if (_types == null || !_types[eventType] || !_types[eventType].icon) {
324
318
  icon = DEFAULT_ICON;
325
319
  level = 0;
326
320
  } else {
327
- icon = _types[event.eventType].icon;
328
- level = _types[event.eventType].level;
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: cluster[0].description + ", Number of events in the cluster: " + cluster.length
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 - 1].min;
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 - 1].min;
531
+ var leftDiff = events[i - 1].min - events[i].min;
554
532
 
555
533
  density = leftDiff / space;
556
534
 
557
- if (leftDiff > avg * sens && density > 0.05) {
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);