Torkel Ödegaard 11 лет назад
Родитель
Сommit
1eb9efe2d5

+ 4 - 1
src/app/controllers/dash.js

@@ -31,7 +31,7 @@ function (angular, $, config, _) {
   var module = angular.module('kibana.controllers');
 
   module.controller('DashCtrl', function(
-    $scope, $rootScope, dashboardKeybindings, filterSrv, dashboard, panelMoveSrv) {
+    $scope, $rootScope, dashboardKeybindings, filterSrv, dashboard, panelMoveSrv, alertSrv) {
 
     $scope.editor = { index: 0 };
 
@@ -39,6 +39,9 @@ function (angular, $, config, _) {
       $scope.reset_row();
       dashboardKeybindings.shortcuts();
 
+      // Clear existing alerts
+      alertSrv.clearAll();
+
       $scope.onAppEvent('setup-dashboard', $scope.setupDashboard, $scope);
     };
 

+ 0 - 3
src/app/controllers/grafanaCtrl.js

@@ -15,9 +15,6 @@ function (angular, config, _) {
     $scope.init = function() {
       $scope._ = _;
       $scope.dashAlerts = alertSrv;
-
-      // Clear existing alerts
-      alertSrv.clearAll();
     };
 
     $scope.onAppEvent = function(name, callback, scope) {

+ 6 - 63
src/app/routes/dashboard-from-es.js

@@ -14,10 +14,6 @@ function (angular, $, config, _) {
       .when('/dashboard/elasticsearch/:id', {
         templateUrl: 'app/partials/dashboard.html',
         controller : 'DashFromElasticProvider',
-      })
-      .when('/dashboard/file/:jsonFile', {
-        templateUrl: 'app/partials/dashboard.html',
-        controller : 'DashFromFileProvider',
       });
   });
 
@@ -30,8 +26,12 @@ function (angular, $, config, _) {
         url: url +'?' + new Date().getTime(),
         method: "GET",
         transformResponse: function(response) {
-          var dashJson = angular.fromJson(response)._source.dashboard;
-          return angular.fromJson(dashJson);
+          var esResponse = angular.fromJson(response);
+          if (esResponse._source && esResponse._source.dashboard) {
+            return angular.fromJson(esResponse._source.dashboard);
+          } else {
+            return false;
+          }
         }
       };
 
@@ -60,61 +60,4 @@ function (angular, $, config, _) {
 
   });
 
-  module.controller('DashFromFileProvider', function(
-    $scope, $rootScope, $http, $routeParams, alertSrv, dashboard, filterSrv, panelMoveSrv) {
-
-    $scope.init = function() {
-
-      file_load($routeParams.jsonFile).then(function(data) {
-        $scope.dashboard = dashboard.create(data);
-        $scope.filter = filterSrv;
-        $scope.filter.init($scope.dashboard);
-
-        var panelMove = panelMoveSrv.create($scope.dashboard);
-        // For moving stuff around the dashboard.
-        $scope.panelMoveDrop = panelMove.onDrop;
-        $scope.panelMoveStart = panelMove.onStart;
-        $scope.panelMoveStop = panelMove.onStop;
-        $scope.panelMoveOver = panelMove.onOver;
-        $scope.panelMoveOut = panelMove.onOut;
-
-        $rootScope.$emit("dashboard-loaded", $scope.dashboard);
-      });
-    };
-
-    var renderTemplate = function(json,params) {
-      var _r;
-      _.templateSettings = {interpolate : /\{\{(.+?)\}\}/g};
-      var template = _.template(json);
-      var rendered = template({ARGS:params});
-      try {
-        _r = angular.fromJson(rendered);
-      } catch(e) {
-        _r = false;
-      }
-      return _r;
-    };
-
-    var file_load = function(file) {
-      return $http({
-        url: "app/dashboards/"+file.replace(/\.(?!json)/,"/")+'?' + new Date().getTime(),
-        method: "GET",
-        transformResponse: function(response) {
-          return renderTemplate(response,$routeParams);
-        }
-      }).then(function(result) {
-        if(!result) {
-          return false;
-        }
-        return result.data;
-      },function() {
-        alertSrv.set('Error',"Could not load <i>dashboards/"+file+"</i>. Please make sure it exists" ,'error');
-        return false;
-      });
-    };
-
-    $scope.init();
-
-  });
-
 });

+ 5 - 1
src/app/services/dashboard.js

@@ -16,6 +16,10 @@ function (angular, $, kbn, _) {
   module.service('dashboard', function(timer, $rootScope, $timeout) {
 
     function DashboardModel (data) {
+      if (!data) {
+        data = {};
+      };
+
       this.title = data.title;
       this.tags = data.tags || [];
       this.style = data.style || "dark";
@@ -25,7 +29,7 @@ function (angular, $, kbn, _) {
       this.pulldowns = data.pulldowns || [];
       this.nav = data.nav || [];
       this.services = data.services || {};
-      this.loader = data.loader;
+      this.loader = data.loader || {};
 
       _.defaults(this.loader, {
         save_gist: false,

+ 13 - 5
src/app/services/filterSrv.js

@@ -94,14 +94,22 @@ define([
         this.dashboard = dashboard;
         this.templateSettings = { interpolate : /\[\[([\s\S]+?)\]\]/g };
 
-        if(dashboard.services && dashboard.services.filter) {
-          this.time = dashboard.services.filter.time;
-          this.templateParameters = dashboard.services.filter.list || [];
-          this.updateTemplateData(true);
+/*        if (!this.dashboard.services.filter) {
+          this.dashboard.services.filter = {
+            list: [],
+            time: {
+              from: '1h',
+              to: 'now'
+            }
+          };
         }
-
+*/
+        this.time = dashboard.services.filter.time;
+        this.templateParameters = dashboard.services.filter.list || [];
+        this.updateTemplateData(true);
       }
     };
+
     return result;
   });