diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a9695cd9..701962975 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added the feature to link an existing token-based user account to a OpenID Connect (`OIDC`) authentication provider -## 2.224.0 - 2025-12-20 +## Unreleased + +### Added + +- Added the feature to link an existing token-based user account to a OpenID Connect (`OIDC`) authentication provider + +## 2.224.2 - 2025-12-20 ### Added diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 053b6829c..12a7b0de9 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -243,7 +243,7 @@ export class GfAppComponent implements OnDestroy, OnInit { this.tokenStorageService.signOut(); this.userService.remove(); - document.location.href = `/${$localize.locale}`; + document.location.href = `/${document.documentElement.lang}`; } public ngOnDestroy() { diff --git a/apps/client/src/app/components/admin-users/admin-users.component.ts b/apps/client/src/app/components/admin-users/admin-users.component.ts index c9aee671c..99fbe7901 100644 --- a/apps/client/src/app/components/admin-users/admin-users.component.ts +++ b/apps/client/src/app/components/admin-users/admin-users.component.ts @@ -224,7 +224,7 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit { this.tokenStorageService.signOut(); this.userService.remove(); - document.location.href = `/${$localize.locale}`; + document.location.href = `/${document.documentElement.lang}`; } }, message: accessToken, diff --git a/apps/client/src/app/components/header/header.component.ts b/apps/client/src/app/components/header/header.component.ts index e26be812b..b7bf4cb98 100644 --- a/apps/client/src/app/components/header/header.component.ts +++ b/apps/client/src/app/components/header/header.component.ts @@ -335,7 +335,7 @@ export class GfHeaderComponent implements OnChanges { .subscribe((user) => { const userLanguage = user?.settings?.language; - if (userLanguage && $localize.locale !== userLanguage) { + if (userLanguage && document.documentElement.lang !== userLanguage) { window.location.href = `../${userLanguage}`; } else { this.router.navigate(['/']); diff --git a/apps/client/src/app/components/user-account-access/user-account-access.component.ts b/apps/client/src/app/components/user-account-access/user-account-access.component.ts index 70d84a25c..11960b8aa 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.component.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.component.ts @@ -164,7 +164,7 @@ export class GfUserAccountAccessComponent implements OnDestroy, OnInit { this.tokenStorageService.signOut(); this.userService.remove(); - document.location.href = `/${$localize.locale}`; + document.location.href = `/${document.documentElement.lang}`; }, message: accessToken, title: $localize`Security token` diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts index cb93f13d6..a3e675728 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -82,8 +82,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit { public isAccessTokenHidden = true; public isFingerprintSupported = this.doesBrowserSupportAuthn(); public isWebAuthnEnabled: boolean; - public language = $localize.locale; - + public language = document.documentElement.lang; public locales = [ 'ca', 'de', @@ -304,7 +303,7 @@ export class GfUserAccountSettingsComponent implements OnDestroy, OnInit { this.tokenStorageService.signOut(); this.userService.remove(); - document.location.href = `/${this.language}`; + document.location.href = `/${document.documentElement.lang}`; }); }, confirmType: ConfirmationDialogType.Warn, diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index fd7267916..c26419031 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -64,9 +64,9 @@ export class AuthGuard { .subscribe((user) => { const userLanguage = user?.settings?.language; - if (userLanguage && $localize.locale !== userLanguage) { + if (userLanguage && document.documentElement.lang !== userLanguage) { this.dataService - .putUserSetting({ language: $localize.locale }) + .putUserSetting({ language: document.documentElement.lang }) .subscribe(() => { this.userService.remove(); diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts index 6f0b1baba..8faa8307e 100644 --- a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts @@ -22,7 +22,7 @@ import { Subject, takeUntil } from 'rxjs'; templateUrl: './faq-overview-page.html' }) export class GfFaqOverviewPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${$localize.locale}/${publicRoutes.pricing.path}`; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`; public routerLinkFeatures = publicRoutes.features.routerLink; public user: User; diff --git a/apps/client/src/app/pages/faq/saas/saas-page.component.ts b/apps/client/src/app/pages/faq/saas/saas-page.component.ts index cc5a4d642..b47d45fe2 100644 --- a/apps/client/src/app/pages/faq/saas/saas-page.component.ts +++ b/apps/client/src/app/pages/faq/saas/saas-page.component.ts @@ -22,7 +22,7 @@ import { Subject, takeUntil } from 'rxjs'; templateUrl: './saas-page.html' }) export class GfSaasPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${$localize.locale}/${publicRoutes.pricing.path}`; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`; public routerLinkAccount = internalRoutes.account.routerLink; public routerLinkAccountMembership = internalRoutes.account.subRoutes.membership.routerLink; diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts index 03d6a6742..ed1d74395 100644 --- a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts @@ -15,7 +15,7 @@ import { Subject } from 'rxjs'; templateUrl: './self-hosting-page.html' }) export class GfSelfHostingPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${$localize.locale}/${publicRoutes.pricing.path}`; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${publicRoutes.pricing.path}`; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts index 9717ac7ab..d562fc439 100644 --- a/apps/client/src/main.ts +++ b/apps/client/src/main.ts @@ -7,7 +7,7 @@ import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; -import { enableProdMode, importProvidersFrom, LOCALE_ID } from '@angular/core'; +import { enableProdMode, importProvidersFrom } from '@angular/core'; import { DateAdapter, MAT_DATE_FORMATS, @@ -88,10 +88,6 @@ import { environment } from './environments/environment'; provide: DateAdapter, useClass: CustomDateAdapter }, - { - provide: LOCALE_ID, - useValue: $localize.locale - }, { provide: MAT_DATE_FORMATS, useValue: DateFormats diff --git a/package-lock.json b/package-lock.json index 209a7b1c0..986815b83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ghostfolio", - "version": "2.224.0", + "version": "2.224.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ghostfolio", - "version": "2.224.0", + "version": "2.224.2", "hasInstallScript": true, "license": "AGPL-3.0", "dependencies": { diff --git a/package.json b/package.json index 4a9da4da4..1ddb69001 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.224.0", + "version": "2.224.2", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio",