time_regions_form.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. // Default colors for new
  33. fillColor: 'rgba(234, 112, 112, 0.12)',
  34. lineColor: 'rgba(237, 46, 24, 0.60)',
  35. });
  36. this.panelCtrl.render();
  37. }
  38. removeTimeRegion(index) {
  39. this.panel.timeRegions.splice(index, 1);
  40. this.panelCtrl.render();
  41. }
  42. onFillColorChange(index) {
  43. return newColor => {
  44. this.panel.timeRegions[index].fillColor = newColor;
  45. this.render();
  46. };
  47. }
  48. onLineColorChange(index) {
  49. return newColor => {
  50. this.panel.timeRegions[index].lineColor = newColor;
  51. this.render();
  52. };
  53. }
  54. }
  55. coreModule.directive('graphTimeRegionForm', () => {
  56. return {
  57. restrict: 'E',
  58. templateUrl: 'public/app/plugins/panel/graph/time_regions_form.html',
  59. controller: TimeRegionFormCtrl,
  60. bindToController: true,
  61. controllerAs: 'ctrl',
  62. scope: {
  63. panelCtrl: '=',
  64. },
  65. };
  66. });