config.ts 1.5 KB

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