soloPanelCtrl.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. define([
  2. 'angular',
  3. 'jquery',
  4. ],
  5. function (angular, $) {
  6. "use strict";
  7. var module = angular.module('grafana.routes');
  8. module.controller('SoloPanelCtrl', function(
  9. $scope,
  10. backendSrv,
  11. $routeParams,
  12. dashboardSrv,
  13. timeSrv,
  14. $location,
  15. templateValuesSrv,
  16. contextSrv) {
  17. var panelId;
  18. $scope.init = function() {
  19. contextSrv.sidemenu = false;
  20. var params = $location.search();
  21. panelId = parseInt(params.panelId);
  22. var request;
  23. if ($routeParams.slug) {
  24. request = backendSrv.getDashboard($routeParams.slug);
  25. } else {
  26. request = backendSrv.get('/api/snapshots/' + $routeParams.key);
  27. }
  28. request.then(function(dashboard) {
  29. $scope.initPanelScope(dashboard);
  30. }).then(null, function(err) {
  31. $scope.appEvent('alert-error', ['Load panel error', err.message]);
  32. });
  33. };
  34. $scope.initPanelScope = function(dashboard) {
  35. $scope.dashboard = dashboardSrv.create(dashboard.model);
  36. $scope.row = {
  37. height: ($(window).height() - 10) + 'px',
  38. };
  39. $scope.test = "Hej";
  40. $scope.$index = 0;
  41. $scope.panel = $scope.getPanelById(panelId);
  42. if (!$scope.panel) {
  43. $scope.appEvent('alert-error', ['Panel not found', '']);
  44. return;
  45. }
  46. $scope.panel.span = 12;
  47. $scope.dashboardViewState = { registerPanel: function() { }, state: {}};
  48. timeSrv.init($scope.dashboard);
  49. templateValuesSrv.init($scope.dashboard, $scope.dashboardViewState);
  50. };
  51. $scope.getPanelById = function(id) {
  52. var rows = $scope.dashboard.rows;
  53. for (var i = 0; i < rows.length; i++) {
  54. var row = rows[i];
  55. for (var j = 0; j < row.panels.length; j++) {
  56. var panel = row.panels[j];
  57. if (panel.id === id) {
  58. return panel;
  59. }
  60. }
  61. }
  62. return null;
  63. };
  64. if (!$scope.skipAutoInit) {
  65. $scope.init();
  66. }
  67. });
  68. });