config.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import _ from 'lodash';
  2. export interface BuildInfo {
  3. version: string;
  4. commit: string;
  5. isEnterprise: boolean;
  6. env: string;
  7. }
  8. export class Settings {
  9. datasources: any;
  10. panels: any;
  11. appSubUrl: string;
  12. windowTitlePrefix: string;
  13. buildInfo: BuildInfo;
  14. newPanelTitle: string;
  15. bootData: any;
  16. externalUserMngLinkUrl: string;
  17. externalUserMngLinkName: string;
  18. externalUserMngInfo: string;
  19. allowOrgCreate: boolean;
  20. disableLoginForm: boolean;
  21. defaultDatasource: string;
  22. alertingEnabled: boolean;
  23. authProxyEnabled: boolean;
  24. exploreEnabled: boolean;
  25. ldapEnabled: boolean;
  26. oauth: any;
  27. disableUserSignUp: boolean;
  28. loginHint: any;
  29. loginError: any;
  30. constructor(options) {
  31. const defaults = {
  32. datasources: {},
  33. window_title_prefix: 'Grafana - ',
  34. panels: {},
  35. new_panel_title: 'Panel Title',
  36. playlist_timespan: '1m',
  37. unsaved_changes_warning: true,
  38. appSubUrl: '',
  39. buildInfo: {
  40. version: 'v1.0',
  41. commit: '1',
  42. env: 'production',
  43. isEnterprise: false,
  44. },
  45. };
  46. _.extend(this, defaults, options);
  47. }
  48. }
  49. const bootData = (window as any).grafanaBootData || { settings: {} };
  50. const options = bootData.settings;
  51. options.bootData = bootData;
  52. const config = new Settings(options);
  53. export default config;