config.ts 1.4 KB

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