time_regions_form.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import coreModule from 'app/core/core_module';
  2. import { getColorModes } from './time_region_manager';
  3. export class TimeRegionFormCtrl {
  4. panelCtrl: any;
  5. panel: any;
  6. disabled: boolean;
  7. colorModes: any;
  8. /** @ngInject */
  9. constructor($scope) {
  10. this.panel = this.panelCtrl.panel;
  11. const unbindDestroy = $scope.$on('$destroy', () => {
  12. this.panelCtrl.editingTimeRegions = false;
  13. this.panelCtrl.render();
  14. unbindDestroy();
  15. });
  16. this.colorModes = getColorModes();
  17. this.panelCtrl.editingTimeRegions = true;
  18. }
  19. render() {
  20. this.panelCtrl.render();
  21. }
  22. addTimeRegion() {
  23. this.panel.timeRegions.push({
  24. op: 'time',
  25. fromDayOfWeek: undefined,
  26. from: undefined,
  27. toDayOfWeek: undefined,
  28. to: undefined,
  29. colorMode: 'background6',
  30. fill: true,
  31. line: false,
  32. });
  33. this.panelCtrl.render();
  34. }
  35. removeTimeRegion(index) {
  36. this.panel.timeRegions.splice(index, 1);
  37. this.panelCtrl.render();
  38. }
  39. onFillColorChange(index) {
  40. return newColor => {
  41. this.panel.timeRegions[index].fillColor = newColor;
  42. this.render();
  43. };
  44. }
  45. onLineColorChange(index) {
  46. return newColor => {
  47. this.panel.timeRegions[index].lineColor = newColor;
  48. this.render();
  49. };
  50. }
  51. }
  52. coreModule.directive('graphTimeRegionForm', () => {
  53. return {
  54. restrict: 'E',
  55. templateUrl: 'public/app/plugins/panel/graph/time_regions_form.html',
  56. controller: TimeRegionFormCtrl,
  57. bindToController: true,
  58. controllerAs: 'ctrl',
  59. scope: {
  60. panelCtrl: '=',
  61. },
  62. };
  63. });