TimePickerSettings.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import coreModule from 'app/core/core_module';
  2. import { DashboardModel } from 'app/features/dashboard/state';
  3. export class TimePickerCtrl {
  4. panel: any;
  5. dashboard: DashboardModel;
  6. constructor() {
  7. this.panel = this.dashboard.timepicker;
  8. this.panel.refresh_intervals = this.panel.refresh_intervals || [
  9. '5s',
  10. '10s',
  11. '30s',
  12. '1m',
  13. '5m',
  14. '15m',
  15. '30m',
  16. '1h',
  17. '2h',
  18. '1d',
  19. ];
  20. }
  21. }
  22. const template = `
  23. <div class="editor-row">
  24. <h5 class="section-heading">Time Options</h5>
  25. <div class="gf-form-group">
  26. <div class="gf-form">
  27. <label class="gf-form-label width-10">Timezone</label>
  28. <div class="gf-form-select-wrapper">
  29. <select ng-model="ctrl.dashboard.timezone" class='gf-form-input' ng-options="f.value as f.text for f in
  30. [{value: '', text: 'Default'}, {value: 'browser', text: 'Local browser time'},{value: 'utc', text: 'UTC'}]">
  31. </select>
  32. </div>
  33. </div>
  34. <div class="gf-form">
  35. <span class="gf-form-label width-10">Auto-refresh</span>
  36. <input type="text" class="gf-form-input max-width-25" ng-model="ctrl.panel.refresh_intervals" array-join>
  37. </div>
  38. <div class="gf-form">
  39. <span class="gf-form-label width-10">Now delay now-</span>
  40. <input type="text" class="gf-form-input max-width-25" ng-model="ctrl.panel.nowDelay"
  41. placeholder="0m"
  42. valid-time-span
  43. bs-tooltip="'Enter 1m to ignore the last minute (because it can contain incomplete metrics)'"
  44. data-placement="right">
  45. </div>
  46. <gf-form-switch class="gf-form" label="Hide time picker" checked="ctrl.panel.hidden" label-class="width-10">
  47. </gf-form-switch>
  48. </div>
  49. </div>
  50. `;
  51. export function TimePickerSettings() {
  52. return {
  53. restrict: 'E',
  54. template: template,
  55. controller: TimePickerCtrl,
  56. bindToController: true,
  57. controllerAs: 'ctrl',
  58. scope: {
  59. dashboard: '=',
  60. },
  61. };
  62. }
  63. coreModule.directive('gfTimePickerSettings', TimePickerSettings);