Browse Source

Merge remote-tracking branch 'upstream/main' into feature/oidc-user-link

pull/6075/head
Germán Martín 6 days ago
parent
commit
c37a457dc1
  1. 8
      CHANGELOG.md
  2. 2
      apps/client/src/app/app.component.ts
  3. 2
      apps/client/src/app/components/admin-users/admin-users.component.ts
  4. 2
      apps/client/src/app/components/header/header.component.ts
  5. 2
      apps/client/src/app/components/user-account-access/user-account-access.component.ts
  6. 5
      apps/client/src/app/components/user-account-settings/user-account-settings.component.ts
  7. 4
      apps/client/src/app/core/auth.guard.ts
  8. 2
      apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
  9. 2
      apps/client/src/app/pages/faq/saas/saas-page.component.ts
  10. 2
      apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts
  11. 6
      apps/client/src/main.ts
  12. 4
      package-lock.json
  13. 2
      package.json

8
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

2
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() {

2
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,

2
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(['/']);

2
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`

5
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,

4
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();

2
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;

2
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;

2
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<void>();

6
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

4
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": {

2
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",

Loading…
Cancel
Save