solo_panel_ctrl.ts 1.1 KB

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