Torkel Ödegaard 11 лет назад
Родитель
Сommit
c690d4aae8
3 измененных файлов с 85 добавлено и 0 удалено
  1. 5 0
      src/app/routes/p_all.js
  2. 35 0
      src/app/routes/p_dashboard.js
  3. 45 0
      src/app/routes/p_solo-panel.js

+ 5 - 0
src/app/routes/p_all.js

@@ -0,0 +1,5 @@
+define([
+  './p_dashboard',
+  './p_solo-panel',
+],
+function () {});

+ 35 - 0
src/app/routes/p_dashboard.js

@@ -0,0 +1,35 @@
+define([
+  'angular',
+],
+function (angular) {
+  "use strict";
+
+  var module = angular.module('grafana.routes');
+
+  module.config(function($routeProvider) {
+    $routeProvider
+      .when('/dashboard/db/:id', {
+        templateUrl: '/app/partials/dashboard.html',
+        controller : 'DashFromDBProvider',
+      })
+      .when('/dashboard/temp/:id', {
+        templateUrl: '/app/partials/dashboard.html',
+        controller : 'DashFromDBProvider',
+      });
+  });
+
+  module.controller('DashFromDBProvider', function($scope, $rootScope, datasourceSrv, $routeParams, alertSrv) {
+
+    var db = datasourceSrv.getGrafanaDB();
+    var isTemp = window.location.href.indexOf('dashboard/temp') !== -1;
+
+    db.getDashboard($routeParams.id, isTemp)
+      .then(function(dashboard) {
+        $scope.emitAppEvent('setup-dashboard', dashboard);
+      }).then(null, function(error) {
+        alertSrv.set('Error', error, 'error');
+      });
+
+  });
+
+});

+ 45 - 0
src/app/routes/p_solo-panel.js

@@ -0,0 +1,45 @@
+define([
+  'angular',
+],
+function (angular) {
+  "use strict";
+
+  var module = angular.module('grafana.routes');
+
+  module.config(function($routeProvider) {
+    $routeProvider
+      .when('/solo-panel/db/:id', {
+        templateUrl: 'app/partials/solo-panel.html',
+        controller : 'SoloPanelCtrl',
+      });
+  });
+
+  module.controller('SoloPanelCtrl', function($scope, $rootScope, datasourceSrv, $routeParams, alertSrv, dashboardSrv, filterSrv) {
+
+    var db = datasourceSrv.getGrafanaDB();
+
+    db.getDashboard($routeParams.id, false)
+      .then(function(dashboardData) {
+        $scope.initPanelScope(dashboardData);
+      }).then(null, function(error) {
+        alertSrv.set('Error', error, 'error');
+      });
+
+    $scope.initPanelScope = function(dashboardData) {
+      $scope.dashboard = dashboardSrv.create(dashboardData);
+      $scope.grafana.style = $scope.dashboard.style;
+      $scope.row = {
+        height: '300px',
+      };
+      $scope.test = "Hej";
+      $scope.$index = 0;
+      $scope.panel = $scope.dashboard.rows[0].panels[0];
+      $scope.panel.span = 12;
+
+      $scope.filter = filterSrv;
+      $scope.filter.init($scope.dashboard);
+    };
+
+  });
+
+});