solo_panel_ctrl.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import angular from 'angular';
  2. import $ from 'jquery';
  3. export class SoloPanelCtrl {
  4. /** @ngInject */
  5. constructor($scope, $routeParams, $location, dashboardLoaderSrv, contextSrv) {
  6. var panelId;
  7. $scope.init = function() {
  8. contextSrv.sidemenu = false;
  9. var params = $location.search();
  10. panelId = parseInt(params.panelId);
  11. $scope.onAppEvent("dashboard-initialized", $scope.initPanelScope);
  12. dashboardLoaderSrv.loadDashboard($routeParams.type, $routeParams.slug).then(function(result) {
  13. result.meta.soloMode = true;
  14. $scope.initDashboard(result, $scope);
  15. });
  16. };
  17. $scope.initPanelScope = function() {
  18. var panelInfo = $scope.dashboard.getPanelInfoById(panelId);
  19. // fake row ctrl scope
  20. $scope.ctrl = {
  21. row: panelInfo.row,
  22. dashboard: $scope.dashboard,
  23. };
  24. $scope.ctrl.row.height = $(window).height();
  25. $scope.panel = panelInfo.panel;
  26. $scope.$index = 0;
  27. if (!$scope.panel) {
  28. $scope.appEvent('alert-error', ['Panel not found', '']);
  29. return;
  30. }
  31. $scope.panel.span = 12;
  32. };
  33. $scope.init();
  34. }
  35. }
  36. angular.module('grafana.routes').controller('SoloPanelCtrl', SoloPanelCtrl);