soloPanelCtrl.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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(dashData) {
  35. $scope.dashboard = dashboardSrv.create(dashData.model, dashData.meta);
  36. $scope.row = {
  37. height: ($(window).height() - 10) + 'px',
  38. };
  39. $scope.test = "Hej";
  40. $scope.$index = 0;
  41. $scope.panel = $scope.dashboard.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. if (!$scope.skipAutoInit) {
  52. $scope.init();
  53. }
  54. });
  55. });