]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts
Import ceph 15.2.8
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / app.module.ts
CommitLineData
e306af50 1import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
eafe8130
TL
2import {
3 ErrorHandler,
4 LOCALE_ID,
5 NgModule,
6 TRANSLATIONS,
7 TRANSLATIONS_FORMAT
8} from '@angular/core';
11fdf7f2
TL
9import { BrowserModule } from '@angular/platform-browser';
10import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
11
12import { JwtModule } from '@auth0/angular-jwt';
13import { I18n } from '@ngx-translate/i18n-polyfill';
9f95a23c
TL
14import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
15
11fdf7f2
TL
16import { AccordionModule } from 'ngx-bootstrap/accordion';
17import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
18import { TabsModule } from 'ngx-bootstrap/tabs';
494da23a 19import { ToastrModule } from 'ngx-toastr';
11fdf7f2
TL
20
21import { AppRoutingModule } from './app-routing.module';
22import { AppComponent } from './app.component';
23import { CephModule } from './ceph/ceph.module';
24import { CoreModule } from './core/core.module';
11fdf7f2
TL
25import { ApiInterceptorService } from './shared/services/api-interceptor.service';
26import { JsErrorHandler } from './shared/services/js-error-handler.service';
27import { SharedModule } from './shared/shared.module';
28
eafe8130
TL
29import { environment } from '../environments/environment';
30
11fdf7f2
TL
31export function jwtTokenGetter() {
32 return localStorage.getItem('access_token');
33}
34
11fdf7f2
TL
35@NgModule({
36 declarations: [AppComponent],
37 imports: [
38 HttpClientModule,
11fdf7f2
TL
39 BrowserModule,
40 BrowserAnimationsModule,
494da23a
TL
41 ToastrModule.forRoot({
42 positionClass: 'toast-top-right',
43 preventDuplicates: true,
44 enableHtml: true
45 }),
11fdf7f2
TL
46 AppRoutingModule,
47 CoreModule,
48 SharedModule,
49 CephModule,
50 AccordionModule.forRoot(),
51 BsDropdownModule.forRoot(),
52 TabsModule.forRoot(),
53 JwtModule.forRoot({
54 config: {
55 tokenGetter: jwtTokenGetter
56 }
9f95a23c
TL
57 }),
58 NgBootstrapFormValidationModule.forRoot()
11fdf7f2
TL
59 ],
60 exports: [SharedModule],
61 providers: [
62 {
63 provide: ErrorHandler,
64 useClass: JsErrorHandler
65 },
66 {
67 provide: HTTP_INTERCEPTORS,
68 useClass: ApiInterceptorService,
69 multi: true
70 },
eafe8130
TL
71 {
72 provide: TRANSLATIONS,
9f95a23c 73 useFactory: (locale: string) => {
eafe8130
TL
74 locale = locale || environment.default_lang;
75 try {
9f95a23c 76 return require(`raw-loader!locale/messages.${locale}.xlf`).default;
eafe8130
TL
77 } catch (error) {
78 return [];
79 }
80 },
81 deps: [LOCALE_ID]
82 },
83 { provide: TRANSLATIONS_FORMAT, useValue: 'xlf' },
11fdf7f2
TL
84 I18n
85 ],
86 bootstrap: [AppComponent]
87})
88export class AppModule {}