Просмотр исходного кода

Improved portability of exported JSON files, updated underscore.js

Rashid Khan 13 лет назад
Родитель
Сommit
22d3fdace1

Разница между файлами не показана из-за своего большого размера
+ 0 - 32
common/lib/underscore.min.js


+ 1 - 1
index.html

@@ -34,7 +34,7 @@
       <div class="container-fluid">
         <span class="brand"><small>Kibana Preview</small></span>
         <span class="brand">{{dashboards.title}}</span>
-        <div class="brand"><i class='icon-edit pointer' bs-modal="'partials/dasheditor.html'" bs-tooltip="'Edit Dashboard'" data-placement="bottom"></i></div>
+        <div class="brand"><i class='icon-edit pointer' ng-show='dashboards.editable' bs-modal="'partials/dasheditor.html'"></i></div>
         <div class="brand"><i class='icon-download pointer' ng-click="export()" bs-tooltip="'Export this dashboard'" data-placement="bottom"></i></div>
         <div class="brand"><i class='icon-bookmark pointer' ng-click="default()" bs-tooltip="'Set as default dashboard'" data-placement="bottom"></i></div>
         <div class="brand"><i class='icon-ban-circle pointer' ng-click="purge()" bs-tooltip="'Clear default dashboard settings'" data-placement="bottom"></i></div>

+ 11 - 3
js/controllers.js

@@ -3,8 +3,13 @@
 'use strict';
 
 angular.module('kibana.controllers', [])
-.controller('DashCtrl', function($scope, $rootScope, ejsResource, timer) {
+.controller('DashCtrl', function($scope, $rootScope, $http, ejsResource, timer) {
 
+  var _d = {
+    title: "",
+    editable: true,
+    rows: [],
+  }
 
   $scope.init = function() {
     $scope.config = config;
@@ -18,14 +23,17 @@ angular.module('kibana.controllers', [])
     ) {
       $scope.dashboards = JSON.parse(localStorage['dashboard']);
     } else {
-      $scope.dashboards = dashboards;
+      $scope.dashboards = dashboards
     }
+    _.defaults($scope.dashboards,_d)
+
 
     var ejs = $scope.ejs = ejsResource(config.elasticsearch);  
   }
 
+
   $scope.export = function() {
-    var blob = new Blob([angular.toJson($scope.dashboards)], {type: "application/json;charset=utf-8"});
+    var blob = new Blob([angular.toJson($scope.dashboards,true)], {type: "application/json;charset=utf-8"});
     saveAs(blob, $scope.dashboards.title+"-"+new Date().getTime());
   }
 

+ 8 - 8
panels/histogram/module.js

@@ -42,7 +42,7 @@ angular.module('kibana.histogram', [])
 
   $scope.get_data = function() {
     // Make sure we have everything for the request to complete
-    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
+    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
       return
 
     var request = $scope.ejs.Request().indices($scope.panel.index);
@@ -52,9 +52,9 @@ angular.module('kibana.histogram', [])
     _.each($scope.panel.query, function(v) {
       queries.push($scope.ejs.FilteredQuery(
         ejs.QueryStringQuery(v.query || '*'),
-        ejs.RangeFilter($scope.panel.time.field)
-          .from($scope.panel.time.from)
-          .to($scope.panel.time.to))
+        ejs.RangeFilter($scope.time.field)
+          .from($scope.time.from)
+          .to($scope.time.to))
       )
     });
 
@@ -62,7 +62,7 @@ angular.module('kibana.histogram', [])
     _.each(queries, function(v) {
       request = request
         .facet($scope.ejs.DateHistogramFacet(_.indexOf(queries,v))
-          .field($scope.panel.time.field)
+          .field($scope.time.field)
           .interval($scope.panel.interval)
           .facetFilter($scope.ejs.QueryFilter(v))
         ).size(0)
@@ -77,11 +77,11 @@ angular.module('kibana.histogram', [])
       $scope.data = [];
       _.each(results.facets, function(v, k) {
         // Null values at each end of the time range ensure we see entire range
-        var data = [[$scope.panel.time.from.getTime(), null]];
+        var data = [[$scope.time.from.getTime(), null]];
         _.each(v.entries, function(v, k) {
           data.push([v['time'],v['count']])
         });
-        data.push([$scope.panel.time.to.getTime(), null])
+        data.push([$scope.time.to.getTime(), null])
         
         var series = { data: {
           label: $scope.panel.query[k].label || k, 
@@ -97,7 +97,7 @@ angular.module('kibana.histogram', [])
   }
 
   function set_time(time) {
-    $scope.panel.time = time;
+    $scope.time = time;
     $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
     $scope.panel.interval = secondsToHms(
       calculate_interval(time.from,time.to,50,0)/1000),

+ 4 - 4
panels/hits/module.js

@@ -23,7 +23,7 @@ angular.module('kibana.hits', [])
 
   $scope.get_data = function() {
     // Make sure we have everything for the request to complete
-    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
+    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
       return
 
     var request = $scope.ejs.Request().indices($scope.panel.index);
@@ -32,8 +32,8 @@ angular.module('kibana.hits', [])
       .query(ejs.FilteredQuery(
         ejs.QueryStringQuery($scope.panel.query || '*'),
         ejs.RangeFilter(config.timefield)
-          .from($scope.panel.time.from)
-          .to($scope.panel.time.to)
+          .from($scope.time.from)
+          .to($scope.time.to)
         )
       )
       .size(0)
@@ -51,7 +51,7 @@ angular.module('kibana.hits', [])
   }
 
   function set_time(time) {
-    $scope.panel.time = time;
+    $scope.time = time;
     $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
     $scope.get_data();
   }

+ 4 - 4
panels/map/module.js

@@ -26,7 +26,7 @@ angular.module('kibana.map', [])
 
   $scope.get_data = function() {
     // Make sure we have everything for the request to complete
-    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
+    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
       return
 
     var request = $scope.ejs.Request().indices($scope.panel.index);
@@ -41,8 +41,8 @@ angular.module('kibana.map', [])
           ejs.FilteredQuery(
             ejs.QueryStringQuery($scope.panel.query || '*'),
             ejs.RangeFilter(config.timefield)
-              .from($scope.panel.time.from)
-              .to($scope.panel.time.to)
+              .from($scope.time.from)
+              .to($scope.time.to)
             )))).size(0)
       .doSearch();
 
@@ -58,7 +58,7 @@ angular.module('kibana.map', [])
   }
 
   function set_time(time) {
-    $scope.panel.time = time;
+    $scope.time = time;
     $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
     $scope.get_data();
   }

+ 6 - 6
panels/pie/module.js

@@ -50,7 +50,7 @@ angular.module('kibana.pie', [])
 
   $scope.get_data = function() {
     // Make sure we have everything for the request to complete
-    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
+    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
       return
 
     var request = $scope.ejs.Request().indices($scope.panel.index);
@@ -65,8 +65,8 @@ angular.module('kibana.pie', [])
         queries.push(ejs.FilteredQuery(
           ejs.QueryStringQuery(v.query || '*'),
           ejs.RangeFilter(config.timefield)
-            .from($scope.panel.time.from)
-            .to($scope.panel.time.to))
+            .from($scope.time.from)
+            .to($scope.time.to))
         )
       });
 
@@ -105,8 +105,8 @@ angular.module('kibana.pie', [])
             ejs.FilteredQuery(
               ejs.QueryStringQuery($scope.panel.query.query || '*'),
               ejs.RangeFilter(config.timefield)
-                .from($scope.panel.time.from)
-                .to($scope.panel.time.to)
+                .from($scope.time.from)
+                .to($scope.time.to)
                 .cache(false)
               )))).size(0)
         .doSearch();
@@ -133,7 +133,7 @@ angular.module('kibana.pie', [])
   }
 
   function set_time(time) {
-    $scope.panel.time = time;
+    $scope.time = time;
     $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
     $scope.get_data();
   }

+ 4 - 4
panels/table/module.js

@@ -56,7 +56,7 @@ angular.module('kibana.table', [])
 
   $scope.get_data = function() {
     // Make sure we have everything for the request to complete
-    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.panel.time))
+    if(_.isUndefined($scope.panel.index) || _.isUndefined($scope.time))
       return
 
     var request = $scope.ejs.Request().indices($scope.panel.index);
@@ -65,8 +65,8 @@ angular.module('kibana.table', [])
       .query(ejs.FilteredQuery(
         ejs.QueryStringQuery($scope.panel.query || '*'),
         ejs.RangeFilter(config.timefield)
-          .from($scope.panel.time.from)
-          .to($scope.panel.time.to)
+          .from($scope.time.from)
+          .to($scope.time.to)
         )
       )
       .size($scope.panel.size)
@@ -100,7 +100,7 @@ angular.module('kibana.table', [])
   }
 
   function set_time(time) {
-    $scope.panel.time = time;
+    $scope.time = time;
     $scope.panel.index = _.isUndefined(time.index) ? $scope.panel.index : time.index
     $scope.get_data();
   }

+ 1 - 1
partials/dasheditor.html

@@ -9,7 +9,7 @@
       <label class="small">Title</label><input type="text" class="input-large" ng-model='dashboards.title'></input>
     </div>
     <div class="span1"> 
-      <label class="small"> Editable </label><input type="checkbox" ng-model="row.editable" ng-checked="dashboards.editable" />
+      <label class="small"> Editable </label><input type="checkbox" ng-model="dashboards.editable" ng-checked="dashboards.editable" />
     </div>
   </div>
   <div class="row-fluid">

Некоторые файлы не были показаны из-за большого количества измененных файлов