diff --git a/frontend-admin/package-lock.json b/frontend-admin/package-lock.json index e2274ea38f..6f8454a684 100644 --- a/frontend-admin/package-lock.json +++ b/frontend-admin/package-lock.json @@ -19,6 +19,8 @@ "@angular/router": "^14.2.0", "@ng-bootstrap/ng-bootstrap": "^13.1.1", "@ngneat/svg-icon": "^6.1.0", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", "@popperjs/core": "^2.10.2", "bootstrap": "^5.2.0", "rxjs": "~7.5.0", @@ -3698,6 +3700,31 @@ "webpack": "^5.54.0" } }, + "node_modules/@ngx-translate/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", + "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngx-translate/http-loader": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", + "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@ngx-translate/core": ">=14.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -18120,6 +18147,22 @@ "dev": true, "requires": {} }, + "@ngx-translate/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", + "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@ngx-translate/http-loader": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", + "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", + "requires": { + "tslib": "^2.3.0" + } + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", diff --git a/frontend-admin/package.json b/frontend-admin/package.json index cec40b67c1..51c26325ab 100644 --- a/frontend-admin/package.json +++ b/frontend-admin/package.json @@ -16,7 +16,10 @@ "outputPath": "./src/app/svg", "srcPath": "./src/assets/svg", "svgoConfig": { - "plugins": ["removeDimensions", "cleanupAttrs"] + "plugins": [ + "removeDimensions", + "cleanupAttrs" + ] } }, "private": true, @@ -32,6 +35,8 @@ "@angular/router": "^14.2.0", "@ng-bootstrap/ng-bootstrap": "^13.1.1", "@ngneat/svg-icon": "^6.1.0", + "@ngx-translate/core": "^14.0.0", + "@ngx-translate/http-loader": "^7.0.0", "@popperjs/core": "^2.10.2", "bootstrap": "^5.2.0", "rxjs": "~7.5.0", diff --git a/frontend-admin/proxy.config.json b/frontend-admin/proxy.config.json index da29d9f656..70ca9a8784 100644 --- a/frontend-admin/proxy.config.json +++ b/frontend-admin/proxy.config.json @@ -16,5 +16,11 @@ "secure": false, "changeOrigin": true, "logLevel": "debug" + }, + "/api/v2/": { + "target": "http://localhost:8080", + "secure": false, + "changeOrigin": true, + "logLevel": "debug" } } diff --git a/frontend-admin/src/app/app.component.ts b/frontend-admin/src/app/app.component.ts index 4c6c279b05..50405ef5e1 100644 --- a/frontend-admin/src/app/app.component.ts +++ b/frontend-admin/src/app/app.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-root', @@ -7,9 +8,11 @@ import { Component, OnInit } from '@angular/core'; }) export class AppComponent implements OnInit { - constructor() { + constructor(private readonly translateService: TranslateService) { } ngOnInit(): void { + this.translateService.setDefaultLang('en'); + this.translateService.use('en'); } } diff --git a/frontend-admin/src/app/app.module.ts b/frontend-admin/src/app/app.module.ts index 439bceff30..123a10951a 100644 --- a/frontend-admin/src/app/app.module.ts +++ b/frontend-admin/src/app/app.module.ts @@ -4,7 +4,7 @@ import {provideSvgIcons} from '@ngneat/svg-icon'; import {AppRoutingModule} from './app-routing.module'; import {AppComponent} from './app.component'; import {AuthenticationModule} from "./authentication/authentication.module"; -import {HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule, HttpXsrfTokenExtractor} from "@angular/common/http"; +import {HTTP_INTERCEPTORS, HttpClientModule, HttpClientXsrfModule, HttpXsrfTokenExtractor, HttpClient} from "@angular/common/http"; import {AuthTokenInterceptor, DOMGidExtractor, DOMXsrfTokenExtractor} from "./shared/xsrf"; import {UserService} from "./shared/user.service"; import {Router} from "@angular/router"; @@ -13,6 +13,8 @@ import { SvgIconComponent } from '@ngneat/svg-icon'; import {OrganizationService} from './shared/organization.service'; import {MissingOrgComponent} from './missing-org/missing-org.component'; import { ICONS } from './shared/icons'; +import {TranslateLoader, TranslateModule} from '@ngx-translate/core'; +import {CustomLoader} from './shared/i18n.service'; export function RedirectToLoginIfNeeded(userService: UserService, router: Router): () => Promise { return async () => { @@ -24,6 +26,11 @@ export function RedirectToLoginIfNeeded(userService: UserService, router: Router }; } +// AoT requires an exported function for factories +export function HttpLoaderFactory(http: HttpClient) { + return new CustomLoader(http); +} + @NgModule({ declarations: [ AppComponent, @@ -38,7 +45,14 @@ export function RedirectToLoginIfNeeded(userService: UserService, router: Router cookieName: 'XSRF-TOKEN', headerName: 'X-CSRF-TOKEN', }), - SvgIconComponent + SvgIconComponent, + TranslateModule.forRoot({ + loader: { + provide: TranslateLoader, + useFactory: HttpLoaderFactory, + deps: [HttpClient] + } + }), ], providers: [ { provide: APP_INITIALIZER, useFactory: RedirectToLoginIfNeeded, deps: [UserService, Router], multi: true}, diff --git a/frontend-admin/src/app/dashboard/dashboard.component.html b/frontend-admin/src/app/dashboard/dashboard.component.html index eaf22d76c0..e411832c03 100644 --- a/frontend-admin/src/app/dashboard/dashboard.component.html +++ b/frontend-admin/src/app/dashboard/dashboard.component.html @@ -1,4 +1,4 @@ -

My events

+

Active