config.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import _ from 'lodash';
  2. import { PanelPlugin } from 'app/types/plugins';
  3. import { GrafanaTheme, getTheme, GrafanaThemeType } from '@grafana/ui';
  4. export interface BuildInfo {
  5. version: string;
  6. commit: string;
  7. isEnterprise: boolean;
  8. env: string;
  9. latestVersion: string;
  10. hasUpdate: boolean;
  11. }
  12. export class Settings {
  13. datasources: any;
  14. panels: PanelPlugin[];
  15. appSubUrl: string;
  16. windowTitlePrefix: string;
  17. buildInfo: BuildInfo;
  18. newPanelTitle: string;
  19. bootData: any;
  20. externalUserMngLinkUrl: string;
  21. externalUserMngLinkName: string;
  22. externalUserMngInfo: string;
  23. allowOrgCreate: boolean;
  24. disableLoginForm: boolean;
  25. defaultDatasource: string;
  26. alertingEnabled: boolean;
  27. alertingErrorOrTimeout: string;
  28. alertingNoDataOrNullValues: string;
  29. authProxyEnabled: boolean;
  30. exploreEnabled: boolean;
  31. ldapEnabled: boolean;
  32. oauth: any;
  33. disableUserSignUp: boolean;
  34. loginHint: any;
  35. loginError: any;
  36. viewersCanEdit: boolean;
  37. editorsCanOwn: boolean;
  38. disableSanitizeHtml: boolean;
  39. theme: GrafanaTheme;
  40. constructor(options: Settings) {
  41. this.theme = options.bootData.user.lightTheme ? getTheme(GrafanaThemeType.Light) : getTheme(GrafanaThemeType.Dark);
  42. const defaults = {
  43. datasources: {},
  44. windowTitlePrefix: 'Grafana - ',
  45. panels: {},
  46. newPanelTitle: 'Panel Title',
  47. playlist_timespan: '1m',
  48. unsaved_changes_warning: true,
  49. appSubUrl: '',
  50. buildInfo: {
  51. version: 'v1.0',
  52. commit: '1',
  53. env: 'production',
  54. isEnterprise: false,
  55. },
  56. viewersCanEdit: false,
  57. editorsCanOwn: false,
  58. disableSanitizeHtml: false,
  59. };
  60. _.extend(this, defaults, options);
  61. }
  62. }
  63. const bootData = (window as any).grafanaBootData || {
  64. settings: {},
  65. user: {},
  66. };
  67. const options = bootData.settings;
  68. options.bootData = bootData;
  69. export const config = new Settings(options);
  70. export default config;