dash_class.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import $ from 'jquery';
  2. import _ from 'lodash';
  3. import coreModule from '../core_module';
  4. /** @ngInject */
  5. function dashClass($timeout) {
  6. return {
  7. link: ($scope, elem) => {
  8. const body = $('body');
  9. $scope.ctrl.dashboard.events.on('view-mode-changed', panel => {
  10. console.log('view-mode-changed', panel.fullscreen);
  11. if (panel.fullscreen) {
  12. body.addClass('panel-in-fullscreen');
  13. } else {
  14. $timeout(() => {
  15. body.removeClass('panel-in-fullscreen');
  16. });
  17. }
  18. });
  19. body.toggleClass('panel-in-fullscreen', $scope.ctrl.dashboard.meta.fullscreen === true);
  20. $scope.$watch('ctrl.dashboardViewState.state.editview', newValue => {
  21. if (newValue) {
  22. elem.toggleClass('dashboard-page--settings-opening', _.isString(newValue));
  23. setTimeout(() => {
  24. elem.toggleClass('dashboard-page--settings-open', _.isString(newValue));
  25. }, 10);
  26. } else {
  27. elem.removeClass('dashboard-page--settings-opening');
  28. elem.removeClass('dashboard-page--settings-open');
  29. }
  30. });
  31. },
  32. };
  33. }
  34. coreModule.directive('dashClass', dashClass);