solo_panel_ctrl.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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($scope, $routeParams, $location, dashboardLoaderSrv, contextSrv) {
  9. var panelId;
  10. $scope.init = function() {
  11. contextSrv.sidemenu = false;
  12. var params = $location.search();
  13. panelId = parseInt(params.panelId);
  14. $scope.onAppEvent("dashboard-initialized", $scope.initPanelScope);
  15. dashboardLoaderSrv.loadDashboard($routeParams.type, $routeParams.slug).then(function(result) {
  16. result.meta.soloMode = true;
  17. $scope.initDashboard(result, $scope);
  18. });
  19. };
  20. $scope.initPanelScope = function() {
  21. var panelInfo = $scope.dashboard.getPanelInfoById(panelId);
  22. // fake row ctrl scope
  23. $scope.ctrl = {
  24. row: panelInfo.row,
  25. dashboard: $scope.dashboard,
  26. };
  27. $scope.ctrl.row.height = $(window).height();
  28. $scope.panel = panelInfo.panel;
  29. $scope.$index = 0;
  30. if (!$scope.panel) {
  31. $scope.appEvent('alert-error', ['Panel not found', '']);
  32. return;
  33. }
  34. $scope.panel.span = 12;
  35. };
  36. $scope.init();
  37. });
  38. });