dashboard.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. define([
  2. 'angular',
  3. 'store',
  4. ],
  5. function (angular) {
  6. "use strict";
  7. var module = angular.module('grafana.routes');
  8. module.controller('DashFromDBProvider', function($scope, $routeParams, backendSrv) {
  9. if (!$routeParams.slug) {
  10. backendSrv.get('/api/dashboards/home').then(function(result) {
  11. $scope.initDashboard(result, $scope);
  12. },function() {
  13. $scope.initDashboard({}, $scope);
  14. $scope.appEvent('alert-error', ['Load dashboard failed', '']);
  15. });
  16. return;
  17. }
  18. return backendSrv.getDashboard($routeParams.slug).then(function(result) {
  19. $scope.initDashboard(result, $scope);
  20. }, function() {
  21. $scope.initDashboard({
  22. meta: {},
  23. model: { title: 'Not found' }
  24. }, $scope);
  25. });
  26. });
  27. module.controller('DashFromImportCtrl', function($scope, $location, alertSrv) {
  28. if (!window.grafanaImportDashboard) {
  29. alertSrv.set('Not found', 'Cannot reload page with unsaved imported dashboard', 'warning', 7000);
  30. $location.path('');
  31. return;
  32. }
  33. $scope.initDashboard({ meta: {}, model: window.grafanaImportDashboard }, $scope);
  34. });
  35. module.controller('NewDashboardCtrl', function($scope) {
  36. $scope.initDashboard({
  37. meta: {},
  38. model: {
  39. title: "New dashboard",
  40. rows: [{ height: '250px', panels:[] }]
  41. },
  42. }, $scope);
  43. });
  44. });