we_bstly-web/src/app/app.module.ts

142 lines
6.7 KiB
TypeScript
Raw Normal View History

2020-11-02 08:29:52 +01:00
2021-08-17 20:37:09 +02:00
import { NgModule, Injectable, APP_INITIALIZER } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { HttpClientModule, HttpInterceptor, HttpHandler, HttpRequest, HTTP_INTERCEPTORS } from '@angular/common/http';
import { MaterialModule } from './material/material.module';
2021-10-05 15:16:59 +02:00
import { QrCodeModule } from 'ng-qrcode';
2021-08-17 20:37:09 +02:00
import { DatePipe } from '@angular/common';
2020-11-02 08:29:52 +01:00
2021-08-17 20:37:09 +02:00
import { AutofocusDirective } from './material/autofocus';
2021-08-17 20:37:09 +02:00
import { I18nPipe } from './utils/i18n.pipe';
2021-10-27 17:07:44 +02:00
import { MomentPipe } from './utils/moment.pipe';
2021-09-23 13:53:08 +02:00
import { MainComponent } from './ui/main/main.component';
2021-08-17 20:37:09 +02:00
import { AccountComponent } from './pages/account/account.component';
import { ServicesComponent } from './pages/services/services.component';
import { AppComponent } from './app.component';
import { LoginComponent } from './pages/login/login.component';
import { FormLoginComponent } from './pages/form-login/form-login.component';
import { FormLogin2FAComponent } from './pages/form-login-2fa/form-login-2fa.component';
import { TokensComponent } from './pages/tokens/tokens.component';
import { InvitesComponent } from './pages/invites/invites.component';
import { PermissionsComponent } from './ui/permissions/permissions.component';
import { ProfileFieldDialog, ProfileFieldsComponent, ProfileFieldBlob } from './ui/profilefields/profilefields.component';
2021-09-26 13:32:14 +02:00
import { ServicesGridComponent } from './ui/servicesgrid/servicesgrid.component';
2021-08-27 19:13:36 +02:00
import { ServicesTableComponent } from './ui/servicestable/servicestable.component';
2021-08-17 20:37:09 +02:00
import { ProfileFieldPgpBlob } from './ui/profilefields/binary/pgp/profilefield.pgp-blob';
import { QuotasComponent } from './ui/quotas/quotas.component';
import { SecurityComponent, SecurityTotpDialog } from './pages/account/security/security.component';
import { VoucherComponent } from './pages/account/voucher/voucher.component';
import { VoucherDialog } from './pages/account/voucher/voucher.component';
import { InfoComponent } from './pages/account/info/info.component';
import { AliasesComponent } from './pages/account/aliases/aliases.component';
import { DomainsComponent } from './pages/account/domains/domains.component';
import { ProfileComponent } from './pages/account/profile/profile.component';
import { PasswordComponent } from './pages/password/password.component';
import { PasswordResetComponent } from './pages/password-reset/password-reset.component';
import { RegisterComponent, RegisterDialog } from './pages/register/register.component';
import { UsernameDialog } from './pages/register/username-dialog/username.dialog';
import { UnavailableComponent } from './pages/unavailable/unavailable.component';
import { NotfoundComponent } from './pages/notfound/notfound.component';
import { HtmlComponent } from './utils/html/html.component';
2021-10-27 17:07:44 +02:00
import { ConfirmDialog } from './ui/confirm/confirm.component';
import { UserComponent } from './pages/user/user.component';
import { JitsiComponent, JitsiEditDialog, JitsiShareDialog } from './pages/jitsi/jitsi.component';
import { ParteyComponent } from './pages/partey/partey.component';
import { ParteyTimeslotsComponent, ParteyTimeslotDialog } from './pages/partey/timeslots/timeslots.compontent';
import { UrlShortenerComponent, UrlShortenerPasswordComponent, UrlShortenerShareDialog, UrlShortenerEditDialog } from './pages/urlshortener/urlshortener.component';
import { BorrowItemEditComponent, BorrowItemsComponent } from './pages/borrow/items/items.component';
import { BorrowRequestEditComponent, BorrowRequestsComponent } from './pages/borrow/requests/requests.component';
import { BorrowProvingComponent, BorrowProvingResultDialog } from './pages/borrow/proving/proving.component';
import { DividerComponent } from './ui/divider/divider.component';
import { DividertestComponent } from './pages/dividertest/dividertest.component';
2020-11-02 08:29:52 +01:00
2021-08-17 20:37:09 +02:00
import { I18nService } from './services/i18n.service';
import { MinetestAccountsComponent } from './pages/minetest/accounts/accounts.component';
2021-10-27 17:07:44 +02:00
import { BorrowComponent } from './pages/borrow/borrow.component';
import { DurationpickerComponent } from './ui/durationpicker/durationpicker.component';
import { InviteCodeComponent } from './pages/invites/code/code.component';
import { InviteEditComponent } from './pages/invites/edit/invite.edit';
2020-11-02 08:29:52 +01:00
export function init_app(i18n: I18nService) {
2021-08-17 20:37:09 +02:00
return () => i18n.fetch().then(response => { }, error => { });
2020-11-02 08:29:52 +01:00
}
@Injectable()
export class XhrInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler) {
const xhr = req.clone({
headers: req.headers.set('X-Requested-With', 'XMLHttpRequest').set('Content-Type', 'application/json;charset=UTF-8'), withCredentials: true
});
return next.handle(xhr);
}
}
@NgModule({
declarations: [
AutofocusDirective,
2020-11-02 08:29:52 +01:00
I18nPipe,
2021-10-27 17:07:44 +02:00
MomentPipe,
2021-09-23 13:53:08 +02:00
MainComponent,
2020-11-02 08:29:52 +01:00
AppComponent,
AccountComponent,
LoginComponent,
FormLoginComponent,
2021-07-22 18:45:04 +02:00
FormLogin2FAComponent,
2020-11-02 08:29:52 +01:00
TokensComponent,
2021-10-27 17:07:44 +02:00
InvitesComponent, InviteCodeComponent, InviteEditComponent,
2021-03-13 09:47:25 +01:00
ServicesComponent,
2020-11-02 08:29:52 +01:00
PermissionsComponent,
2021-05-30 17:02:07 +02:00
ProfileFieldsComponent, ProfileFieldDialog, ProfileFieldBlob, ProfileFieldPgpBlob,
2021-09-26 13:32:14 +02:00
ServicesGridComponent, ServicesTableComponent,
2020-11-02 08:29:52 +01:00
QuotasComponent,
SecurityComponent,
2021-01-12 19:29:00 +01:00
SecurityTotpDialog,
2020-11-02 08:29:52 +01:00
VoucherComponent,
VoucherDialog,
InfoComponent,
2021-03-30 15:14:07 +02:00
AliasesComponent,
2021-04-08 09:45:50 +02:00
DomainsComponent,
2021-03-11 19:52:37 +01:00
ProfileComponent,
2020-11-02 08:29:52 +01:00
PasswordComponent,
2021-01-12 19:29:00 +01:00
PasswordResetComponent,
2020-11-02 08:29:52 +01:00
RegisterComponent,
RegisterDialog,
UsernameDialog,
UnavailableComponent,
NotfoundComponent,
2021-03-18 15:12:30 +01:00
HtmlComponent,
ConfirmDialog,
2021-04-16 08:57:53 +02:00
UserComponent,
2021-08-17 20:37:09 +02:00
JitsiComponent, JitsiEditDialog, JitsiShareDialog,
2021-09-23 13:53:08 +02:00
ParteyComponent, ParteyTimeslotsComponent, ParteyTimeslotDialog,
2021-07-29 17:41:25 +02:00
MinetestAccountsComponent,
2021-09-23 13:53:08 +02:00
UrlShortenerComponent, UrlShortenerShareDialog, UrlShortenerEditDialog, UrlShortenerPasswordComponent,
2021-10-27 17:07:44 +02:00
BorrowComponent, BorrowItemsComponent, BorrowItemEditComponent, BorrowRequestsComponent, BorrowRequestEditComponent, BorrowProvingComponent, BorrowProvingResultDialog,
DividerComponent, DividertestComponent,
DurationpickerComponent
2020-11-02 08:29:52 +01:00
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
MaterialModule,
HttpClientModule,
FormsModule,
ReactiveFormsModule,
2021-10-05 15:16:59 +02:00
QrCodeModule,
2020-11-02 08:29:52 +01:00
],
2021-08-17 20:37:09 +02:00
exports: [ MaterialModule ],
providers: [ { provide: APP_INITIALIZER, useFactory: init_app, deps: [ I18nService ], multi: true }, { provide: HTTP_INTERCEPTORS, useClass: XhrInterceptor, multi: true }, DatePipe ],
bootstrap: [ AppComponent ],
2020-11-02 08:29:52 +01:00
})
export class AppModule {
}