kibana-sinatra 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -2
  3. data/Rakefile +1 -0
  4. data/kibana-sinatra.gemspec +2 -0
  5. data/lib/kibana/assets/app/app.js +0 -0
  6. data/lib/kibana/assets/app/components/extend-jquery.js +0 -0
  7. data/lib/kibana/assets/app/components/kbn.js +132 -2
  8. data/lib/kibana/assets/app/components/require.config.js +0 -0
  9. data/lib/kibana/assets/app/components/settings.js +0 -0
  10. data/lib/kibana/assets/app/components/underscore.extended.js +0 -0
  11. data/lib/kibana/assets/app/controllers/all.js +1 -0
  12. data/lib/kibana/assets/app/controllers/dash.js +0 -0
  13. data/lib/kibana/assets/app/controllers/dashLoader.js +10 -3
  14. data/lib/kibana/assets/app/controllers/pulldown.js +45 -0
  15. data/lib/kibana/assets/app/controllers/row.js +3 -0
  16. data/lib/kibana/assets/app/dashboards/blank.json +0 -0
  17. data/lib/kibana/assets/app/dashboards/default.json +78 -19
  18. data/lib/kibana/assets/app/dashboards/guided.json +60 -52
  19. data/lib/kibana/assets/app/dashboards/logstash.js +6 -49
  20. data/lib/kibana/assets/app/dashboards/logstash.json +104 -95
  21. data/lib/kibana/assets/app/dashboards/noted.json +56 -87
  22. data/lib/kibana/assets/app/directives/addPanel.js +0 -0
  23. data/lib/kibana/assets/app/directives/all.js +1 -0
  24. data/lib/kibana/assets/app/directives/arrayJoin.js +0 -0
  25. data/lib/kibana/assets/app/directives/confirmClick.js +0 -0
  26. data/lib/kibana/assets/app/directives/dashUpload.js +0 -0
  27. data/lib/kibana/assets/app/directives/kibanaPanel.js +1 -1
  28. data/lib/kibana/assets/app/directives/kibanaSimplePanel.js +54 -0
  29. data/lib/kibana/assets/app/directives/ngBlur.js +0 -0
  30. data/lib/kibana/assets/app/directives/ngModelOnBlur.js +0 -0
  31. data/lib/kibana/assets/app/directives/tip.js +0 -0
  32. data/lib/kibana/assets/app/filters/all.js +11 -1
  33. data/lib/kibana/assets/app/panels/bettermap/editor.html +0 -0
  34. data/lib/kibana/assets/app/panels/bettermap/leaflet/images/layers-2x.png +0 -0
  35. data/lib/kibana/assets/app/panels/bettermap/leaflet/images/layers.png +0 -0
  36. data/lib/kibana/assets/app/panels/bettermap/leaflet/images/marker-icon-2x.png +0 -0
  37. data/lib/kibana/assets/app/panels/bettermap/leaflet/images/marker-icon.png +0 -0
  38. data/lib/kibana/assets/app/panels/bettermap/leaflet/images/marker-shadow.png +0 -0
  39. data/lib/kibana/assets/app/panels/bettermap/leaflet/leaflet-src.js +0 -0
  40. data/lib/kibana/assets/app/panels/bettermap/leaflet/leaflet.css +0 -0
  41. data/lib/kibana/assets/app/panels/bettermap/leaflet/leaflet.ie.css +0 -0
  42. data/lib/kibana/assets/app/panels/bettermap/leaflet/leaflet.js +0 -0
  43. data/lib/kibana/assets/app/panels/bettermap/leaflet/plugins.css +0 -0
  44. data/lib/kibana/assets/app/panels/bettermap/leaflet/plugins.js +0 -0
  45. data/lib/kibana/assets/app/panels/bettermap/module.css +0 -0
  46. data/lib/kibana/assets/app/panels/bettermap/module.html +0 -0
  47. data/lib/kibana/assets/app/panels/bettermap/module.js +0 -0
  48. data/lib/kibana/assets/app/panels/column/editor.html +0 -0
  49. data/lib/kibana/assets/app/panels/column/module.html +0 -0
  50. data/lib/kibana/assets/app/panels/column/module.js +0 -0
  51. data/lib/kibana/assets/app/panels/column/panelgeneral.html +0 -0
  52. data/lib/kibana/assets/app/panels/dashcontrol/editor.html +0 -0
  53. data/lib/kibana/assets/app/panels/dashcontrol/load.html +0 -0
  54. data/lib/kibana/assets/app/panels/dashcontrol/module.html +0 -0
  55. data/lib/kibana/assets/app/panels/dashcontrol/module.js +0 -0
  56. data/lib/kibana/assets/app/panels/dashcontrol/save.html +0 -0
  57. data/lib/kibana/assets/app/panels/dashcontrol/share.html +0 -0
  58. data/lib/kibana/assets/app/panels/derivequeries/editor.html +0 -0
  59. data/lib/kibana/assets/app/panels/derivequeries/module.html +0 -0
  60. data/lib/kibana/assets/app/panels/derivequeries/module.js +0 -0
  61. data/lib/kibana/assets/app/panels/fields/editor.html +0 -0
  62. data/lib/kibana/assets/app/panels/fields/micropanel.html +0 -0
  63. data/lib/kibana/assets/app/panels/fields/module.html +0 -0
  64. data/lib/kibana/assets/app/panels/fields/module.js +0 -0
  65. data/lib/kibana/assets/app/panels/filtering/editor.html +0 -0
  66. data/lib/kibana/assets/app/panels/filtering/meta.html +0 -0
  67. data/lib/kibana/assets/app/panels/filtering/module.html +25 -13
  68. data/lib/kibana/assets/app/panels/filtering/module.js +6 -2
  69. data/lib/kibana/assets/app/panels/histogram/editor.html +1 -1
  70. data/lib/kibana/assets/app/panels/histogram/interval.js +0 -0
  71. data/lib/kibana/assets/app/panels/histogram/module.html +26 -24
  72. data/lib/kibana/assets/app/panels/histogram/module.js +8 -11
  73. data/lib/kibana/assets/app/panels/histogram/timeSeries.js +0 -0
  74. data/lib/kibana/assets/app/panels/hits/editor.html +0 -0
  75. data/lib/kibana/assets/app/panels/hits/module.html +0 -0
  76. data/lib/kibana/assets/app/panels/hits/module.js +0 -0
  77. data/lib/kibana/assets/app/panels/map/editor.html +0 -0
  78. data/lib/kibana/assets/app/panels/map/lib/jquery.jvectormap.min.js +0 -0
  79. data/lib/kibana/assets/app/panels/map/lib/map.europe.js +0 -0
  80. data/lib/kibana/assets/app/panels/map/lib/map.usa.js +0 -0
  81. data/lib/kibana/assets/app/panels/map/lib/map.world.js +0 -0
  82. data/lib/kibana/assets/app/panels/map/module.html +0 -0
  83. data/lib/kibana/assets/app/panels/map/module.js +0 -1
  84. data/lib/kibana/assets/app/panels/pie/editor.html +0 -0
  85. data/lib/kibana/assets/app/panels/pie/module.html +0 -0
  86. data/lib/kibana/assets/app/panels/pie/module.js +1 -2
  87. data/lib/kibana/assets/app/panels/query/editor.html +0 -0
  88. data/lib/kibana/assets/app/panels/query/meta.html +0 -0
  89. data/lib/kibana/assets/app/panels/query/module.html +1 -1
  90. data/lib/kibana/assets/app/panels/query/module.js +0 -0
  91. data/lib/kibana/assets/app/panels/query/query.css +0 -0
  92. data/lib/kibana/assets/app/panels/table/editor.html +0 -0
  93. data/lib/kibana/assets/app/panels/table/micropanel.html +1 -1
  94. data/lib/kibana/assets/app/panels/table/module.html +2 -2
  95. data/lib/kibana/assets/app/panels/table/module.js +1 -3
  96. data/lib/kibana/assets/app/panels/table/pagination.html +0 -0
  97. data/lib/kibana/assets/app/panels/terms/editor.html +0 -0
  98. data/lib/kibana/assets/app/panels/terms/module.html +0 -0
  99. data/lib/kibana/assets/app/panels/terms/module.js +0 -1
  100. data/lib/kibana/assets/app/panels/text/editor.html +0 -0
  101. data/lib/kibana/assets/app/panels/text/lib/showdown.js +0 -0
  102. data/lib/kibana/assets/app/panels/text/module.html +0 -0
  103. data/lib/kibana/assets/app/panels/text/module.js +0 -0
  104. data/lib/kibana/assets/app/panels/timepicker/custom.html +78 -0
  105. data/lib/kibana/assets/app/panels/timepicker/editor.html +8 -28
  106. data/lib/kibana/assets/app/panels/timepicker/module.html +49 -69
  107. data/lib/kibana/assets/app/panels/timepicker/module.js +137 -190
  108. data/lib/kibana/assets/app/panels/timepicker/refreshctrl.html +0 -0
  109. data/lib/kibana/assets/app/panels/trends/editor.html +0 -0
  110. data/lib/kibana/assets/app/panels/trends/module.html +0 -0
  111. data/lib/kibana/assets/app/panels/trends/module.js +2 -1
  112. data/lib/kibana/assets/app/partials/dashLoader.html +76 -47
  113. data/lib/kibana/assets/app/partials/dashLoaderShare.html +0 -0
  114. data/lib/kibana/assets/app/partials/dashboard.html +77 -61
  115. data/lib/kibana/assets/app/partials/dasheditor.html +38 -17
  116. data/lib/kibana/assets/app/partials/inspector.html +0 -0
  117. data/lib/kibana/assets/app/partials/load.html +0 -0
  118. data/lib/kibana/assets/app/partials/modal.html +0 -0
  119. data/lib/kibana/assets/app/partials/paneladd.html +0 -0
  120. data/lib/kibana/assets/app/partials/paneleditor.html +0 -0
  121. data/lib/kibana/assets/app/partials/panelgeneral.html +0 -0
  122. data/lib/kibana/assets/app/partials/querySelect.html +0 -0
  123. data/lib/kibana/assets/app/partials/roweditor.html +1 -1
  124. data/lib/kibana/assets/app/services/alertSrv.js +0 -0
  125. data/lib/kibana/assets/app/services/all.js +0 -0
  126. data/lib/kibana/assets/app/services/dashboard.js +49 -7
  127. data/lib/kibana/assets/app/services/fields.js +0 -0
  128. data/lib/kibana/assets/app/services/filterSrv.js +79 -47
  129. data/lib/kibana/assets/app/services/kbnIndex.js +0 -0
  130. data/lib/kibana/assets/app/services/panelMove.js +1 -16
  131. data/lib/kibana/assets/app/services/querySrv.js +0 -0
  132. data/lib/kibana/assets/app/services/timer.js +0 -0
  133. data/lib/kibana/assets/css/animate.min.css +0 -0
  134. data/lib/kibana/assets/css/bootstrap-responsive.min.css +0 -0
  135. data/lib/kibana/assets/css/bootstrap.dark.min.css +1 -1
  136. data/lib/kibana/assets/css/bootstrap.light.min.css +1 -1
  137. data/lib/kibana/assets/css/font-awesome.min.css +0 -0
  138. data/lib/kibana/assets/css/normalize.min.css +0 -0
  139. data/lib/kibana/assets/css/timepicker.css +0 -0
  140. data/lib/kibana/assets/font/FontAwesome.otf +0 -0
  141. data/lib/kibana/assets/font/fontawesome-webfont.eot +0 -0
  142. data/lib/kibana/assets/font/fontawesome-webfont.svg +0 -0
  143. data/lib/kibana/assets/font/fontawesome-webfont.ttf +0 -0
  144. data/lib/kibana/assets/font/fontawesome-webfont.woff +0 -0
  145. data/lib/kibana/assets/img/glyphicons-halflings-white.png +0 -0
  146. data/lib/kibana/assets/img/glyphicons-halflings.png +0 -0
  147. data/lib/kibana/assets/img/kibana.png +0 -0
  148. data/lib/kibana/assets/img/load.gif +0 -0
  149. data/lib/kibana/assets/img/load_big.gif +0 -0
  150. data/lib/kibana/assets/index.html +5 -7
  151. data/lib/kibana/assets/vendor/angular/angular-dragdrop.js +0 -0
  152. data/lib/kibana/assets/vendor/angular/angular-sanitize.js +28 -26
  153. data/lib/kibana/assets/vendor/angular/angular-strap.js +0 -0
  154. data/lib/kibana/assets/vendor/angular/angular.js +3128 -1410
  155. data/lib/kibana/assets/vendor/angular/datepicker.js +0 -0
  156. data/lib/kibana/assets/vendor/angular/timepicker.js +0 -0
  157. data/lib/kibana/assets/vendor/bootstrap/bootstrap.js +34 -0
  158. data/lib/kibana/assets/vendor/bootstrap/less/accordion.less +0 -0
  159. data/lib/kibana/assets/vendor/bootstrap/less/alerts.less +0 -0
  160. data/lib/kibana/assets/vendor/bootstrap/less/bootstrap.dark.less +0 -0
  161. data/lib/kibana/assets/vendor/bootstrap/less/bootstrap.less +0 -0
  162. data/lib/kibana/assets/vendor/bootstrap/less/bootstrap.light.less +0 -0
  163. data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.dark.less +0 -0
  164. data/lib/kibana/assets/vendor/bootstrap/less/bootswatch.light.less +0 -0
  165. data/lib/kibana/assets/vendor/bootstrap/less/breadcrumbs.less +0 -0
  166. data/lib/kibana/assets/vendor/bootstrap/less/button-groups.less +0 -0
  167. data/lib/kibana/assets/vendor/bootstrap/less/buttons.less +0 -0
  168. data/lib/kibana/assets/vendor/bootstrap/less/carousel.less +0 -0
  169. data/lib/kibana/assets/vendor/bootstrap/less/close.less +0 -0
  170. data/lib/kibana/assets/vendor/bootstrap/less/code.less +0 -0
  171. data/lib/kibana/assets/vendor/bootstrap/less/component-animations.less +0 -0
  172. data/lib/kibana/assets/vendor/bootstrap/less/dropdowns.less +0 -0
  173. data/lib/kibana/assets/vendor/bootstrap/less/forms.less +0 -0
  174. data/lib/kibana/assets/vendor/bootstrap/less/grid.less +0 -0
  175. data/lib/kibana/assets/vendor/bootstrap/less/hero-unit.less +0 -0
  176. data/lib/kibana/assets/vendor/bootstrap/less/labels-badges.less +0 -0
  177. data/lib/kibana/assets/vendor/bootstrap/less/layouts.less +0 -0
  178. data/lib/kibana/assets/vendor/bootstrap/less/media.less +0 -0
  179. data/lib/kibana/assets/vendor/bootstrap/less/mixins.less +0 -0
  180. data/lib/kibana/assets/vendor/bootstrap/less/modals.less +0 -0
  181. data/lib/kibana/assets/vendor/bootstrap/less/navbar.less +0 -0
  182. data/lib/kibana/assets/vendor/bootstrap/less/navs.less +0 -0
  183. data/lib/kibana/assets/vendor/bootstrap/less/overrides.less +221 -5
  184. data/lib/kibana/assets/vendor/bootstrap/less/pager.less +0 -0
  185. data/lib/kibana/assets/vendor/bootstrap/less/pagination.less +0 -0
  186. data/lib/kibana/assets/vendor/bootstrap/less/popovers.less +0 -0
  187. data/lib/kibana/assets/vendor/bootstrap/less/progress-bars.less +0 -0
  188. data/lib/kibana/assets/vendor/bootstrap/less/reset.less +0 -0
  189. data/lib/kibana/assets/vendor/bootstrap/less/responsive-1200px-min.less +0 -0
  190. data/lib/kibana/assets/vendor/bootstrap/less/responsive-767px-max.less +0 -0
  191. data/lib/kibana/assets/vendor/bootstrap/less/responsive-768px-979px.less +0 -0
  192. data/lib/kibana/assets/vendor/bootstrap/less/responsive-navbar.less +0 -0
  193. data/lib/kibana/assets/vendor/bootstrap/less/responsive-utilities.less +0 -0
  194. data/lib/kibana/assets/vendor/bootstrap/less/responsive.less +0 -0
  195. data/lib/kibana/assets/vendor/bootstrap/less/scaffolding.less +0 -0
  196. data/lib/kibana/assets/vendor/bootstrap/less/sprites.less +0 -0
  197. data/lib/kibana/assets/vendor/bootstrap/less/tables.less +0 -0
  198. data/lib/kibana/assets/vendor/bootstrap/less/tests/buttons.html +0 -0
  199. data/lib/kibana/assets/vendor/bootstrap/less/tests/css-tests.css +0 -0
  200. data/lib/kibana/assets/vendor/bootstrap/less/tests/css-tests.html +0 -0
  201. data/lib/kibana/assets/vendor/bootstrap/less/tests/forms-responsive.html +0 -0
  202. data/lib/kibana/assets/vendor/bootstrap/less/tests/forms.html +0 -0
  203. data/lib/kibana/assets/vendor/bootstrap/less/tests/navbar-fixed-top.html +0 -0
  204. data/lib/kibana/assets/vendor/bootstrap/less/tests/navbar-static-top.html +0 -0
  205. data/lib/kibana/assets/vendor/bootstrap/less/tests/navbar.html +0 -0
  206. data/lib/kibana/assets/vendor/bootstrap/less/thumbnails.less +0 -0
  207. data/lib/kibana/assets/vendor/bootstrap/less/tooltip.less +0 -0
  208. data/lib/kibana/assets/vendor/bootstrap/less/type.less +0 -0
  209. data/lib/kibana/assets/vendor/bootstrap/less/utilities.less +0 -0
  210. data/lib/kibana/assets/vendor/bootstrap/less/variables.dark.less +0 -0
  211. data/lib/kibana/assets/vendor/bootstrap/less/variables.less +0 -0
  212. data/lib/kibana/assets/vendor/bootstrap/less/variables.light.less +0 -0
  213. data/lib/kibana/assets/vendor/bootstrap/less/wells.less +0 -0
  214. data/lib/kibana/assets/vendor/elasticjs/elastic-angular-client.js +0 -0
  215. data/lib/kibana/assets/vendor/elasticjs/elastic.js +0 -0
  216. data/lib/kibana/assets/vendor/filesaver.js +0 -0
  217. data/lib/kibana/assets/vendor/jquery/jquery-1.8.0.js +0 -0
  218. data/lib/kibana/assets/vendor/jquery/jquery-ui-1.10.3.js +0 -0
  219. data/lib/kibana/assets/vendor/jquery/jquery.flot.js +0 -0
  220. data/lib/kibana/assets/vendor/jquery/jquery.flot.pie.js +0 -0
  221. data/lib/kibana/assets/vendor/jquery/jquery.flot.selection.js +0 -0
  222. data/lib/kibana/assets/vendor/jquery/jquery.flot.stack.js +0 -0
  223. data/lib/kibana/assets/vendor/jquery/jquery.flot.stackpercent.js +0 -0
  224. data/lib/kibana/assets/vendor/jquery/jquery.flot.time.js +0 -0
  225. data/lib/kibana/assets/vendor/modernizr-2.6.1.js +0 -0
  226. data/lib/kibana/assets/vendor/moment.js +0 -0
  227. data/lib/kibana/assets/vendor/require/css-build.js +0 -0
  228. data/lib/kibana/assets/vendor/require/css.js +0 -0
  229. data/lib/kibana/assets/vendor/require/require.js +0 -0
  230. data/lib/kibana/assets/vendor/require/text.js +0 -0
  231. data/lib/kibana/assets/vendor/require/tmpl.js +0 -0
  232. data/lib/kibana/assets/vendor/timezone.js +0 -0
  233. data/lib/kibana/assets/vendor/underscore.js +0 -0
  234. data/lib/kibana/sinatra/version.rb +1 -1
  235. data/lib/tasks/update.rb +51 -0
  236. metadata +34 -3
  237. data/lib/kibana/assets/css/main.css +0 -193
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 897512369a6b277f44b6b5ed555c99848c26b0da
4
- data.tar.gz: 9422c7cd1c3e9e1c1c92927e27933da39ec52d95
3
+ metadata.gz: 221a7a79930e7d8f883991735a36f74c1b5bd1dd
4
+ data.tar.gz: 025fb9fc6da32eec6bc51afd7539787f4a7d7d3d
5
5
  SHA512:
6
- metadata.gz: 68e8330aa19e504ebefe3bf684add055883466d4fd6b8e52ee2842391fb53fda33b0d8cb5d4ebe13aa3c4524066c4e711a302c8a37decfe0b47c25f2ff4382b0
7
- data.tar.gz: 0f81d2e506e4e09dafbb343173a21709b3375752706f6d4ac95a067c7fcfedd63d1adef63f07f2e29257ec3d3abbe96af45f44c8a3ed9a9d5742da58fb8799df
6
+ metadata.gz: d1ea7865b8a2402452b6322cc87d86532c5149c118689f90790460a0672277a23834959c076fe4ef84d1b9a5e3ea026d930320b523a33164415e65142b38eb09
7
+ data.tar.gz: 3277260d44cb68aff4e94e11715548d49f398b5d4e6344fa4a9c102d681c99093e5199a84ce03ef59bd3db9621672efcee5053aa4fbc629e7aed5d56571af899
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Kibana::Sinatra
2
2
 
3
- TODO: Write a gem description
3
+ [![Dependency Status](https://gemnasium.com/ianneub/kibana-sinatra.png)](https://gemnasium.com/ianneub/kibana-sinatra)
4
+
5
+ This gem provides [Kibana 3](https://github.com/elasticsearch/kibana) inside a [Sinatra](http://www.sinatrarb.com/) app that you can include in any Rack based system, including Rails.
4
6
 
5
7
  ## Installation
6
8
 
@@ -18,7 +20,33 @@ Or install it yourself as:
18
20
 
19
21
  ## Usage
20
22
 
21
- TODO: Write usage instructions here
23
+ ### Inside Rails
24
+
25
+ First you will need to configure Kibana's config.js file so that a web browser can find your [elasticsearch](http://www.elasticsearch.org/) cluster.
26
+
27
+ Create a new file in `config/initializers` and include the following code. Replace the strings with the location of your elasticsearch cluster and the kibana index. Note that both of these are optional.
28
+
29
+ ```ruby
30
+ module Kibana::Sinatra
31
+ class Web
32
+ def self.elasticsearch_url
33
+ "http://\"+window.location.hostname+\":9200"
34
+ end
35
+
36
+ def self.kibana_index
37
+ "kibana-int"
38
+ end
39
+ end
40
+ end
41
+ ```
42
+
43
+ In your `config/routes.rb` file mount the Kibana::Sinatra::Web class to a route:
44
+
45
+ mount Kibana::Sinatra::Web => '/kibana', :trailing_slash => true
46
+
47
+ The trailing slash is important due to the way Kibana links to CSS & JS files.
48
+
49
+ Start your server and you should now be able to load `/kibana/` and Kibana 3 should start up!
22
50
 
23
51
  ## Contributing
24
52
 
data/Rakefile CHANGED
@@ -1 +1,2 @@
1
1
  require "bundler/gem_tasks"
2
+ require "./lib/tasks/update"
@@ -20,5 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "uuid"
24
+ spec.add_development_dependency "rubyzip"
23
25
  spec.add_dependency "sinatra", "~> 1.4"
24
26
  end
File without changes
File without changes
@@ -1,5 +1,5 @@
1
- define(['jquery', 'underscore'],
2
- function($, _) {
1
+ define(['jquery', 'underscore','moment'],
2
+ function($, _, moment) {
3
3
  'use strict';
4
4
 
5
5
  var kbn = {};
@@ -247,6 +247,136 @@ function($, _) {
247
247
  return new Date(new Date().getTime() - (kbn.interval_to_ms(string)));
248
248
  };
249
249
 
250
+ /* This is a simplified version of elasticsearch's date parser */
251
+ kbn.parseDate = function(text) {
252
+ if(_.isDate(text)) {
253
+ return text;
254
+ }
255
+ var time,
256
+ mathString = "",
257
+ index,
258
+ parseString;
259
+ if (text.substring(0,3) === "now") {
260
+ time = new Date();
261
+ mathString = text.substring("now".length);
262
+ } else {
263
+ index = text.indexOf("||");
264
+ parseString;
265
+ if (index === -1) {
266
+ parseString = text;
267
+ mathString = ""; // nothing else
268
+ } else {
269
+ parseString = text.substring(0, index);
270
+ mathString = text.substring(index + 2);
271
+ }
272
+ // We're going to just require ISO8601 timestamps, k?
273
+ time = new Date(parseString);
274
+ }
275
+
276
+ if (!mathString.length) {
277
+ return time;
278
+ }
279
+
280
+ //return [time,parseString,mathString];
281
+ return kbn.parseDateMath(mathString, time);
282
+ };
283
+
284
+ kbn.parseDateMath = function(mathString, time, roundUp) {
285
+ var dateTime = moment(time);
286
+ for (var i = 0; i < mathString.length; ) {
287
+ var c = mathString.charAt(i++),
288
+ type,
289
+ num,
290
+ unit;
291
+ if (c === '/') {
292
+ type = 0;
293
+ } else if (c === '+') {
294
+ type = 1;
295
+ } else if (c === '-') {
296
+ type = 2;
297
+ } else {
298
+ return false;
299
+ }
300
+
301
+ if (isNaN(mathString.charAt(i))) {
302
+ num = 1;
303
+ } else {
304
+ var numFrom = i;
305
+ while (!isNaN(mathString.charAt(i))) {
306
+ i++;
307
+ }
308
+ num = parseInt(mathString.substring(numFrom, i),10);
309
+ }
310
+ if (type === 0) {
311
+ // rounding is only allowed on whole numbers
312
+ if (num !== 1) {
313
+ return false;
314
+ }
315
+ }
316
+ unit = mathString.charAt(i++);
317
+ switch (unit) {
318
+ case 'M':
319
+ if (type === 0) {
320
+ roundUp ? dateTime.endOf('month') : dateTime.startOf('month');
321
+ } else if (type === 1) {
322
+ dateTime.add('months',num);
323
+ } else if (type === 2) {
324
+ dateTime.subtract('months',num);
325
+ }
326
+ break;
327
+ case 'w':
328
+ if (type === 0) {
329
+ roundUp ? dateTime.endOf('week') : dateTime.startOf('week');
330
+ } else if (type === 1) {
331
+ dateTime.add('weeks',num);
332
+ } else if (type === 2) {
333
+ dateTime.subtract('weeks',num);
334
+ }
335
+ break;
336
+ case 'd':
337
+ if (type === 0) {
338
+ roundUp ? dateTime.endOf('day') : dateTime.startOf('day');
339
+ } else if (type === 1) {
340
+ dateTime.add('days',num);
341
+ } else if (type === 2) {
342
+ dateTime.subtract('days',num);
343
+ }
344
+ break;
345
+ case 'h':
346
+ case 'H':
347
+ if (type === 0) {
348
+ roundUp ? dateTime.endOf('hour') : dateTime.startOf('hour');
349
+ } else if (type === 1) {
350
+ dateTime.add('hours',num);
351
+ } else if (type === 2) {
352
+ dateTime.subtract('hours',num);
353
+ }
354
+ break;
355
+ case 'm':
356
+ if (type === 0) {
357
+ roundUp ? dateTime.endOf('minute') : dateTime.startOf('minute');
358
+ } else if (type === 1) {
359
+ dateTime.add('minutes',num);
360
+ } else if (type === 2) {
361
+ dateTime.subtract('minutes',num);
362
+ }
363
+ break;
364
+ case 's':
365
+ if (type === 0) {
366
+ roundUp ? dateTime.endOf('second') : dateTime.startOf('second');
367
+ } else if (type === 1) {
368
+ dateTime.add('seconds',num);
369
+ } else if (type === 2) {
370
+ dateTime.subtract('seconds',num);
371
+ }
372
+ break;
373
+ default:
374
+ return false;
375
+ }
376
+ }
377
+ return dateTime.toDate();
378
+ };
379
+
250
380
  // LOL. hahahahaha. DIE.
251
381
  kbn.flatten_json = function(object,root,array) {
252
382
  if (typeof array === 'undefined') {
File without changes
File without changes
@@ -2,4 +2,5 @@ define([
2
2
  './dash',
3
3
  './dashLoader',
4
4
  './row',
5
+ './pulldown'
5
6
  ], function () {});
File without changes
@@ -11,18 +11,25 @@ function (angular, _) {
11
11
  $scope.loader = dashboard.current.loader;
12
12
 
13
13
  $scope.init = function() {
14
+ $scope.advancedLoad = false;
15
+ $scope.advancedSave = false;
16
+
14
17
  $scope.gist_pattern = /(^\d{5,}$)|(^[a-z0-9]{10,}$)|(gist.github.com(\/*.*)\/[a-z0-9]{5,}\/*$)/;
15
18
  $scope.gist = $scope.gist || {};
16
19
  $scope.elasticsearch = $scope.elasticsearch || {};
17
20
  };
18
21
 
19
22
  $scope.showDropdown = function(type) {
20
- var _l = $scope.loader;
23
+ if(_.isUndefined(dashboard.current.loader)) {
24
+ return true;
25
+ }
26
+
27
+ var _l = dashboard.current.loader;
21
28
  if(type === 'load') {
22
29
  return (_l.load_elasticsearch || _l.load_gist || _l.load_local);
23
30
  }
24
31
  if(type === 'save') {
25
- return (_l.save_elasticsearch || _l.save_gist || _l.local_local || _l.save_default);
32
+ return (_l.save_elasticsearch || _l.save_gist || _l.save_local || _l.save_default);
26
33
  }
27
34
  if(type === 'share') {
28
35
  return (_l.save_temp);
@@ -120,4 +127,4 @@ function (angular, _) {
120
127
 
121
128
  });
122
129
 
123
- });
130
+ });
@@ -0,0 +1,45 @@
1
+ define([
2
+ 'angular',
3
+ 'app',
4
+ 'underscore'
5
+ ],
6
+ function (angular, app, _) {
7
+ 'use strict';
8
+
9
+ var module = angular.module('kibana.controllers');
10
+
11
+ module.controller('PulldownCtrl', function($scope, $rootScope, $timeout,ejsResource, querySrv) {
12
+ var _d = {
13
+ collapse: false,
14
+ notice: false,
15
+ enable: true
16
+ };
17
+
18
+ _.defaults($scope.pulldown,_d);
19
+
20
+ $scope.init = function() {
21
+ $scope.querySrv = querySrv;
22
+
23
+ // Provide a combined skeleton for panels that must interact with panel and row.
24
+ // This might create name spacing issues.
25
+ $scope.panel = $scope.pulldown;
26
+ $scope.row = $scope.pulldown;
27
+ };
28
+
29
+ $scope.toggle_pulldown = function(pulldown) {
30
+ pulldown.collapse = pulldown.collapse ? false : true;
31
+ if (!pulldown.collapse) {
32
+ $timeout(function() {
33
+ $scope.$broadcast('render');
34
+ });
35
+ } else {
36
+ $scope.row.notice = false;
37
+ }
38
+ };
39
+
40
+ $scope.init();
41
+
42
+ }
43
+ );
44
+
45
+ });
@@ -16,6 +16,7 @@ function (angular, app, _) {
16
16
  collapsable: true,
17
17
  editable: true,
18
18
  panels: [],
19
+ notice: false
19
20
  };
20
21
 
21
22
  _.defaults($scope.row,_d);
@@ -34,6 +35,8 @@ function (angular, app, _) {
34
35
  $timeout(function() {
35
36
  $scope.$broadcast('render');
36
37
  });
38
+ } else {
39
+ row.notice = false;
37
40
  }
38
41
  };
39
42
 
File without changes
@@ -13,7 +13,9 @@
13
13
  "query": "*",
14
14
  "alias": "",
15
15
  "color": "#7EB26D",
16
- "id": 0
16
+ "id": 0,
17
+ "pin": false,
18
+ "type": "lucene"
17
19
  }
18
20
  },
19
21
  "ids": [
@@ -22,24 +24,12 @@
22
24
  },
23
25
  "filter": {
24
26
  "idQueue": [
27
+ 0,
25
28
  1,
26
29
  2
27
30
  ],
28
- "list": {
29
- "0": {
30
- "from": "2013-07-27T22:08:06.800Z",
31
- "to": "2013-07-27T23:08:06.801Z",
32
- "field": "@timestamp",
33
- "type": "time",
34
- "mandate": "must",
35
- "active": true,
36
- "alias": "",
37
- "id": 0
38
- }
39
- },
40
- "ids": [
41
- 0
42
- ]
31
+ "list": {},
32
+ "ids": []
43
33
  }
44
34
  },
45
35
  "rows": [
@@ -59,7 +49,7 @@
59
49
  ],
60
50
  "type": "text",
61
51
  "mode": "markdown",
62
- "content": "![kibana](img/kibana.png) \n\n##### Did you just upgrade? Not expecting this screen?\nIf you were using the old default page you might not be expecting this screen. I understand, change can be awkward. Let me explain. \n\n##### Setting a global default dashboard\nKibana has always shipped with an interface for Logstash, still does! You can access it [here](index.html#dashboard/file/logstash.json). However, if you want to make it your default again, all you you need to do is rename a file!\nIn your Kibana installation directory: \n\nRename *logstash.json* to *default.json* and refresh. Should be all set.\n\n##### But wait, there's more!\nIn fact, you can add any exported dashboard to that directory and access it as *http://YOUR-HOST -HERE/index.html#dashboard/file/YOUR-DASHBOARD.json*. Neat trick eh?",
52
+ "content": "![kibana](img/kibana.png) \n\n##### Did you just upgrade? Not expecting this screen?\nIf you were using the old default page you might not be expecting this screen. I understand, change can be awkward. Let me explain. \n\n##### Setting a global default dashboard\nKibana has always shipped with an interface for Logstash, still does! You can access it [here](index.html#dashboard/file/logstash.json). However, if you want to make it your default again, all you need to do is rename a file!\nIn your Kibana installation directory: \n\nRename *logstash.json* to *default.json* and refresh. Should be all set.\n\n##### But wait, there's more!\nIn fact, you can add any exported dashboard to that directory and access it as *http://YOUR-HOST -HERE/index.html#dashboard/file/YOUR-DASHBOARD.json*. Neat trick eh?",
63
53
  "style": {},
64
54
  "title": "",
65
55
  "status": "Stable"
@@ -77,7 +67,8 @@
77
67
  "style": {},
78
68
  "status": "Stable"
79
69
  }
80
- ]
70
+ ],
71
+ "notice": false
81
72
  }
82
73
  ],
83
74
  "editable": false,
@@ -85,5 +76,73 @@
85
76
  "interval": "none",
86
77
  "pattern": "[logstash-]YYYY.MM.DD",
87
78
  "default": "_all"
88
- }
79
+ },
80
+ "style": "dark",
81
+ "failover": false,
82
+ "panel_hints": true,
83
+ "pulldowns": [
84
+ {
85
+ "type": "query",
86
+ "collapse": true,
87
+ "notice": false,
88
+ "query": "*",
89
+ "pinned": true,
90
+ "history": [],
91
+ "remember": 10
92
+ },
93
+ {
94
+ "type": "filtering",
95
+ "collapse": true,
96
+ "notice": false
97
+ }
98
+ ],
99
+ "nav": [
100
+ {
101
+ "type": "timepicker",
102
+ "collapse": false,
103
+ "notice": false,
104
+ "status": "Stable",
105
+ "time_options": [
106
+ "5m",
107
+ "15m",
108
+ "1h",
109
+ "6h",
110
+ "12h",
111
+ "24h",
112
+ "2d",
113
+ "7d",
114
+ "30d"
115
+ ],
116
+ "refresh_intervals": [
117
+ "5s",
118
+ "10s",
119
+ "30s",
120
+ "1m",
121
+ "5m",
122
+ "15m",
123
+ "30m",
124
+ "1h",
125
+ "2h",
126
+ "1d"
127
+ ],
128
+ "timefield": "@timestamp",
129
+ "now": true,
130
+ "filter_id": 0
131
+ }
132
+ ],
133
+ "loader": {
134
+ "save_gist": false,
135
+ "save_elasticsearch": true,
136
+ "save_local": true,
137
+ "save_default": true,
138
+ "save_temp": true,
139
+ "save_temp_ttl_enable": true,
140
+ "save_temp_ttl": "30d",
141
+ "load_gist": true,
142
+ "load_elasticsearch": true,
143
+ "load_elasticsearch_size": 20,
144
+ "load_local": true,
145
+ "hide": false
146
+ },
147
+ "refresh": false
89
148
  }