From 71d56ad7894d5330d750f483c93e4b8e23026d99 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Jun 2025 08:39:13 +0200 Subject: [PATCH 1/8] Feature/move asset profile icon component to @ghostfolio/ui (#4858) * Move asset profile icon component to @ghostfolio/ui * Update changelog --- CHANGELOG.md | 4 ++++ .../app/components/accounts-table/accounts-table.module.ts | 2 +- .../asset-profile-dialog/asset-profile-dialog.module.ts | 2 +- .../app/components/admin-platform/admin-platform.module.ts | 2 +- .../create-or-update-platform-dialog.module.ts | 2 +- .../app/components/admin-settings/admin-settings.module.ts | 2 +- .../create-or-update-account-dialog.module.ts | 2 +- .../transfer-balance/transfer-balance-dialog.module.ts | 2 +- .../create-or-update-activity-dialog.module.ts | 2 +- .../ui/src/lib/activities-table/activities-table.component.ts | 2 +- .../lib}/asset-profile-icon/asset-profile-icon.component.html | 0 .../lib}/asset-profile-icon/asset-profile-icon.component.scss | 0 .../lib}/asset-profile-icon/asset-profile-icon.component.ts | 0 libs/ui/src/lib/asset-profile-icon/index.ts | 1 + libs/ui/src/lib/assistant/assistant.component.ts | 2 +- libs/ui/src/lib/holdings-table/holdings-table.component.ts | 2 +- 16 files changed, 16 insertions(+), 11 deletions(-) rename {apps/client/src/app/components => libs/ui/src/lib}/asset-profile-icon/asset-profile-icon.component.html (100%) rename {apps/client/src/app/components => libs/ui/src/lib}/asset-profile-icon/asset-profile-icon.component.scss (100%) rename {apps/client/src/app/components => libs/ui/src/lib}/asset-profile-icon/asset-profile-icon.component.ts (100%) create mode 100644 libs/ui/src/lib/asset-profile-icon/index.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c7e8d3d62..8cad879d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Changed + +- Moved the asset profile icon component to `@ghostfolio/ui` + ### Fixed - Fixed missing `/.well-known/assetlinks.json` for TWA diff --git a/apps/client/src/app/components/accounts-table/accounts-table.module.ts b/apps/client/src/app/components/accounts-table/accounts-table.module.ts index 879ca13ea..da233984b 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.module.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfValueComponent } from '@ghostfolio/ui/value'; import { CommonModule } from '@angular/common'; diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts index bef8c198e..03bd7fcbc 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts @@ -1,5 +1,5 @@ import { AdminMarketDataService } from '@ghostfolio/client/components/admin-market-data/admin-market-data.service'; -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector'; import { GfHistoricalMarketDataEditorComponent } from '@ghostfolio/ui/historical-market-data-editor'; import { GfLineChartComponent } from '@ghostfolio/ui/line-chart'; diff --git a/apps/client/src/app/components/admin-platform/admin-platform.module.ts b/apps/client/src/app/components/admin-platform/admin-platform.module.ts index e98d53988..a7d93f425 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.module.ts +++ b/apps/client/src/app/components/admin-platform/admin-platform.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; diff --git a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts index ac97e57cf..d8b2bd128 100644 --- a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts +++ b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; diff --git a/apps/client/src/app/components/admin-settings/admin-settings.module.ts b/apps/client/src/app/components/admin-settings/admin-settings.module.ts index 706f20a87..eee33461b 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.module.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.module.ts @@ -1,6 +1,6 @@ import { GfAdminPlatformModule } from '@ghostfolio/client/components/admin-platform/admin-platform.module'; import { GfAdminTagModule } from '@ghostfolio/client/components/admin-tag/admin-tag.module'; -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { CommonModule } from '@angular/common'; diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts index 249715d61..ea2537854 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfCurrencySelectorComponent } from '@ghostfolio/ui/currency-selector'; import { CommonModule } from '@angular/common'; diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts index b83ccbb9d..ac9ecf20e 100644 --- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts +++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.module.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.module.ts index 8fb2c1bed..0bdbfdf5c 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfSymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete'; import { GfTagsSelectorComponent } from '@ghostfolio/ui/tags-selector'; import { GfValueComponent } from '@ghostfolio/ui/value'; diff --git a/libs/ui/src/lib/activities-table/activities-table.component.ts b/libs/ui/src/lib/activities-table/activities-table.component.ts index 8e5a44a50..0ed67ac3e 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.ts +++ b/libs/ui/src/lib/activities-table/activities-table.component.ts @@ -1,5 +1,4 @@ import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type'; import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; @@ -8,6 +7,7 @@ import { getDateFormatString, getLocale } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier } from '@ghostfolio/common/interfaces'; import { OrderWithAccount } from '@ghostfolio/common/types'; import { GfActivityTypeComponent } from '@ghostfolio/ui/activity-type'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfNoTransactionsInfoComponent } from '@ghostfolio/ui/no-transactions-info'; import { GfValueComponent } from '@ghostfolio/ui/value'; diff --git a/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.html b/libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.html similarity index 100% rename from apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.html rename to libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.html diff --git a/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.scss b/libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.scss similarity index 100% rename from apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.scss rename to libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.scss diff --git a/apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts b/libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.ts similarity index 100% rename from apps/client/src/app/components/asset-profile-icon/asset-profile-icon.component.ts rename to libs/ui/src/lib/asset-profile-icon/asset-profile-icon.component.ts diff --git a/libs/ui/src/lib/asset-profile-icon/index.ts b/libs/ui/src/lib/asset-profile-icon/index.ts new file mode 100644 index 000000000..9f0cfb3e8 --- /dev/null +++ b/libs/ui/src/lib/asset-profile-icon/index.ts @@ -0,0 +1 @@ +export * from './asset-profile-icon.component'; diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index d8c3dcc2e..76529dc87 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -1,10 +1,10 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { getAssetProfileIdentifier } from '@ghostfolio/common/helper'; import { Filter, PortfolioPosition, User } from '@ghostfolio/common/interfaces'; import { DateRange } from '@ghostfolio/common/types'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { translate } from '@ghostfolio/ui/i18n'; import { FocusKeyManager } from '@angular/cdk/a11y'; diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index 802cdc69a..747ff8581 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -1,10 +1,10 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/client/components/asset-profile-icon/asset-profile-icon.component'; import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { getLocale } from '@ghostfolio/common/helper'; import { AssetProfileIdentifier, PortfolioPosition } from '@ghostfolio/common/interfaces'; +import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; import { GfValueComponent } from '@ghostfolio/ui/value'; import { CommonModule } from '@angular/common'; From 25a755d1bff9247d2b9c8a248a114a335e4e83a3 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Jun 2025 08:50:06 +0200 Subject: [PATCH 2/8] Feature/rename Account to accounts in User database schema (#4859) * Rename Account to accounts * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/admin/admin.service.ts | 4 ++-- apps/api/src/app/user/user.service.ts | 14 +++++++------- .../src/lib/types/user-with-settings.type.ts | 2 +- prisma/schema.prisma | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cad879d3..fad387eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Moved the asset profile icon component to `@ghostfolio/ui` +- Renamed `Account` to `accounts` in the `User` database schema ### Fixed diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index 258d8556f..9a5b8a849 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -824,7 +824,7 @@ export class AdminService { where, select: { _count: { - select: { Account: true, activities: true } + select: { accounts: true, activities: true } }, Analytics: { select: { @@ -871,7 +871,7 @@ export class AdminService { id, role, subscription, - accountCount: _count.Account || 0, + accountCount: _count.accounts || 0, activityCount: _count.activities || 0, country: Analytics?.country, dailyApiRequests: Analytics?.dataProviderGhostfolioDailyRequests || 0, diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 4b04647b5..b9a0e3d20 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -95,7 +95,7 @@ export class UserService { } public async getUser( - { Account, id, permissions, Settings, subscription }: UserWithSettings, + { accounts, id, permissions, Settings, subscription }: UserWithSettings, aLocale = locale ): Promise { const userData = await Promise.all([ @@ -141,6 +141,7 @@ export class UserService { } return { + accounts, activitiesCount, id, permissions, @@ -154,7 +155,6 @@ export class UserService { permissions: accessItem.permissions }; }), - accounts: Account, dateOfFirstActivity: firstActivity?.date ?? new Date(), settings: { ...(Settings.settings as UserSettings), @@ -181,7 +181,7 @@ export class UserService { const { Access, accessToken, - Account, + accounts, Analytics, authChallenge, createdAt, @@ -195,7 +195,7 @@ export class UserService { } = await this.prismaService.user.findUnique({ include: { Access: true, - Account: { + accounts: { include: { Platform: true } }, Analytics: true, @@ -208,7 +208,7 @@ export class UserService { const user: UserWithSettings = { Access, accessToken, - Account, + accounts, authChallenge, createdAt, id, @@ -444,7 +444,7 @@ export class UserService { currentPermissions.push(permissions.impersonateAllUsers); } - user.Account = sortBy(user.Account, ({ name }) => { + user.accounts = sortBy(user.accounts, ({ name }) => { return name.toLowerCase(); }); user.permissions = currentPermissions.sort(); @@ -481,7 +481,7 @@ export class UserService { const user = await this.prismaService.user.create({ data: { ...data, - Account: { + accounts: { create: { currency: DEFAULT_CURRENCY, name: this.i18nService.getTranslation({ diff --git a/libs/common/src/lib/types/user-with-settings.type.ts b/libs/common/src/lib/types/user-with-settings.type.ts index 5fb25a664..9bff8c625 100644 --- a/libs/common/src/lib/types/user-with-settings.type.ts +++ b/libs/common/src/lib/types/user-with-settings.type.ts @@ -6,7 +6,7 @@ import { Access, Account, Settings, User } from '@prisma/client'; // TODO: Compare with User interface export type UserWithSettings = User & { Access: Access[]; - Account: Account[]; + accounts: Account[]; activityCount: number; dataProviderGhostfolioDailyRequests: number; permissions?: string[]; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index b063b1d89..ede19470d 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -245,6 +245,7 @@ model Tag { model User { accessToken String? + accounts Account[] activities Order[] authChallenge String? createdAt DateTime @default(now()) @@ -258,7 +259,6 @@ model User { watchlist SymbolProfile[] @relation("UserWatchlist") Access Access[] @relation("accessGet") AccessGive Access[] @relation("accessGive") - Account Account[] Analytics Analytics? ApiKey ApiKey[] AuthDevice AuthDevice[] From fa99876dcae84a53c6b99902b116e61e47559ae9 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Jun 2025 09:37:23 +0200 Subject: [PATCH 3/8] Feature/rename asset profile icon component to entity logo component (#4861) * Rename asset profile icon component to entity logo component * Update changelog --- CHANGELOG.md | 2 +- .../accounts-table/accounts-table.component.html | 8 ++++---- .../components/accounts-table/accounts-table.module.ts | 4 ++-- .../asset-profile-dialog/asset-profile-dialog.html | 2 +- .../asset-profile-dialog/asset-profile-dialog.module.ts | 4 ++-- .../admin-platform/admin-platform.component.html | 2 +- .../components/admin-platform/admin-platform.module.ts | 4 ++-- .../create-or-update-platform-dialog.html | 6 +----- .../create-or-update-platform-dialog.module.ts | 4 ++-- .../admin-settings/admin-settings.component.html | 2 +- .../components/admin-settings/admin-settings.module.ts | 4 ++-- .../create-or-update-account-dialog.html | 2 +- .../create-or-update-account-dialog.module.ts | 4 ++-- .../transfer-balance/transfer-balance-dialog.html | 4 ++-- .../transfer-balance/transfer-balance-dialog.module.ts | 4 ++-- .../create-or-update-activity-dialog.html | 2 +- .../create-or-update-activity-dialog.module.ts | 4 ++-- .../lib/activities-table/activities-table.component.html | 4 ++-- .../lib/activities-table/activities-table.component.ts | 4 ++-- libs/ui/src/lib/asset-profile-icon/index.ts | 1 - libs/ui/src/lib/assistant/assistant.component.ts | 4 ++-- libs/ui/src/lib/assistant/assistant.html | 2 +- .../entity-logo.component.html} | 0 .../entity-logo.component.scss} | 0 .../entity-logo.component.ts} | 8 ++++---- libs/ui/src/lib/entity-logo/index.ts | 1 + .../src/lib/holdings-table/holdings-table.component.html | 2 +- .../ui/src/lib/holdings-table/holdings-table.component.ts | 4 ++-- 28 files changed, 44 insertions(+), 48 deletions(-) delete mode 100644 libs/ui/src/lib/asset-profile-icon/index.ts rename libs/ui/src/lib/{asset-profile-icon/asset-profile-icon.component.html => entity-logo/entity-logo.component.html} (100%) rename libs/ui/src/lib/{asset-profile-icon/asset-profile-icon.component.scss => entity-logo/entity-logo.component.scss} (100%) rename libs/ui/src/lib/{asset-profile-icon/asset-profile-icon.component.ts => entity-logo/entity-logo.component.ts} (76%) create mode 100644 libs/ui/src/lib/entity-logo/index.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index fad387eee..c2a3dca8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Moved the asset profile icon component to `@ghostfolio/ui` +- Renamed the asset profile icon component to entity logo component and moved to `@ghostfolio/ui` - Renamed `Account` to `accounts` in the `User` database schema ### Fixed diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.html b/apps/client/src/app/components/accounts-table/accounts-table.component.html index ecb51fc29..41ae74bec 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.html +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -44,10 +44,10 @@ @if (element.Platform?.url) { - } {{ element.name }} @@ -92,10 +92,10 @@ >
@if (element.Platform?.url) { - } {{ element.Platform?.name }} diff --git a/apps/client/src/app/components/accounts-table/accounts-table.module.ts b/apps/client/src/app/components/accounts-table/accounts-table.module.ts index da233984b..d7c6bf9fe 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.module.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; +import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo'; import { GfValueComponent } from '@ghostfolio/ui/value'; import { CommonModule } from '@angular/common'; @@ -17,7 +17,7 @@ import { AccountsTableComponent } from './accounts-table.component'; exports: [AccountsTableComponent], imports: [ CommonModule, - GfAssetProfileIconComponent, + GfEntityLogoComponent, GfValueComponent, MatButtonModule, MatMenuModule, diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index f10b6dc02..4c7d39fc0 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -507,7 +507,7 @@ Url @if (assetProfileForm.get('url').value) { - @if (element.url) { - @if (data.platform.url) { - + }
diff --git a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts index d8b2bd128..a6239566c 100644 --- a/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts +++ b/apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.module.ts @@ -1,4 +1,4 @@ -import { GfAssetProfileIconComponent } from '@ghostfolio/ui/asset-profile-icon'; +import { GfEntityLogoComponent } from '@ghostfolio/ui/entity-logo'; import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; @@ -14,8 +14,8 @@ import { CreateOrUpdatePlatformDialog } from './create-or-update-platform-dialog declarations: [CreateOrUpdatePlatformDialog], imports: [ CommonModule, - GfAssetProfileIconComponent, FormsModule, + GfEntityLogoComponent, MatButtonModule, MatDialogModule, MatFormFieldModule, diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.html b/apps/client/src/app/components/admin-settings/admin-settings.component.html index 2d577d582..41069fb10 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.html +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.html @@ -9,7 +9,7 @@
- +
@if (isGhostfolioDataProvider(element)) { -
@if (account.Platform?.url) { -
@if (account.Platform?.url) { -
@if (account.Platform?.url) { - -
@if (element.Account?.Platform?.url) { -
- - Date: Sun, 8 Jun 2025 09:48:00 +0200 Subject: [PATCH 4/8] Feature/update locales (#4864) Co-authored-by: github-actions[bot] --- apps/client/src/locales/messages.ca.xlf | 4 ++-- apps/client/src/locales/messages.de.xlf | 4 ++-- apps/client/src/locales/messages.es.xlf | 4 ++-- apps/client/src/locales/messages.fr.xlf | 4 ++-- apps/client/src/locales/messages.it.xlf | 4 ++-- apps/client/src/locales/messages.nl.xlf | 4 ++-- apps/client/src/locales/messages.pl.xlf | 4 ++-- apps/client/src/locales/messages.pt.xlf | 4 ++-- apps/client/src/locales/messages.tr.xlf | 4 ++-- apps/client/src/locales/messages.uk.xlf | 4 ++-- apps/client/src/locales/messages.xlf | 4 ++-- apps/client/src/locales/messages.zh.xlf | 4 ++-- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index bfab9a8a2..a64b3f3e3 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -1095,7 +1095,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -1143,7 +1143,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index b7b7d6663..4a7762a2e 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -506,7 +506,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -554,7 +554,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 76f53b029..9a12c1fad 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -507,7 +507,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -555,7 +555,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index fac798e8c..31b2e06e2 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -562,7 +562,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -610,7 +610,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 5ef471fdf..e16a9928b 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -507,7 +507,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -555,7 +555,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 3439f03c0..7799e5d4e 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -506,7 +506,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -554,7 +554,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 38f2a5725..3d3a8ac8c 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -987,7 +987,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -1035,7 +1035,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 2635a020a..a8021410a 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -562,7 +562,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -610,7 +610,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 6eab8df6c..474f859d3 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -951,7 +951,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -999,7 +999,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index 24ef55c37..c6f951b7e 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -1439,7 +1439,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -1487,7 +1487,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 9a3af47b8..c3c1931c7 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -937,7 +937,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -984,7 +984,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 4f9202df8..603467ed9 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -996,7 +996,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 42 + 38 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html @@ -1044,7 +1044,7 @@ apps/client/src/app/components/admin-platform/create-or-update-platform-dialog/create-or-update-platform-dialog.html - 49 + 45 apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html From ffce1c720869e929de84ca96f6e646f6e07e8108 Mon Sep 17 00:00:00 2001 From: Mark Philips Date: Sun, 8 Jun 2025 16:31:35 +0600 Subject: [PATCH 5/8] Feature/improve language localization for PL 20250607 (#4857) * Improve language localization for PL * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.pl.xlf | 42 ++++++++++++------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2a3dca8a..68c861b2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Renamed the asset profile icon component to entity logo component and moved to `@ghostfolio/ui` - Renamed `Account` to `accounts` in the `User` database schema +- Improved the language localization for Polish (`pl`) ### Fixed diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 3d3a8ac8c..8eaedb396 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -7473,7 +7473,7 @@ with API access for - with API access for + z dostępem API dla apps/client/src/app/pages/pricing/pricing-page.html 266 @@ -7489,7 +7489,7 @@ Gather All Historical Market Data - Gather All Historical Market Data + Zbierz wszystkie historyczne dane rynkowe apps/client/src/app/components/admin-market-data/admin-market-data.html 231 @@ -7497,7 +7497,7 @@ Gather Historical Market Data - Gather Historical Market Data + Zbierz historyczne dane rynkowe apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 29 @@ -7505,7 +7505,7 @@ Data Gathering is off - Data Gathering is off + Zbieranie danych jest wyłączone apps/client/src/app/components/admin-market-data/admin-market-data.html 38 @@ -7513,7 +7513,7 @@ Performance Calculation - Performance Calculation + Obliczanie wydajności apps/client/src/app/components/user-account-settings/user-account-settings.html 31 @@ -7521,7 +7521,7 @@ someone - someone + ktoś apps/client/src/app/pages/public/public-page.component.ts 33 @@ -7529,7 +7529,7 @@ Add asset to watchlist - Add asset to watchlist + Dodaj zasób do listy obserwowanych apps/client/src/app/components/home-watchlist/create-watchlist-item-dialog/create-watchlist-item-dialog.html 7 @@ -7537,7 +7537,7 @@ Watchlist - Watchlist + Lista obserwowanych apps/client/src/app/components/home-watchlist/home-watchlist.html 4 @@ -7549,7 +7549,7 @@ Watchlist - Watchlist + Lista obserwowanych apps/client/src/app/pages/home/home-page-routing.module.ts 40 @@ -7561,7 +7561,7 @@ Get Early Access - Get Early Access + Uzyskaj wcześniejszy dostęp apps/client/src/app/components/admin-settings/ghostfolio-premium-api-dialog/ghostfolio-premium-api-dialog.html 29 @@ -7569,7 +7569,7 @@ Do you really want to delete this item? - Do you really want to delete this item? + Czy na pewno chcesz usunąć ten element? libs/ui/src/lib/benchmark/benchmark.component.ts 132 @@ -7577,7 +7577,7 @@ Log out - Log out + Wyloguj się apps/client/src/app/components/header/header.component.html 317 @@ -7585,7 +7585,7 @@ Calculations are based on delayed market data and may not be displayed in real-time. - Calculations are based on delayed market data and may not be displayed in real-time. + Obliczenia opierają się na opóźnionych danych rynkowych i mogą nie być wyświetlane w czasie rzeczywistym. apps/client/src/app/components/home-market/home-market.html 43 @@ -7593,7 +7593,7 @@ changelog - changelog + dziennik zmian kebab-case libs/common/src/lib/paths.ts @@ -7602,7 +7602,7 @@ Demo user account has been synced. - Demo user account has been synced. + Konto użytkownika demonstracyjnego zostało zsynchronizowane. apps/client/src/app/components/admin-overview/admin-overview.component.ts 223 @@ -7610,7 +7610,7 @@ Sync Demo User Account - Sync Demo User Account + Synchronizuj konto użytkownika demonstracyjnego apps/client/src/app/components/admin-overview/admin-overview.html 181 @@ -7618,7 +7618,7 @@ Emergency Fund: Set up - Emergency Fund: Set up + Fundusz awaryjny: Utworzenie apps/client/src/app/pages/i18n/i18n-page.html 14 @@ -7626,7 +7626,7 @@ No emergency fund has been set up - No emergency fund has been set up + Nie utworzono funduszu awaryjnego apps/client/src/app/pages/i18n/i18n-page.html 15 @@ -7634,7 +7634,7 @@ An emergency fund has been set up - An emergency fund has been set up + Utworzono fundusz awaryjny apps/client/src/app/pages/i18n/i18n-page.html 18 @@ -7642,7 +7642,7 @@ Fee Ratio - Fee Ratio + Stosunek opłat apps/client/src/app/pages/i18n/i18n-page.html 21 @@ -7666,7 +7666,7 @@ Name - Name + Nazwa libs/ui/src/lib/benchmark/benchmark.component.html 11 From a40c726843d26d209527777d9d45c9b209c1a3b5 Mon Sep 17 00:00:00 2001 From: Elisa Falk Date: Sun, 8 Jun 2025 17:50:17 +0600 Subject: [PATCH 6/8] Feature/improve language localization for CA 20250607 (#4856) * Improve language localization for CA * Update changelog --- CHANGELOG.md | 1 + apps/client/src/locales/messages.ca.xlf | 42 ++++++++++++------------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68c861b2e..3e8b6856a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Renamed the asset profile icon component to entity logo component and moved to `@ghostfolio/ui` - Renamed `Account` to `accounts` in the `User` database schema +- Improved the language localization for Catalan (`ca`) - Improved the language localization for Polish (`pl`) ### Fixed diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index a64b3f3e3..81b012d40 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -4385,7 +4385,7 @@ Load Dividends - Load Dividends + Càrrega de dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 68 @@ -4393,7 +4393,7 @@ Choose or drop a file here - Choose or drop a file here + Trieu o deixeu anar un fitxer aquí apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 84 @@ -4401,7 +4401,7 @@ The following file formats are supported: - The following file formats are supported: + S’admeten els formats de fitxer següents: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 90 @@ -4409,7 +4409,7 @@ Select Dividends - Select Dividends + Seleccioneu Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 113 @@ -4417,7 +4417,7 @@ Select Activities - Select Activities + Seleccioneu Activitats apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 115 @@ -4425,7 +4425,7 @@ Back - Back + Enrere apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html 144 @@ -4437,7 +4437,7 @@ Allocations - Allocations + Allocations apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts 13 @@ -4449,7 +4449,7 @@ Allocations - Allocations + Assignacions apps/client/src/app/pages/portfolio/allocations/allocations-page.html 4 @@ -4457,7 +4457,7 @@ Proportion of Net Worth - Proportion of Net Worth + Proporció del patrimoni net apps/client/src/app/pages/portfolio/allocations/allocations-page.html 12 @@ -4465,7 +4465,7 @@ By Platform - By Platform + Per plataforma apps/client/src/app/pages/portfolio/allocations/allocations-page.html 44 @@ -4473,7 +4473,7 @@ By Currency - By Currency + Per Moneda apps/client/src/app/pages/portfolio/allocations/allocations-page.html 63 @@ -4481,7 +4481,7 @@ By Asset Class - By Asset Class + Per classe d’actiu apps/client/src/app/pages/portfolio/allocations/allocations-page.html 85 @@ -4489,7 +4489,7 @@ By Holding - By Holding + Per Holding apps/client/src/app/pages/portfolio/allocations/allocations-page.html 107 @@ -4497,7 +4497,7 @@ By Sector - By Sector + Per sectors apps/client/src/app/pages/portfolio/allocations/allocations-page.html 130 @@ -4505,7 +4505,7 @@ By Continent - By Continent + Per continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html 153 @@ -4513,7 +4513,7 @@ By Market - By Market + Per Mercat apps/client/src/app/pages/portfolio/allocations/allocations-page.html 175 @@ -4533,7 +4533,7 @@ Developed Markets - Developed Markets + Mercats desenvolupats apps/client/src/app/pages/portfolio/allocations/allocations-page.html 222 @@ -4545,7 +4545,7 @@ Emerging Markets - Emerging Markets + Mercats emergents apps/client/src/app/pages/portfolio/allocations/allocations-page.html 231 @@ -4557,7 +4557,7 @@ Other Markets - Other Markets + Altres Mercats apps/client/src/app/pages/portfolio/allocations/allocations-page.html 240 @@ -4569,7 +4569,7 @@ No data available - No data available + No hi ha dades disponibles apps/client/src/app/pages/portfolio/allocations/allocations-page.html 250 @@ -4589,7 +4589,7 @@ By Country - By Country + Per País apps/client/src/app/pages/portfolio/allocations/allocations-page.html 264 From 766d792b10d366afa0cea6a583deece0354988ae Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Jun 2025 13:50:52 +0200 Subject: [PATCH 7/8] Feature/restructure paths to routes (#4863) * Restructure paths to routes --- apps/client/src/app/app-routing.module.ts | 50 +++++++------- apps/client/src/app/app.component.ts | 32 ++++----- .../access-table/access-table.component.ts | 4 +- .../account-detail-dialog.component.ts | 20 ++++-- .../admin-settings.component.ts | 4 +- .../benchmark-comparator.component.ts | 6 +- .../components/header/header.component.html | 26 +++---- .../app/components/header/header.component.ts | 38 +++++----- .../holding-detail-dialog.component.ts | 20 ++++-- .../home-holdings/home-holdings.component.ts | 8 +-- .../home-overview/home-overview.component.ts | 12 ++-- ...scription-interstitial-dialog.component.ts | 4 +- .../user-account-membership.component.ts | 4 +- apps/client/src/app/core/auth.guard.ts | 48 +++++++------ .../src/app/core/http-response.interceptor.ts | 6 +- .../pages/about/about-page-routing.module.ts | 12 ++-- .../app/pages/about/about-page.component.ts | 14 ++-- .../overview/about-overview-page.component.ts | 10 +-- .../accounts/accounts-page-routing.module.ts | 3 +- .../pages/admin/admin-page-routing.module.ts | 10 +-- .../app/pages/admin/admin-page.component.ts | 12 ++-- .../hallo-ghostfolio-page.component.ts | 8 +-- .../hello-ghostfolio-page.component.ts | 8 +-- ...st-months-in-open-source-page.component.ts | 6 +- ...-meets-internet-identity-page.component.ts | 4 +- ...get-my-finances-in-order-page.component.ts | 6 +- .../500-stars-on-github-page.component.ts | 8 +-- .../hacktoberfest-2022-page.component.ts | 4 +- .../black-friday-2022-page.component.ts | 8 +-- ...g-your-personal-finances-page.component.ts | 4 +- ...auf-sackgeld-vorgestellt-page.component.ts | 4 +- .../ghostfolio-meets-umbrel-page.component.ts | 4 +- .../1000-stars-on-github-page.component.ts | 8 +-- ...otential-with-ghostfolio-page.component.ts | 8 +-- ...ploring-the-path-to-fire-page.component.ts | 6 +- ...tfolio-joins-oss-friends-page.component.ts | 6 +- .../ghostfolio-2-page.component.ts | 12 ++-- .../hacktoberfest-2023-page.component.ts | 8 +-- .../black-week-2023-page.component.ts | 8 +-- ...oberfest-2023-debriefing-page.component.ts | 8 +-- .../hacktoberfest-2024-page.component.ts | 8 +-- .../black-weeks-2024-page.component.ts | 8 +-- .../app/pages/faq/faq-page-routing.module.ts | 6 +- .../src/app/pages/faq/faq-page.component.ts | 8 +-- .../overview/faq-overview-page.component.ts | 6 +- .../app/pages/faq/saas/saas-page.component.ts | 15 ++-- .../self-hosting-page.component.ts | 4 +- .../pages/features/features-page.component.ts | 6 +- .../pages/home/home-page-routing.module.ts | 18 +++-- .../src/app/pages/home/home-page.component.ts | 16 ++--- .../pages/landing/landing-page.component.ts | 10 +-- .../pages/open/open-page-routing.module.ts | 3 +- .../activities-page-routing.module.ts | 3 +- .../portfolio-page-routing.module.ts | 15 ++-- .../portfolio/portfolio-page.component.ts | 14 ++-- .../pages/pricing/pricing-page.component.ts | 6 +- .../register/register-page-routing.module.ts | 3 +- .../show-access-token-dialog.component.ts | 6 +- .../glossary/resources-glossary.component.ts | 6 +- .../overview/resources-overview.component.ts | 10 +-- ...sonal-finance-tools-page-routing.module.ts | 4 +- .../personal-finance-tools-page.component.ts | 8 +-- .../product-page.component.ts | 10 +-- .../resources-page-routing.module.ts | 10 +-- .../resources/resources-page.component.ts | 8 +-- .../user-account-page-routing.module.ts | 6 +- .../user-account-page.component.ts | 8 +-- .../app/pages/zen/zen-page-routing.module.ts | 15 ++-- .../src/app/pages/zen/zen-page.component.ts | 10 +-- libs/common/src/lib/{paths.ts => routes.ts} | 69 ++++++++++++++++--- .../membership-card.component.ts | 4 +- .../no-transactions-info.component.ts | 8 +-- .../premium-indicator.component.ts | 4 +- 73 files changed, 447 insertions(+), 359 deletions(-) rename libs/common/src/lib/{paths.ts => routes.ts} (52%) diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index b3be70bb2..46473d35d 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -1,6 +1,10 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PageTitleStrategy } from '@ghostfolio/client/services/page-title.strategy'; -import { paths } from '@ghostfolio/common/paths'; +import { + publicRoutes, + routes as ghostfolioRoutes, + internalRoutes +} from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes, TitleStrategy } from '@angular/router'; @@ -9,26 +13,26 @@ import { ModulePreloadService } from './core/module-preload.service'; const routes: Routes = [ { - path: paths.about, + path: ghostfolioRoutes.about, loadChildren: () => import('./pages/about/about-page.module').then((m) => m.AboutPageModule) }, { - path: paths.account, + path: ghostfolioRoutes.account, loadChildren: () => import('./pages/user-account/user-account-page.module').then( (m) => m.UserAccountPageModule ) }, { - path: paths.accounts, + path: internalRoutes.accounts.path, loadChildren: () => import('./pages/accounts/accounts-page.module').then( (m) => m.AccountsPageModule ) }, { - path: paths.adminControl, + path: ghostfolioRoutes.adminControl, loadChildren: () => import('./pages/admin/admin-page.module').then((m) => m.AdminPageModule) }, @@ -38,16 +42,16 @@ const routes: Routes = [ import('./pages/api/api-page.component').then( (c) => c.GfApiPageComponent ), - path: paths.api, + path: ghostfolioRoutes.api, title: 'Ghostfolio API' }, { - path: paths.auth, + path: ghostfolioRoutes.auth, loadChildren: () => import('./pages/auth/auth-page.module').then((m) => m.AuthPageModule) }, { - path: paths.blog, + path: ghostfolioRoutes.blog, loadChildren: () => import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule) }, @@ -57,10 +61,10 @@ const routes: Routes = [ import('./pages/demo/demo-page.component').then( (c) => c.GfDemoPageComponent ), - path: paths.demo + path: ghostfolioRoutes.demo }, { - path: paths.faq, + path: ghostfolioRoutes.faq, loadChildren: () => import('./pages/faq/faq-page.module').then((m) => m.FaqPageModule) }, @@ -70,11 +74,11 @@ const routes: Routes = [ import('./pages/features/features-page.component').then( (c) => c.GfFeaturesPageComponent ), - path: paths.features, + path: ghostfolioRoutes.features, title: $localize`Features` }, { - path: paths.home, + path: internalRoutes.home.path, loadChildren: () => import('./pages/home/home-page.module').then((m) => m.HomePageModule) }, @@ -84,58 +88,58 @@ const routes: Routes = [ import('./pages/i18n/i18n-page.component').then( (c) => c.GfI18nPageComponent ), - path: paths.i18n, + path: ghostfolioRoutes.i18n, title: $localize`Internationalization` }, { - path: paths.markets, + path: ghostfolioRoutes.markets, loadChildren: () => import('./pages/markets/markets-page.module').then( (m) => m.MarketsPageModule ) }, { - path: paths.openStartup, + path: publicRoutes.openStartup.path, loadChildren: () => import('./pages/open/open-page.module').then((m) => m.OpenPageModule) }, { - path: paths.portfolio, + path: internalRoutes.portfolio.path, loadChildren: () => import('./pages/portfolio/portfolio-page.module').then( (m) => m.PortfolioPageModule ) }, { - path: paths.pricing, + path: ghostfolioRoutes.pricing, loadChildren: () => import('./pages/pricing/pricing-page.module').then( (m) => m.PricingPageModule ) }, { - path: paths.public, + path: ghostfolioRoutes.public, loadChildren: () => import('./pages/public/public-page.module').then( (m) => m.PublicPageModule ) }, { - path: paths.register, + path: publicRoutes.register.path, loadChildren: () => import('./pages/register/register-page.module').then( (m) => m.RegisterPageModule ) }, { - path: paths.resources, + path: ghostfolioRoutes.resources, loadChildren: () => import('./pages/resources/resources-page.module').then( (m) => m.ResourcesPageModule ) }, { - path: paths.start, + path: ghostfolioRoutes.start, loadChildren: () => import('./pages/landing/landing-page.module').then( (m) => m.LandingPageModule @@ -146,11 +150,11 @@ const routes: Routes = [ import('./pages/webauthn/webauthn-page.component').then( (c) => c.GfWebauthnPageComponent ), - path: paths.webauthn, + path: ghostfolioRoutes.webauthn, title: $localize`Sign in` }, { - path: paths.zen, + path: internalRoutes.zen.path, loadChildren: () => import('./pages/zen/zen-page.module').then((m) => m.ZenPageModule) }, diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 5d198580e..f0be8c76e 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -2,8 +2,8 @@ import { GfHoldingDetailDialogComponent } from '@ghostfolio/client/components/ho import { HoldingDetailDialogParams } from '@ghostfolio/client/components/holding-detail-dialog/interfaces/interfaces'; import { getCssVariable } from '@ghostfolio/common/helper'; import { InfoItem, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { ColorScheme } from '@ghostfolio/common/types'; import { DOCUMENT } from '@angular/common'; @@ -63,25 +63,25 @@ export class AppComponent implements OnDestroy, OnInit { public hasTabs = false; public info: InfoItem; public pageTitle: string; - public routerLinkAbout = ['/' + paths.about]; - public routerLinkAboutChangelog = ['/' + paths.about, paths.changelog]; - public routerLinkAboutLicense = ['/' + paths.about, paths.license]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkAboutChangelog = ['/' + routes.about, routes.changelog]; + public routerLinkAboutLicense = ['/' + routes.about, routes.license]; public routerLinkAboutPrivacyPolicy = [ - '/' + paths.about, - paths.privacyPolicy + '/' + routes.about, + routes.privacyPolicy ]; public routerLinkAboutTermsOfService = [ - '/' + paths.about, - paths.termsOfService + '/' + routes.about, + routes.termsOfService ]; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFaq = ['/' + paths.faq]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkMarkets = ['/' + paths.markets]; - public routerLinkOpenStartup = ['/' + paths.openStartup]; - public routerLinkPricing = ['/' + paths.pricing]; - public routerLinkRegister = ['/' + paths.register]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFaq = ['/' + routes.faq]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkMarkets = ['/' + routes.markets]; + public routerLinkOpenStartup = ['/' + publicRoutes.openStartup.path]; + public routerLinkPricing = ['/' + routes.pricing]; + public routerLinkRegister = ['/' + publicRoutes.register.path]; + public routerLinkResources = ['/' + routes.resources]; public showFooter = false; public user: User; diff --git a/apps/client/src/app/components/access-table/access-table.component.ts b/apps/client/src/app/components/access-table/access-table.component.ts index bcd5839e0..5487f570d 100644 --- a/apps/client/src/app/components/access-table/access-table.component.ts +++ b/apps/client/src/app/components/access-table/access-table.component.ts @@ -1,7 +1,7 @@ import { ConfirmationDialogType } from '@ghostfolio/client/core/notification/confirmation-dialog/confirmation-dialog.type'; import { NotificationService } from '@ghostfolio/client/core/notification/notification.service'; import { Access, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Clipboard } from '@angular/cdk/clipboard'; import { @@ -55,7 +55,7 @@ export class AccessTableComponent implements OnChanges { public getPublicUrl(aId: string): string { const languageCode = this.user.settings.language; - return `${this.baseUrl}/${languageCode}/${paths.public}/${aId}`; + return `${this.baseUrl}/${languageCode}/${routes.public}/${aId}`; } public onCopyUrlToClipboard(aId: string): void { diff --git a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts index ba3b9e871..aea1c544c 100644 --- a/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts +++ b/apps/client/src/app/components/account-detail-dialog/account-detail-dialog.component.ts @@ -9,8 +9,8 @@ import { PortfolioPosition, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { OrderWithAccount } from '@ghostfolio/common/types'; import { @@ -93,9 +93,12 @@ export class AccountDetailDialog implements OnDestroy, OnInit { } public onCloneActivity(aActivity: Activity) { - this.router.navigate(['/' + paths.portfolio, paths.activities], { - queryParams: { activityId: aActivity.id, createDialog: true } - }); + this.router.navigate( + internalRoutes.portfolio.subRoutes.activities.routerLink, + { + queryParams: { activityId: aActivity.id, createDialog: true } + } + ); this.dialogRef.close(); } @@ -152,9 +155,12 @@ export class AccountDetailDialog implements OnDestroy, OnInit { } public onUpdateActivity(aActivity: Activity) { - this.router.navigate(['/' + paths.portfolio, paths.activities], { - queryParams: { activityId: aActivity.id, editDialog: true } - }); + this.router.navigate( + internalRoutes.portfolio.subRoutes.activities.routerLink, + { + queryParams: { activityId: aActivity.id, editDialog: true } + } + ); this.dialogRef.close(); } diff --git a/apps/client/src/app/components/admin-settings/admin-settings.component.ts b/apps/client/src/app/components/admin-settings/admin-settings.component.ts index 68db9eaac..e6fdb53cc 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.component.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.component.ts @@ -10,7 +10,7 @@ import { DataProviderInfo, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectionStrategy, @@ -72,7 +72,7 @@ export class AdminSettingsComponent implements OnDestroy, OnInit { const languageCode = this.user.settings.language; - this.pricingUrl = `https://ghostfol.io/${languageCode}/${paths.pricing}`; + this.pricingUrl = `https://ghostfol.io/${languageCode}/${routes.pricing}`; this.changeDetectorRef.markForCheck(); } diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts index c98f01fb7..74a2f85d6 100644 --- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts +++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts @@ -12,8 +12,8 @@ import { parseDate } from '@ghostfolio/common/helper'; import { LineChartItem, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { routes } from '@ghostfolio/common/routes'; import { ColorScheme } from '@ghostfolio/common/types'; import { @@ -65,8 +65,8 @@ export class BenchmarkComparatorComponent implements OnChanges, OnDestroy { public chart: Chart<'line'>; public hasPermissionToAccessAdminControl: boolean; public routerLinkAdminControlMarketData = [ - '/' + paths.adminControl, - paths.marketData + '/' + routes.adminControl, + routes.marketData ]; public constructor() { diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index 74737ca05..c20711242 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -20,9 +20,9 @@ mat-flat-button [ngClass]="{ 'font-weight-bold': - currentRoute === paths.home || currentRoute === paths.zen, + currentRoute === routes.home || currentRoute === routes.zen, 'text-decoration-underline': - currentRoute === paths.home || currentRoute === paths.zen + currentRoute === routes.home || currentRoute === routes.zen }" [routerLink]="['/']" >OverviewPortfolioAccountsAdmin ControlOverviewPortfolioAccounts My Ghostfolio @@ -271,7 +271,7 @@ i18n mat-menu-item [ngClass]="{ - 'font-weight-bold': currentRoute === paths.adminControl + 'font-weight-bold': currentRoute === routes.adminControl }" [routerLink]="routerLinkAdminControl" >Admin Control(); diff --git a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts index cdaea83dc..6e8fc2af5 100644 --- a/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts +++ b/apps/client/src/app/components/holding-detail-dialog/holding-detail-dialog.component.ts @@ -13,8 +13,8 @@ import { LineChartItem, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table'; import { GfDataProviderCreditsComponent } from '@ghostfolio/ui/data-provider-credits'; import { GfHistoricalMarketDataEditorComponent } from '@ghostfolio/ui/historical-market-data-editor'; @@ -470,9 +470,12 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { } public onCloneActivity(aActivity: Activity) { - this.router.navigate(['/' + paths.portfolio, paths.activities], { - queryParams: { activityId: aActivity.id, createDialog: true } - }); + this.router.navigate( + internalRoutes.portfolio.subRoutes.activities.routerLink, + { + queryParams: { activityId: aActivity.id, createDialog: true } + } + ); this.dialogRef.close(); } @@ -512,9 +515,12 @@ export class GfHoldingDetailDialogComponent implements OnDestroy, OnInit { } public onUpdateActivity(aActivity: Activity) { - this.router.navigate(['/' + paths.portfolio, paths.activities], { - queryParams: { activityId: aActivity.id, editDialog: true } - }); + this.router.navigate( + internalRoutes.portfolio.subRoutes.activities.routerLink, + { + queryParams: { activityId: aActivity.id, editDialog: true } + } + ); this.dialogRef.close(); } diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index 9f772a3e4..03de79f44 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -7,8 +7,8 @@ import { ToggleOption, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { HoldingType, HoldingsViewMode } from '@ghostfolio/common/types'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; @@ -37,10 +37,8 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { { label: $localize`Active`, value: 'ACTIVE' }, { label: $localize`Closed`, value: 'CLOSED' } ]; - public routerLinkPortfolioActivities = [ - '/' + paths.portfolio, - paths.activities - ]; + public routerLinkPortfolioActivities = + internalRoutes.portfolio.subRoutes.activities.routerLink; public user: User; public viewModeFormControl = new FormControl( HomeHoldingsComponent.DEFAULT_HOLDINGS_VIEW_MODE diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts index 783b7d1b9..776967c3d 100644 --- a/apps/client/src/app/components/home-overview/home-overview.component.ts +++ b/apps/client/src/app/components/home-overview/home-overview.component.ts @@ -10,8 +10,8 @@ import { PortfolioPerformance, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -37,12 +37,10 @@ export class HomeOverviewComponent implements OnDestroy, OnInit { public isLoadingPerformance = true; public performance: PortfolioPerformance; public precision = 2; - public routerLinkAccounts = ['/' + paths.accounts]; - public routerLinkPortfolio = ['/' + paths.portfolio]; - public routerLinkPortfolioActivities = [ - '/' + paths.portfolio, - paths.activities - ]; + public routerLinkAccounts = internalRoutes.accounts.routerLink; + public routerLinkPortfolio = internalRoutes.portfolio.routerLink; + public routerLinkPortfolioActivities = + internalRoutes.portfolio.subRoutes.activities.routerLink; public showDetails = false; public unit: string; public user: User; diff --git a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts index 233493d13..df257a001 100644 --- a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts +++ b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectionStrategy, @@ -28,7 +28,7 @@ export class SubscriptionInterstitialDialog implements OnInit { public remainingSkipButtonDelay = SubscriptionInterstitialDialog.SKIP_BUTTON_DELAY_IN_SECONDS; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkPricing = ['/' + routes.pricing]; public variantIndex: number; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts index 82810392c..27655915b 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.component.ts @@ -4,8 +4,8 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { getDateFormatString } from '@ghostfolio/common/helper'; import { User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectionStrategy, @@ -37,7 +37,7 @@ export class UserAccountMembershipComponent implements OnDestroy { public hasPermissionToUpdateUserSettings: boolean; public price: number; public priceId: string; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkPricing = ['/' + routes.pricing]; public trySubscriptionMail = 'mailto:hi@ghostfol.io?Subject=Ghostfolio Premium Trial&body=Hello%0D%0DI am interested in Ghostfolio Premium. Can you please send me a coupon code to try it for some time?%0D%0DKind regards'; public user: User; diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index 87ef23d60..21a92b166 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -1,7 +1,11 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { paths } from '@ghostfolio/common/paths'; +import { + internalRoutes, + publicRoutes, + routes +} from '@ghostfolio/common/routes'; import { Injectable } from '@angular/core'; import { @@ -15,17 +19,17 @@ import { catchError } from 'rxjs/operators'; @Injectable({ providedIn: 'root' }) export class AuthGuard { private static PUBLIC_PAGE_ROUTES = [ - `/${paths.about}`, - `/${paths.blog}`, - `/${paths.demo}`, - `/${paths.faq}`, - `/${paths.features}`, - `/${paths.markets}`, - `/${paths.openStartup}`, - `/${paths.pricing}`, - `/${paths.public}`, - `/${paths.register}`, - `/${paths.resources}` + `/${routes.about}`, + `/${routes.blog}`, + `/${routes.demo}`, + `/${routes.faq}`, + `/${routes.features}`, + `/${routes.markets}`, + `/${publicRoutes.openStartup.path}`, + `/${routes.pricing}`, + `/${routes.public}`, + `/${publicRoutes.register.path}`, + `/${routes.resources}` ]; public constructor( @@ -48,10 +52,10 @@ export class AuthGuard { .pipe( catchError(() => { if (utmSource === 'ios') { - this.router.navigate(['/' + paths.demo]); + this.router.navigate(['/' + routes.demo]); resolve(false); } else if (utmSource === 'trusted-web-activity') { - this.router.navigate(['/' + paths.register]); + this.router.navigate(['/' + publicRoutes.register.path]); resolve(false); } else if ( AuthGuard.PUBLIC_PAGE_ROUTES.some((publicPageRoute) => { @@ -62,7 +66,7 @@ export class AuthGuard { resolve(true); return EMPTY; } else if (state.url !== '/start') { - this.router.navigate(['/' + paths.start]); + this.router.navigate(['/' + routes.start]); resolve(false); return EMPTY; } @@ -88,26 +92,26 @@ export class AuthGuard { resolve(true); return; } else if ( - state.url.startsWith(`/${paths.home}`) && + state.url.startsWith(`/${internalRoutes.home.path}`) && user.settings.viewMode === 'ZEN' ) { - this.router.navigate(['/' + paths.zen]); + this.router.navigate(internalRoutes.zen.routerLink); resolve(false); return; - } else if (state.url.startsWith(`/${paths.start}`)) { + } else if (state.url.startsWith(`/${routes.start}`)) { if (user.settings.viewMode === 'ZEN') { - this.router.navigate(['/' + paths.zen]); + this.router.navigate(internalRoutes.zen.routerLink); } else { - this.router.navigate(['/' + paths.home]); + this.router.navigate(internalRoutes.home.routerLink); } resolve(false); return; } else if ( - state.url.startsWith(`/${paths.zen}`) && + state.url.startsWith(`/${internalRoutes.zen.path}`) && user.settings.viewMode === 'DEFAULT' ) { - this.router.navigate(['/' + paths.home]); + this.router.navigate(internalRoutes.home.routerLink); resolve(false); return; } diff --git a/apps/client/src/app/core/http-response.interceptor.ts b/apps/client/src/app/core/http-response.interceptor.ts index 32c5350bb..31e1c1947 100644 --- a/apps/client/src/app/core/http-response.interceptor.ts +++ b/apps/client/src/app/core/http-response.interceptor.ts @@ -2,7 +2,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service'; import { InfoItem } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { HTTP_INTERCEPTORS, @@ -75,7 +75,7 @@ export class HttpResponseInterceptor implements HttpInterceptor { }); this.snackBarRef.onAction().subscribe(() => { - this.router.navigate(['/' + paths.pricing]); + this.router.navigate(['/' + routes.pricing]); }); } } else if (error.status === StatusCodes.INTERNAL_SERVER_ERROR) { @@ -111,7 +111,7 @@ export class HttpResponseInterceptor implements HttpInterceptor { } else if (error.status === StatusCodes.UNAUTHORIZED) { if (!error.url.includes('/data-providers/ghostfolio/status')) { if (this.webAuthnService.isEnabled()) { - this.router.navigate(['/' + paths.webauthn]); + this.router.navigate(['/' + routes.webauthn]); } else { this.tokenStorageService.signOut(); } diff --git a/apps/client/src/app/pages/about/about-page-routing.module.ts b/apps/client/src/app/pages/about/about-page-routing.module.ts index d8d70a2da..d17612584 100644 --- a/apps/client/src/app/pages/about/about-page-routing.module.ts +++ b/apps/client/src/app/pages/about/about-page-routing.module.ts @@ -1,5 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -18,35 +18,35 @@ const routes: Routes = [ ) }, { - path: paths.changelog, + path: ghostfolioRoutes.changelog, loadChildren: () => import('./changelog/changelog-page.module').then( (m) => m.ChangelogPageModule ) }, { - path: paths.license, + path: ghostfolioRoutes.license, loadChildren: () => import('./license/license-page.module').then( (m) => m.LicensePageModule ) }, { - path: paths.ossFriends, + path: ghostfolioRoutes.ossFriends, loadChildren: () => import('./oss-friends/oss-friends-page.module').then( (m) => m.OpenSourceSoftwareFriendsPageModule ) }, { - path: paths.privacyPolicy, + path: ghostfolioRoutes.privacyPolicy, loadChildren: () => import('./privacy-policy/privacy-policy-page.module').then( (m) => m.PrivacyPolicyPageModule ) }, { - path: paths.termsOfService, + path: ghostfolioRoutes.termsOfService, loadChildren: () => import('./terms-of-service/terms-of-service-page.module').then( (m) => m.TermsOfServicePageModule diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts index deeffa166..de307cbf9 100644 --- a/apps/client/src/app/pages/about/about-page.component.ts +++ b/apps/client/src/app/pages/about/about-page.component.ts @@ -1,8 +1,8 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -44,17 +44,17 @@ export class AboutPageComponent implements OnDestroy, OnInit { { iconName: 'information-circle-outline', label: $localize`About`, - path: ['/' + paths.about] + path: ['/' + routes.about] }, { iconName: 'sparkles-outline', label: $localize`Changelog`, - path: ['/' + paths.about, paths.changelog] + path: ['/' + routes.about, routes.changelog] }, { iconName: 'ribbon-outline', label: $localize`License`, - path: ['/' + paths.about, paths.license], + path: ['/' + routes.about, routes.license], showCondition: !this.hasPermissionForSubscription } ]; @@ -63,14 +63,14 @@ export class AboutPageComponent implements OnDestroy, OnInit { this.tabs.push({ iconName: 'shield-checkmark-outline', label: $localize`Privacy Policy`, - path: ['/' + paths.about, paths.privacyPolicy], + path: ['/' + routes.about, routes.privacyPolicy], showCondition: this.hasPermissionForSubscription }); this.tabs.push({ iconName: 'document-text-outline', label: $localize`Terms of Service`, - path: ['/' + paths.about, paths.termsOfService], + path: ['/' + routes.about, routes.termsOfService], showCondition: this.hasPermissionForSubscription }); @@ -82,7 +82,7 @@ export class AboutPageComponent implements OnDestroy, OnInit { this.tabs.push({ iconName: 'happy-outline', label: 'OSS Friends', - path: ['/' + paths.about, paths.ossFriends] + path: ['/' + routes.about, routes.ossFriends] }); }); } diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts index ec135e4d3..a2d911a8e 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts +++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -1,8 +1,8 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; @@ -18,10 +18,10 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { public hasPermissionForStatistics: boolean; public hasPermissionForSubscription: boolean; public isLoggedIn: boolean; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFaq = ['/' + paths.faq]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkOpenStartup = ['/' + paths.openStartup]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFaq = ['/' + routes.faq]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkOpenStartup = ['/' + publicRoutes.openStartup.path]; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts b/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts index 59c708006..d34ab48fb 100644 --- a/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts +++ b/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts @@ -1,4 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -10,7 +11,7 @@ const routes: Routes = [ canActivate: [AuthGuard], component: AccountsPageComponent, path: '', - title: $localize`Accounts` + title: internalRoutes.accounts.title } ]; diff --git a/apps/client/src/app/pages/admin/admin-page-routing.module.ts b/apps/client/src/app/pages/admin/admin-page-routing.module.ts index d22c754bb..f19f27051 100644 --- a/apps/client/src/app/pages/admin/admin-page-routing.module.ts +++ b/apps/client/src/app/pages/admin/admin-page-routing.module.ts @@ -4,7 +4,7 @@ import { AdminOverviewComponent } from '@ghostfolio/client/components/admin-over import { AdminSettingsComponent } from '@ghostfolio/client/components/admin-settings/admin-settings.component'; import { AdminUsersComponent } from '@ghostfolio/client/components/admin-users/admin-users.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -21,22 +21,22 @@ const routes: Routes = [ title: $localize`Admin Control` }, { - path: paths.jobs, + path: ghostfolioRoutes.jobs, component: AdminJobsComponent, title: $localize`Job Queue` }, { - path: paths.marketData, + path: ghostfolioRoutes.marketData, component: AdminMarketDataComponent, title: $localize`Market Data` }, { - path: paths.settings, + path: ghostfolioRoutes.settings, component: AdminSettingsComponent, title: $localize`Settings` }, { - path: paths.users, + path: ghostfolioRoutes.users, component: AdminUsersComponent, title: $localize`Users` } diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts index e787cb0fc..eea04f930 100644 --- a/apps/client/src/app/pages/admin/admin-page.component.ts +++ b/apps/client/src/app/pages/admin/admin-page.component.ts @@ -1,5 +1,5 @@ import { TabConfiguration } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -27,27 +27,27 @@ export class AdminPageComponent implements OnDestroy, OnInit { { iconName: 'reader-outline', label: $localize`Overview`, - path: ['/' + paths.adminControl] + path: ['/' + routes.adminControl] }, { iconName: 'settings-outline', label: $localize`Settings`, - path: ['/' + paths.adminControl, paths.settings] + path: ['/' + routes.adminControl, routes.settings] }, { iconName: 'server-outline', label: $localize`Market Data`, - path: ['/' + paths.adminControl, paths.marketData] + path: ['/' + routes.adminControl, routes.marketData] }, { iconName: 'flash-outline', label: $localize`Job Queue`, - path: ['/' + paths.adminControl, paths.jobs] + path: ['/' + routes.adminControl, routes.jobs] }, { iconName: 'people-outline', label: $localize`Users`, - path: ['/' + paths.adminControl, paths.users] + path: ['/' + routes.adminControl, routes.users] } ]; } diff --git a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts index 222a79648..430166065 100644 --- a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './hallo-ghostfolio-page.html' }) export class HalloGhostfolioPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkPricing = ['/' + paths.pricing]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkPricing = ['/' + routes.pricing]; + public routerLinkResources = ['/' + routes.resources]; } diff --git a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts index 7538356a5..0c8584cd0 100644 --- a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './hello-ghostfolio-page.html' }) export class HelloGhostfolioPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkPricing = ['/' + paths.pricing]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkPricing = ['/' + routes.pricing]; + public routerLinkResources = ['/' + routes.resources]; } diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts index 348318421..0b5e6f659 100644 --- a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,6 +11,6 @@ import { RouterModule } from '@angular/router'; templateUrl: './first-months-in-open-source-page.html' }) export class FirstMonthsInOpenSourcePageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts b/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts index 8c0160c25..a644c7996 100644 --- a/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,5 +11,5 @@ import { RouterModule } from '@angular/router'; templateUrl: './ghostfolio-meets-internet-identity-page.html' }) export class GhostfolioMeetsInternetIdentityPageComponent { - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts index 4d747e89a..c7ab04820 100644 --- a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,6 +11,6 @@ import { RouterModule } from '@angular/router'; templateUrl: './how-do-i-get-my-finances-in-order-page.html' }) export class HowDoIGetMyFinancesInOrderPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkResources = ['/' + routes.resources]; } diff --git a/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts b/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts index b0cd76494..635a8bde3 100644 --- a/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './500-stars-on-github-page.html' }) export class FiveHundredStarsOnGitHubPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkMarkets = ['/' + paths.markets]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkMarkets = ['/' + routes.markets]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts b/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts index 491d82f20..8b15e9f2f 100644 --- a/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,5 +11,5 @@ import { RouterModule } from '@angular/router'; templateUrl: './hacktoberfest-2022-page.html' }) export class Hacktoberfest2022PageComponent { - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts index 311d25096..07ffd76d9 100644 --- a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { Component } from '@angular/core'; @@ -12,7 +12,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './black-friday-2022-page.html' }) export class BlackFriday2022PageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts b/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts index cffd0be81..f9ebee82b 100644 --- a/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,5 +11,5 @@ import { RouterModule } from '@angular/router'; templateUrl: './the-importance-of-tracking-your-personal-finances-page.html' }) export class TheImportanceOfTrackingYourPersonalFinancesPageComponent { - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts b/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts index cb86af86f..363bfc8eb 100644 --- a/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,5 +11,5 @@ import { RouterModule } from '@angular/router'; templateUrl: './ghostfolio-auf-sackgeld-vorgestellt-page.html' }) export class GhostfolioAufSackgeldVorgestelltPageComponent { - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts b/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts index 25fb5d05a..9d6af906c 100644 --- a/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,5 +11,5 @@ import { RouterModule } from '@angular/router'; templateUrl: './ghostfolio-meets-umbrel-page.html' }) export class GhostfolioMeetsUmbrelPageComponent { - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts b/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts index 1203eb16b..4e1360622 100644 --- a/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './1000-stars-on-github-page.html' }) export class ThousandStarsOnGitHubPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts b/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts index a33691e92..e97dce009 100644 --- a/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './unlock-your-financial-potential-with-ghostfolio-page.html' }) export class UnlockYourFinancialPotentialWithGhostfolioPageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkResources = ['/' + routes.resources]; } diff --git a/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts b/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts index 891d835e8..abe3d9383 100644 --- a/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,6 +11,6 @@ import { RouterModule } from '@angular/router'; templateUrl: './exploring-the-path-to-fire-page.html' }) export class ExploringThePathToFirePageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; } diff --git a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts index 8ba2dac49..0811f2df7 100644 --- a/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,6 +11,6 @@ import { RouterModule } from '@angular/router'; templateUrl: './ghostfolio-joins-oss-friends-page.html' }) export class GhostfolioJoinsOssFriendsPageComponent { - public routerLinkAboutOssFriends = ['/' + paths.about, paths.ossFriends]; - public routerLinkBlog = ['/' + paths.blog]; + public routerLinkAboutOssFriends = ['/' + routes.about, routes.ossFriends]; + public routerLinkBlog = ['/' + routes.blog]; } diff --git a/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts b/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts index 42e8f8200..4d5581251 100644 --- a/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,9 +11,9 @@ import { RouterModule } from '@angular/router'; templateUrl: './ghostfolio-2-page.html' }) export class Ghostfolio2PageComponent { - public routerLinkAbout = ['/' + paths.about]; - public routerLinkAboutChangelog = ['/' + paths.about, paths.changelog]; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkMarkets = ['/' + paths.markets]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkAboutChangelog = ['/' + routes.about, routes.changelog]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkMarkets = ['/' + routes.markets]; } diff --git a/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts index 3aed72cbe..0525adc93 100644 --- a/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/09/hacktoberfest-2023/hacktoberfest-2023-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './hacktoberfest-2023-page.html' }) export class Hacktoberfest2023PageComponent { - public routerLinkAbout = ['/' + paths.about]; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkOpenStartup = ['/' + paths.openStartup]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkOpenStartup = ['/' + publicRoutes.openStartup.path]; } diff --git a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts index 39b713386..a3b02004e 100644 --- a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { Component } from '@angular/core'; @@ -12,7 +12,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './black-week-2023-page.html' }) export class BlackWeek2023PageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts index e4a628fb6..689581bf1 100644 --- a/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './hacktoberfest-2023-debriefing-page.html' }) export class Hacktoberfest2023DebriefingPageComponent { - public routerLinkAbout = ['/' + paths.about]; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; } diff --git a/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts b/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts index 8db7f0d63..5a559dd95 100644 --- a/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts +++ b/apps/client/src/app/pages/blog/2024/09/hacktoberfest-2024/hacktoberfest-2024-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './hacktoberfest-2024-page.html' }) export class Hacktoberfest2024PageComponent { - public routerLinkAbout = ['/' + paths.about]; - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkOpenStartup = ['/' + paths.openStartup]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkOpenStartup = ['/' + publicRoutes.openStartup.path]; } diff --git a/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts b/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts index cacf1077c..b29a82b57 100644 --- a/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts +++ b/apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { Component } from '@angular/core'; @@ -12,7 +12,7 @@ import { RouterModule } from '@angular/router'; templateUrl: './black-weeks-2024-page.html' }) export class BlackWeeks2024PageComponent { - public routerLinkBlog = ['/' + paths.blog]; - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkBlog = ['/' + routes.blog]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkPricing = ['/' + routes.pricing]; } diff --git a/apps/client/src/app/pages/faq/faq-page-routing.module.ts b/apps/client/src/app/pages/faq/faq-page-routing.module.ts index 3ebf1912a..47870958d 100644 --- a/apps/client/src/app/pages/faq/faq-page-routing.module.ts +++ b/apps/client/src/app/pages/faq/faq-page-routing.module.ts @@ -1,5 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -18,12 +18,12 @@ const routes: Routes = [ ) }, { - path: paths.saas, + path: ghostfolioRoutes.saas, loadChildren: () => import('./saas/saas-page.module').then((m) => m.SaasPageModule) }, { - path: paths.selfHosting, + path: ghostfolioRoutes.selfHosting, loadChildren: () => import('./self-hosting/self-hosting-page.module').then( (m) => m.SelfHostingPageModule diff --git a/apps/client/src/app/pages/faq/faq-page.component.ts b/apps/client/src/app/pages/faq/faq-page.component.ts index 270719cf3..8bfbdcbcc 100644 --- a/apps/client/src/app/pages/faq/faq-page.component.ts +++ b/apps/client/src/app/pages/faq/faq-page.component.ts @@ -1,7 +1,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { TabConfiguration } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -36,18 +36,18 @@ export class FaqPageComponent implements OnDestroy, OnInit { { iconName: 'reader-outline', label: $localize`General`, - path: ['/' + paths.faq] + path: ['/' + routes.faq] }, { iconName: 'cloudy-outline', label: $localize`Cloud` + ' (SaaS)', - path: ['/' + paths.faq, paths.saas], + path: ['/' + routes.faq, routes.saas], showCondition: this.hasPermissionForSubscription }, { iconName: 'server-outline', label: $localize`Self-Hosting`, - path: ['/' + paths.faq, paths.selfHosting] + path: ['/' + routes.faq, routes.selfHosting] } ]; } 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 4e5ed76b9..a59bb7160 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 @@ -1,6 +1,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; @@ -13,8 +13,8 @@ import { Subject, takeUntil } from 'rxjs'; standalone: false }) export class FaqOverviewPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${paths.pricing}`; - public routerLinkFeatures = ['/' + paths.features]; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${routes.pricing}`; + public routerLinkFeatures = ['/' + routes.features]; public user: User; private unsubscribeSubject = new Subject(); 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 b6e6b7002..27c794069 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 @@ -1,6 +1,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; @@ -13,11 +13,14 @@ import { Subject, takeUntil } from 'rxjs'; standalone: false }) export class SaasPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${paths.pricing}`; - public routerLinkAccount = ['/' + paths.account]; - public routerLinkAccountMembership = ['/' + paths.account, paths.membership]; - public routerLinkMarkets = ['/' + paths.markets]; - public routerLinkRegister = ['/' + paths.register]; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${routes.pricing}`; + public routerLinkAccount = ['/' + routes.account]; + public routerLinkAccountMembership = [ + '/' + routes.account, + routes.membership + ]; + public routerLinkMarkets = ['/' + routes.markets]; + public routerLinkRegister = ['/' + publicRoutes.register.path]; public user: User; private unsubscribeSubject = new Subject(); 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 1b7836755..864db7af3 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 @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; @@ -11,7 +11,7 @@ import { Subject } from 'rxjs'; standalone: false }) export class SelfHostingPageComponent implements OnDestroy { - public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${paths.pricing}`; + public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${routes.pricing}`; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/features/features-page.component.ts b/apps/client/src/app/pages/features/features-page.component.ts index 1057516bd..bb502fdaf 100644 --- a/apps/client/src/app/pages/features/features-page.component.ts +++ b/apps/client/src/app/pages/features/features-page.component.ts @@ -1,8 +1,8 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { InfoItem, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; @@ -26,8 +26,8 @@ import { Subject, takeUntil } from 'rxjs'; export class GfFeaturesPageComponent implements OnDestroy { public hasPermissionForSubscription: boolean; public info: InfoItem; - public routerLinkRegister = ['/' + paths.register]; - public routerLinkResources = ['/' + paths.resources]; + public routerLinkRegister = ['/' + publicRoutes.register.path]; + public routerLinkResources = ['/' + routes.resources]; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/home/home-page-routing.module.ts b/apps/client/src/app/pages/home/home-page-routing.module.ts index a28ea864f..7f00ceabe 100644 --- a/apps/client/src/app/pages/home/home-page-routing.module.ts +++ b/apps/client/src/app/pages/home/home-page-routing.module.ts @@ -4,7 +4,10 @@ import { HomeOverviewComponent } from '@ghostfolio/client/components/home-overvi import { HomeSummaryComponent } from '@ghostfolio/client/components/home-summary/home-summary.component'; import { HomeWatchlistComponent } from '@ghostfolio/client/components/home-watchlist/home-watchlist.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { + routes as ghostfolioRoutes, + internalRoutes +} from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -20,28 +23,29 @@ const routes: Routes = [ component: HomeOverviewComponent }, { - path: paths.holdings, + path: internalRoutes.home.subRoutes.holdings.path, component: HomeHoldingsComponent, - title: $localize`Holdings` + title: internalRoutes.home.subRoutes.holdings.title }, { - path: paths.summary, + path: ghostfolioRoutes.summary, component: HomeSummaryComponent, title: $localize`Summary` }, { - path: paths.market, + path: ghostfolioRoutes.market, component: HomeMarketComponent, title: $localize`Markets` }, { - path: paths.watchlist, + path: ghostfolioRoutes.watchlist, component: HomeWatchlistComponent, title: $localize`Watchlist` } ], component: HomePageComponent, - path: '' + path: '', + title: internalRoutes.home.title } ]; diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index ecb8ff0be..870930b4e 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -1,7 +1,7 @@ import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { internalRoutes, routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -36,28 +36,28 @@ export class HomePageComponent implements OnDestroy, OnInit { this.tabs = [ { iconName: 'analytics-outline', - label: $localize`Overview`, - path: ['/' + paths.home] + label: internalRoutes.home.title, + path: internalRoutes.home.routerLink }, { iconName: 'wallet-outline', - label: $localize`Holdings`, - path: ['/' + paths.home, paths.holdings] + label: internalRoutes.home.subRoutes.holdings.title, + path: internalRoutes.home.subRoutes.holdings.routerLink }, { iconName: 'reader-outline', label: $localize`Summary`, - path: ['/' + paths.home, paths.summary] + path: ['/' + internalRoutes.home.path, routes.summary] }, { iconName: 'bookmark-outline', label: $localize`Watchlist`, - path: ['/' + paths.home, paths.watchlist] + path: ['/' + internalRoutes.home.path, routes.watchlist] }, { iconName: 'newspaper-outline', label: $localize`Markets`, - path: ['/' + paths.home, paths.market] + path: ['/' + internalRoutes.home.path, routes.market] } ]; diff --git a/apps/client/src/app/pages/landing/landing-page.component.ts b/apps/client/src/app/pages/landing/landing-page.component.ts index 9777a6c01..84a2e4768 100644 --- a/apps/client/src/app/pages/landing/landing-page.component.ts +++ b/apps/client/src/app/pages/landing/landing-page.component.ts @@ -1,7 +1,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { Statistics } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { Component, OnDestroy, OnInit } from '@angular/core'; import { format } from 'date-fns'; @@ -25,10 +25,10 @@ export class LandingPageComponent implements OnDestroy, OnInit { public hasPermissionForStatistics: boolean; public hasPermissionForSubscription: boolean; public hasPermissionToCreateUser: boolean; - public routerLinkAbout = ['/' + paths.about]; - public routerLinkDemo = ['/' + paths.demo]; - public routerLinkOpenStartup = ['/' + paths.openStartup]; - public routerLinkRegister = ['/' + paths.register]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkDemo = ['/' + routes.demo]; + public routerLinkOpenStartup = ['/' + publicRoutes.openStartup.path]; + public routerLinkRegister = ['/' + publicRoutes.register.path]; public statistics: Statistics; public testimonials = [ { diff --git a/apps/client/src/app/pages/open/open-page-routing.module.ts b/apps/client/src/app/pages/open/open-page-routing.module.ts index b9db4ab10..cd113d361 100644 --- a/apps/client/src/app/pages/open/open-page-routing.module.ts +++ b/apps/client/src/app/pages/open/open-page-routing.module.ts @@ -1,4 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { publicRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -10,7 +11,7 @@ const routes: Routes = [ canActivate: [AuthGuard], component: OpenPageComponent, path: '', - title: 'Open Startup' + title: publicRoutes.openStartup.title } ]; diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts b/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts index 00962d563..38a594c99 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts @@ -1,4 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -10,7 +11,7 @@ const routes: Routes = [ canActivate: [AuthGuard], component: ActivitiesPageComponent, path: '', - title: $localize`Activities` + title: internalRoutes.portfolio.subRoutes.activities.title } ]; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts index 84499573a..87c1a2785 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -1,5 +1,8 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { + routes as ghostfolioRoutes, + internalRoutes +} from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -18,33 +21,33 @@ const routes: Routes = [ ) }, { - path: paths.activities, + path: internalRoutes.portfolio.subRoutes.activities.path, loadChildren: () => import('./activities/activities-page.module').then( (m) => m.ActivitiesPageModule ) }, { - path: paths.allocations, + path: ghostfolioRoutes.allocations, loadChildren: () => import('./allocations/allocations-page.module').then( (m) => m.AllocationsPageModule ) }, { - path: paths.fire, + path: ghostfolioRoutes.fire, loadChildren: () => import('./fire/fire-page.module').then((m) => m.FirePageModule) }, { - path: paths.xRay, + path: ghostfolioRoutes.xRay, loadChildren: () => import('./x-ray/x-ray-page.module').then((m) => m.XRayPageModule) } ], component: PortfolioPageComponent, path: '', - title: $localize`Portfolio` + title: internalRoutes.portfolio.title } ]; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts index 926ec7a8b..8e0748f64 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts @@ -1,6 +1,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { internalRoutes, routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -34,27 +34,27 @@ export class PortfolioPageComponent implements OnDestroy, OnInit { { iconName: 'analytics-outline', label: $localize`Analysis`, - path: ['/' + paths.portfolio] + path: internalRoutes.portfolio.routerLink }, { iconName: 'swap-vertical-outline', - label: $localize`Activities`, - path: ['/' + paths.portfolio, paths.activities] + label: internalRoutes.portfolio.subRoutes.activities.title, + path: internalRoutes.portfolio.subRoutes.activities.routerLink }, { iconName: 'pie-chart-outline', label: $localize`Allocations`, - path: ['/' + paths.portfolio, paths.allocations] + path: ['/' + internalRoutes.portfolio.path, routes.allocations] }, { iconName: 'calculator-outline', label: 'FIRE ', - path: ['/' + paths.portfolio, paths.fire] + path: ['/' + internalRoutes.portfolio.path, routes.fire] }, { iconName: 'scan-outline', label: 'X-ray', - path: ['/' + paths.portfolio, paths.xRay] + path: ['/' + internalRoutes.portfolio.path, routes.xRay] } ]; this.user = state.user; diff --git a/apps/client/src/app/pages/pricing/pricing-page.component.ts b/apps/client/src/app/pages/pricing/pricing-page.component.ts index 68573dde5..e3cc8ccb2 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.component.ts +++ b/apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -2,8 +2,8 @@ import { NotificationService } from '@ghostfolio/client/core/notification/notifi import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { publicRoutes, routes } from '@ghostfolio/common/routes'; import { translate } from '@ghostfolio/ui/i18n'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; @@ -41,8 +41,8 @@ export class PricingPageComponent implements OnDestroy, OnInit { public professionalDataProviderTooltipPremium = translate( 'PROFESSIONAL_DATA_PROVIDER_TOOLTIP_PREMIUM' ); - public routerLinkFeatures = ['/' + paths.features]; - public routerLinkRegister = ['/' + paths.register]; + public routerLinkFeatures = ['/' + routes.features]; + public routerLinkRegister = ['/' + publicRoutes.register.path]; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/register/register-page-routing.module.ts b/apps/client/src/app/pages/register/register-page-routing.module.ts index 80ab69b62..81af9f09f 100644 --- a/apps/client/src/app/pages/register/register-page-routing.module.ts +++ b/apps/client/src/app/pages/register/register-page-routing.module.ts @@ -1,4 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { publicRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -10,7 +11,7 @@ const routes: Routes = [ canActivate: [AuthGuard], component: RegisterPageComponent, path: '', - title: $localize`Registration` + title: publicRoutes.register.title } ]; diff --git a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts index 5b7de607d..fb35a357d 100644 --- a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts +++ b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.component.ts @@ -1,5 +1,5 @@ import { DataService } from '@ghostfolio/client/services/data.service'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectionStrategy, @@ -31,8 +31,8 @@ export class ShowAccessTokenDialog { public isDisclaimerChecked = false; public role: string; public routerLinkAboutTermsOfService = [ - '/' + paths.about, - paths.termsOfService + '/' + routes.about, + routes.termsOfService ]; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts index 2734707d1..f05b353d2 100644 --- a/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts +++ b/apps/client/src/app/pages/resources/glossary/resources-glossary.component.ts @@ -1,7 +1,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { InfoItem } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnInit } from '@angular/core'; @@ -15,8 +15,8 @@ export class ResourcesGlossaryPageComponent implements OnInit { public hasPermissionForSubscription: boolean; public info: InfoItem; public routerLinkResourcesPersonalFinanceTools = [ - '/' + paths.resources, - paths.personalFinanceTools + '/' + routes.resources, + routes.personalFinanceTools ]; public constructor(private dataService: DataService) { diff --git a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts index cca9aa9bf..6cf136ed9 100644 --- a/apps/client/src/app/pages/resources/overview/resources-overview.component.ts +++ b/apps/client/src/app/pages/resources/overview/resources-overview.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component } from '@angular/core'; @@ -14,25 +14,25 @@ export class ResourcesOverviewComponent { title: 'Frequently Asked Questions (FAQ)', description: 'Find quick answers to commonly asked questions about Ghostfolio in our Frequently Asked Questions (FAQ) section.', - link: ['/' + paths.faq] + link: ['/' + routes.faq] }, { title: 'Guides', description: 'Explore our guides to help you get started with investing and managing your finances.', - link: ['/' + paths.resources, paths.guides] + link: ['/' + routes.resources, routes.guides] }, { title: 'Markets', description: 'Access various market resources and tools to stay informed about financial markets.', - link: ['/' + paths.resources, paths.markets] + link: ['/' + routes.resources, routes.markets] }, { title: 'Glossary', description: 'Learn key financial terms and concepts in our comprehensive glossary.', - link: ['/' + paths.resources, paths.glossary] + link: ['/' + routes.resources, routes.glossary] } ]; } diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts index 2b5146d89..921b7340d 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts @@ -1,6 +1,6 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -24,7 +24,7 @@ const routes: Routes = [ return GfProductPageComponent; } ), - path: `${paths.openSourceAlternativeTo}-${alias ?? key}`, + path: `${ghostfolioRoutes.openSourceAlternativeTo}-${alias ?? key}`, title: $localize`Open Source Alternative to ${name}` }; }) diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts index f2b6a6541..e6394098c 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -1,5 +1,5 @@ -import { paths } from '@ghostfolio/common/paths'; import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; @@ -12,12 +12,12 @@ import { Subject } from 'rxjs'; standalone: false }) export class PersonalFinanceToolsPageComponent implements OnDestroy { - public pathAlternativeTo = paths.openSourceAlternativeTo + '-'; - public pathResources = '/' + paths.resources; + public pathAlternativeTo = routes.openSourceAlternativeTo + '-'; + public pathResources = '/' + routes.resources; public personalFinanceTools = personalFinanceTools.sort((a, b) => { return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }); }); - public routerLinkAbout = ['/' + paths.about]; + public routerLinkAbout = ['/' + routes.about]; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts index 6c3e8b551..9024acc7e 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts @@ -1,7 +1,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { Product } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; import { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; +import { routes } from '@ghostfolio/common/routes'; import { translate } from '@ghostfolio/ui/i18n'; import { Component, OnInit } from '@angular/core'; @@ -20,11 +20,11 @@ export class GfProductPageComponent implements OnInit { public price: number; public product1: Product; public product2: Product; - public routerLinkAbout = ['/' + paths.about]; - public routerLinkFeatures = ['/' + paths.features]; + public routerLinkAbout = ['/' + routes.about]; + public routerLinkFeatures = ['/' + routes.features]; public routerLinkResourcesPersonalFinanceTools = [ - '/' + paths.resources, - paths.personalFinanceTools + '/' + routes.resources, + routes.personalFinanceTools ]; public tags: string[]; diff --git a/apps/client/src/app/pages/resources/resources-page-routing.module.ts b/apps/client/src/app/pages/resources/resources-page-routing.module.ts index b7c1734be..fe226a896 100644 --- a/apps/client/src/app/pages/resources/resources-page-routing.module.ts +++ b/apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -1,5 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -19,27 +19,27 @@ const routes: Routes = [ ) }, { - path: paths.glossary, + path: ghostfolioRoutes.glossary, loadChildren: () => import('./glossary/resources-glossary.module').then( (m) => m.ResourcesGlossaryPageModule ) }, { - path: paths.guides, + path: ghostfolioRoutes.guides, loadChildren: () => import('./guides/resources-guides.module').then( (m) => m.ResourcesGuidesModule ) }, { - path: paths.markets, + path: ghostfolioRoutes.markets, loadChildren: () => import('./markets/resources-markets.module').then( (m) => m.ResourcesMarketsModule ) }, - ...[paths.personalFinanceTools].map((path) => ({ + ...[ghostfolioRoutes.personalFinanceTools].map((path) => ({ path, loadChildren: () => import( diff --git a/apps/client/src/app/pages/resources/resources-page.component.ts b/apps/client/src/app/pages/resources/resources-page.component.ts index ba38fac18..907779ed8 100644 --- a/apps/client/src/app/pages/resources/resources-page.component.ts +++ b/apps/client/src/app/pages/resources/resources-page.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { Component, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -20,17 +20,17 @@ export class ResourcesPageComponent implements OnInit { iconName: 'reader-outline' }, { - path: paths.guides, + path: routes.guides, label: $localize`Guides`, iconName: 'book-outline' }, { - path: paths.markets, + path: routes.markets, label: $localize`Markets`, iconName: 'newspaper-outline' }, { - path: paths.glossary, + path: routes.glossary, label: $localize`Glossary`, iconName: 'library-outline' } diff --git a/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts b/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts index 003d0df75..9701c20a2 100644 --- a/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts +++ b/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -2,7 +2,7 @@ import { UserAccountAccessComponent } from '@ghostfolio/client/components/user-a import { UserAccountMembershipComponent } from '@ghostfolio/client/components/user-account-membership/user-account-membership.component'; import { UserAccountSettingsComponent } from '@ghostfolio/client/components/user-account-settings/user-account-settings.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -19,12 +19,12 @@ const routes: Routes = [ title: $localize`Settings` }, { - path: paths.membership, + path: ghostfolioRoutes.membership, component: UserAccountMembershipComponent, title: $localize`Membership` }, { - path: paths.access, + path: ghostfolioRoutes.access, component: UserAccountAccessComponent, title: $localize`Access` } diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts index c18598910..da53c1fd6 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.component.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts @@ -1,6 +1,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -35,18 +35,18 @@ export class UserAccountPageComponent implements OnDestroy, OnInit { { iconName: 'settings-outline', label: $localize`Settings`, - path: ['/' + paths.account] + path: ['/' + routes.account] }, { iconName: 'diamond-outline', label: $localize`Membership`, - path: ['/' + paths.account, paths.membership], + path: ['/' + routes.account, routes.membership], showCondition: !!this.user?.subscription }, { iconName: 'key-outline', label: $localize`Access`, - path: ['/' + paths.account, paths.access] + path: ['/' + routes.account, routes.access] } ]; diff --git a/apps/client/src/app/pages/zen/zen-page-routing.module.ts b/apps/client/src/app/pages/zen/zen-page-routing.module.ts index 819f39f7e..8ca947957 100644 --- a/apps/client/src/app/pages/zen/zen-page-routing.module.ts +++ b/apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1,7 +1,7 @@ import { HomeHoldingsComponent } from '@ghostfolio/client/components/home-holdings/home-holdings.component'; import { HomeOverviewComponent } from '@ghostfolio/client/components/home-overview/home-overview.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { paths } from '@ghostfolio/common/paths'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -12,12 +12,19 @@ const routes: Routes = [ { canActivate: [AuthGuard], children: [ - { path: '', component: HomeOverviewComponent }, - { path: paths.holdings, component: HomeHoldingsComponent } + { + path: '', + component: HomeOverviewComponent + }, + { + path: internalRoutes.zen.subRoutes.holdings.path, + component: HomeHoldingsComponent, + title: internalRoutes.home.subRoutes.holdings.title + } ], component: ZenPageComponent, path: '', - title: $localize`Overview` + title: internalRoutes.zen.title } ]; diff --git a/apps/client/src/app/pages/zen/zen-page.component.ts b/apps/client/src/app/pages/zen/zen-page.component.ts index cad969bd5..ae15c1532 100644 --- a/apps/client/src/app/pages/zen/zen-page.component.ts +++ b/apps/client/src/app/pages/zen/zen-page.component.ts @@ -1,6 +1,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; -import { paths } from '@ghostfolio/common/paths'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -33,13 +33,13 @@ export class ZenPageComponent implements OnDestroy, OnInit { this.tabs = [ { iconName: 'analytics-outline', - label: $localize`Overview`, - path: ['/' + paths.zen] + label: internalRoutes.zen.title, + path: internalRoutes.zen.routerLink }, { iconName: 'wallet-outline', - label: $localize`Holdings`, - path: ['/' + paths.zen, paths.holdings] + label: internalRoutes.zen.subRoutes.holdings.title, + path: internalRoutes.zen.subRoutes.holdings.routerLink } ]; this.user = state.user; diff --git a/libs/common/src/lib/paths.ts b/libs/common/src/lib/routes.ts similarity index 52% rename from libs/common/src/lib/paths.ts rename to libs/common/src/lib/routes.ts index c63457afc..bf4b40fee 100644 --- a/libs/common/src/lib/paths.ts +++ b/libs/common/src/lib/routes.ts @@ -1,26 +1,20 @@ import '@angular/localize/init'; -export const paths = { +export const routes = { access: 'access', account: 'account', - accounts: 'accounts', - activities: 'activities', adminControl: 'admin', allocations: 'allocations', api: 'api', auth: 'auth', - blog: 'blog', demo: 'demo', fire: 'fire', - holdings: 'holdings', - home: 'home', i18n: 'i18n', jobs: 'jobs', market: 'market', marketData: 'market-data', membership: 'membership', personalFinanceTools: 'personal-finance-tools', - portfolio: 'portfolio', public: 'p', saas: 'saas', settings: 'settings', @@ -30,10 +24,10 @@ export const paths = { watchlist: 'watchlist', webauthn: 'webauthn', xRay: 'x-ray', - zen: 'zen', // Publicly accessible pages about: $localize`:kebab-case:about`, + blog: 'blog', changelog: $localize`:kebab-case:changelog`, faq: $localize`:kebab-case:faq`, features: $localize`:kebab-case:features`, @@ -42,12 +36,67 @@ export const paths = { license: $localize`:kebab-case:license`, markets: $localize`:kebab-case:markets`, openSourceAlternativeTo: $localize`:kebab-case:open-source-alternative-to`, - openStartup: 'open', ossFriends: 'oss-friends', pricing: $localize`:kebab-case:pricing`, privacyPolicy: $localize`:kebab-case:privacy-policy`, - register: $localize`:kebab-case:register`, resources: $localize`:kebab-case:resources`, selfHosting: $localize`:kebab-case:self-hosting`, termsOfService: $localize`:kebab-case:terms-of-service` }; + +export const internalRoutes = { + accounts: { + path: 'accounts', + routerLink: ['/accounts'], + title: $localize`Accounts` + }, + home: { + excludeFromAssistant: true, + path: 'home', + routerLink: ['/home'], + subRoutes: { + holdings: { + path: 'holdings', + routerLink: ['/home', 'holdings'], + title: $localize`Holdings` + } + }, + title: $localize`Overview` + }, + portfolio: { + path: 'portfolio', + routerLink: ['/portfolio'], + subRoutes: { + activities: { + path: 'activities', + routerLink: ['/portfolio', 'activities'], + title: $localize`Activities` + } + }, + title: $localize`Portfolio` + }, + zen: { + excludeFromAssistant: true, + path: 'zen', + routerLink: ['/zen'], + subRoutes: { + holdings: { + path: 'holdings', + routerLink: ['/zen', 'holdings'], + title: $localize`Holdings` + } + }, + title: $localize`Overview` + } +}; + +export const publicRoutes = { + openStartup: { + path: 'open', + title: 'Open Startup' + }, + register: { + path: $localize`:kebab-case:register`, + title: $localize`Registration` + } +}; diff --git a/libs/ui/src/lib/membership-card/membership-card.component.ts b/libs/ui/src/lib/membership-card/membership-card.component.ts index fd2986e18..1264a7a94 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.ts +++ b/libs/ui/src/lib/membership-card/membership-card.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { CommonModule } from '@angular/common'; import { @@ -29,7 +29,7 @@ export class GfMembershipCardComponent { @Output() generateApiKeyClicked = new EventEmitter(); - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkPricing = ['/' + routes.pricing]; public onGenerateApiKey(event: MouseEvent) { event.preventDefault(); diff --git a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts index 286aeb322..f948edcca 100644 --- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts +++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { internalRoutes } from '@ghostfolio/common/routes'; import { CUSTOM_ELEMENTS_SCHEMA, @@ -23,8 +23,6 @@ import { GfLogoComponent } from '../logo'; export class GfNoTransactionsInfoComponent { @HostBinding('class.has-border') @Input() hasBorder = true; - public routerLinkPortfolioActivities = [ - '/' + paths.portfolio, - paths.activities - ]; + public routerLinkPortfolioActivities = + internalRoutes.portfolio.subRoutes.activities.routerLink; } diff --git a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts index 90198fed6..56ce7cf58 100644 --- a/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts +++ b/libs/ui/src/lib/premium-indicator/premium-indicator.component.ts @@ -1,4 +1,4 @@ -import { paths } from '@ghostfolio/common/paths'; +import { routes } from '@ghostfolio/common/routes'; import { CommonModule } from '@angular/common'; import { @@ -20,5 +20,5 @@ import { RouterModule } from '@angular/router'; export class GfPremiumIndicatorComponent { @Input() enableLink = true; - public routerLinkPricing = ['/' + paths.pricing]; + public routerLinkPricing = ['/' + routes.pricing]; } From fec223070ff54b28acd7b1dd242ee9da506116d0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 8 Jun 2025 13:55:08 +0200 Subject: [PATCH 8/8] Feature/update locales (#4866) Co-authored-by: github-actions[bot] --- apps/client/src/locales/messages.ca.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.de.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.es.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.fr.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.it.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.nl.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.pl.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.pt.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.tr.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.uk.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.xlf | 124 +++++++++++------------- apps/client/src/locales/messages.zh.xlf | 124 +++++++++++------------- 12 files changed, 672 insertions(+), 816 deletions(-) diff --git a/apps/client/src/locales/messages.ca.xlf b/apps/client/src/locales/messages.ca.xlf index 81b012d40..d8785bf0c 100644 --- a/apps/client/src/locales/messages.ca.xlf +++ b/apps/client/src/locales/messages.ca.xlf @@ -6,7 +6,7 @@ Característiques apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -14,7 +14,7 @@ Internacionalització apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -22,11 +22,11 @@ Iniciar sessió apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -370,8 +370,8 @@ sobre kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -379,8 +379,8 @@ llicències kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -388,8 +388,8 @@ política de privacitat kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -397,8 +397,8 @@ faq kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -406,8 +406,8 @@ característiques kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -415,8 +415,8 @@ mercats kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -424,8 +424,8 @@ preu kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -433,8 +433,8 @@ registrar-se kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -442,8 +442,8 @@ recursos kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -1941,14 +1941,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -2103,7 +2103,7 @@ Oooh! El testimoni de seguretat és incorrecte. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -3326,8 +3326,8 @@ Accounts Comptes - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -3457,21 +3457,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -3547,8 +3543,8 @@ autoallotjament kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -3707,16 +3703,12 @@ Holdings Explotacions - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -3724,7 +3716,7 @@ Resum apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -3736,7 +3728,7 @@ Mercats apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -4199,12 +4191,8 @@ Activities Activitats - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -5071,8 +5059,8 @@ Registration Registration - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -5112,8 +5100,8 @@ open-source-alternative-to kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6945,8 +6933,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ glossary kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ terms-of-service kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 4a7762a2e..12b6e7e51 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -1018,11 +1018,11 @@ Einloggen apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1030,7 +1030,7 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -1821,8 +1821,8 @@ Accounts Konten - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -1962,7 +1962,7 @@ Features apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -1972,21 +1972,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -1994,7 +1990,7 @@ Märkte apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2173,16 +2169,12 @@ Holdings Positionen - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2341,12 +2333,8 @@ Activities Aktivitäten - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2380,14 +2368,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Currencies @@ -2417,8 +2405,8 @@ Registration Registrierung - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -3354,7 +3342,7 @@ Zusammenfassung apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -5170,8 +5158,8 @@ haeufig-gestellte-fragen kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5179,8 +5167,8 @@ features kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5188,8 +5176,8 @@ ueber-uns kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5197,8 +5185,8 @@ datenschutzbestimmungen kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5206,8 +5194,8 @@ lizenz kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5215,8 +5203,8 @@ maerkte kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5224,8 +5212,8 @@ preise kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5233,8 +5221,8 @@ registrierung kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5242,8 +5230,8 @@ ressourcen kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5315,8 +5303,8 @@ open-source-alternative-zu kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6092,8 +6080,8 @@ self-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6217,7 +6205,7 @@ Internationalisierung apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6969,8 +6957,8 @@ ratgeber kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6978,8 +6966,8 @@ lexikon kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7439,8 +7427,8 @@ allgemeine-geschaeftsbedingungen kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Beobachtungsliste apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 9a12c1fad..697222e9a 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -1003,11 +1003,11 @@ Iniciar sesión apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1015,7 +1015,7 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -1806,8 +1806,8 @@ Accounts Cuentas - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -1947,7 +1947,7 @@ Funcionalidades apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -1957,21 +1957,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -1979,7 +1975,7 @@ Mercados apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2158,16 +2154,12 @@ Holdings Participaciones - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2326,12 +2318,8 @@ Activities Operación - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2365,14 +2353,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Currencies @@ -2402,8 +2390,8 @@ Registration Registro - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -3339,7 +3327,7 @@ Resumen apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -5147,8 +5135,8 @@ preguntas-mas-frecuentes kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5156,8 +5144,8 @@ funcionalidades kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5165,8 +5153,8 @@ sobre kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5174,8 +5162,8 @@ politica-de-privacidad kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5183,8 +5171,8 @@ licencia kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5192,8 +5180,8 @@ mercados kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5201,8 +5189,8 @@ precios kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5210,8 +5198,8 @@ registro kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5219,8 +5207,8 @@ recursos kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5292,8 +5280,8 @@ alternativa-de-software-libre-a kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6069,8 +6057,8 @@ auto alojado kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6194,7 +6182,7 @@ Internacionalización apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6946,8 +6934,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6955,8 +6943,8 @@ glossary kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7416,8 +7404,8 @@ terms-of-service kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7553,7 +7541,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7597,8 +7585,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 31b2e06e2..0c1251741 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -1104,14 +1104,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1314,11 +1314,11 @@ Se connecter apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1326,7 +1326,7 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -2161,8 +2161,8 @@ Accounts Comptes - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -2358,23 +2358,19 @@ Fonctionnalités apps/client/src/app/app-routing.module.ts - 74 + 78 Holdings Positions - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2382,7 +2378,7 @@ Résumé apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -2394,7 +2390,7 @@ Marchés apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2417,12 +2413,8 @@ Activities Activités - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2877,8 +2869,8 @@ Registration Enregistrement - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -2964,21 +2956,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -5146,8 +5134,8 @@ foire-aux-questions kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5155,8 +5143,8 @@ fonctionnalites kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5164,8 +5152,8 @@ a-propos kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5173,8 +5161,8 @@ politique-de-confidentialite kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5182,8 +5170,8 @@ licence kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5191,8 +5179,8 @@ marches kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5200,8 +5188,8 @@ prix kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5209,8 +5197,8 @@ enregistrement kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5218,8 +5206,8 @@ ressources kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5291,8 +5279,8 @@ alternative-open-source-a kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6068,8 +6056,8 @@ self-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6193,7 +6181,7 @@ Internationalisation apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6945,8 +6933,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ glossaire kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ conditions-d-utilisation kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Liste de suivi apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ journal-des-modifications kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index e16a9928b..de5f4b82a 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -1003,11 +1003,11 @@ Accedi apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1015,7 +1015,7 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -1806,8 +1806,8 @@ Accounts Account - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -1947,7 +1947,7 @@ Funzionalità apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -1957,21 +1957,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -1979,7 +1975,7 @@ Mercati apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2158,16 +2154,12 @@ Holdings Partecipazioni - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2326,12 +2318,8 @@ Activities Attività - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2365,14 +2353,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Currencies @@ -2402,8 +2390,8 @@ Registration Iscrizione - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -3339,7 +3327,7 @@ Summario apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -5147,8 +5135,8 @@ domande-piu-frequenti kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5156,8 +5144,8 @@ funzionalita kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5165,8 +5153,8 @@ informazioni-su kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5174,8 +5162,8 @@ informativa-sulla-privacy kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5183,8 +5171,8 @@ licenza kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5192,8 +5180,8 @@ mercati kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5201,8 +5189,8 @@ prezzi kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5210,8 +5198,8 @@ iscrizione kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5219,8 +5207,8 @@ risorse kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5292,8 +5280,8 @@ alternativa-open-source-a kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6069,8 +6057,8 @@ self-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6194,7 +6182,7 @@ Internazionalizzazione apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6946,8 +6934,8 @@ guide kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6955,8 +6943,8 @@ glossario kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7416,8 +7404,8 @@ termini-e-condizioni kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7553,7 +7541,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7597,8 +7585,8 @@ registro-delle-modifiche kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 7799e5d4e..920754452 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -1002,11 +1002,11 @@ Aanmelden apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1014,7 +1014,7 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -1805,8 +1805,8 @@ Accounts Rekeningen - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -1946,7 +1946,7 @@ Functionaliteiten apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -1956,21 +1956,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -1978,7 +1974,7 @@ Markten apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2157,16 +2153,12 @@ Holdings Posities - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2325,12 +2317,8 @@ Activities Activiteiten - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2364,14 +2352,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Currencies @@ -2401,8 +2389,8 @@ Registration Registratie - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -3338,7 +3326,7 @@ Samenvatting apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -5146,8 +5134,8 @@ veelgestelde-vragen kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5155,8 +5143,8 @@ functionaliteiten kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5164,8 +5152,8 @@ over kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5173,8 +5161,8 @@ privacybeleid kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5182,8 +5170,8 @@ licentie kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5191,8 +5179,8 @@ markten kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5200,8 +5188,8 @@ prijzen kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5209,8 +5197,8 @@ registratie kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5218,8 +5206,8 @@ bronnen kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5291,8 +5279,8 @@ open-source-alternatief-voor kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6068,8 +6056,8 @@ zelf hosten kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6193,7 +6181,7 @@ Internationalizering apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6945,8 +6933,8 @@ gidsen kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ woordenlijst kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ servicevoorwaarden kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Volglijst apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ wijzigingslogboek kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 8eaedb396..3a1aaa389 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -6,8 +6,8 @@ o-ghostfolio kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -15,8 +15,8 @@ faq kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -24,8 +24,8 @@ funkcje kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -33,8 +33,8 @@ licencja kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -42,8 +42,8 @@ rynki kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -51,8 +51,8 @@ cennik kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -60,8 +60,8 @@ polityka-prywatnosci kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -69,8 +69,8 @@ zarejestruj kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -78,8 +78,8 @@ zasoby kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -1773,14 +1773,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1899,11 +1899,11 @@ Zaloguj się apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1911,7 +1911,7 @@ Ups! Nieprawidłowy token bezpieczeństwa. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -3010,8 +3010,8 @@ Accounts Konta - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -3129,21 +3129,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -3203,7 +3199,7 @@ Funkcje apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -3334,16 +3330,12 @@ Holdings Inwestycje - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -3351,7 +3343,7 @@ Podsumowanie apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -3363,7 +3355,7 @@ Rynki apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -3802,12 +3794,8 @@ Activities Aktywności - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -4638,8 +4626,8 @@ Registration Rejestracja - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -4679,8 +4667,8 @@ alternatywa-open-source-dla kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6068,8 +6056,8 @@ wlasny-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6193,7 +6181,7 @@ Internacjonalizacja apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6945,8 +6933,8 @@ poradniki kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ slowniczek kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ warunki-świadczenia-usług kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Lista obserwowanych apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ dziennik zmian kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index a8021410a..c31e11a33 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -976,14 +976,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1186,11 +1186,11 @@ Iniciar sessão apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1198,7 +1198,7 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -2105,8 +2105,8 @@ Accounts Contas - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -2278,7 +2278,7 @@ Funcionalidades apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -2288,21 +2288,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -2310,7 +2306,7 @@ Mercados apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -2333,12 +2329,8 @@ Activities Atividades - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -2685,16 +2677,12 @@ Holdings Posições - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2773,8 +2761,8 @@ Registration Registo - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -3286,7 +3274,7 @@ Sumário apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -5146,8 +5134,8 @@ perguntas-mais-frequentes kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -5155,8 +5143,8 @@ funcionalidades kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -5164,8 +5152,8 @@ sobre kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -5173,8 +5161,8 @@ politica-de-privacidade kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -5182,8 +5170,8 @@ licenca kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -5191,8 +5179,8 @@ mercados kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -5200,8 +5188,8 @@ precos kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -5209,8 +5197,8 @@ registo kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -5218,8 +5206,8 @@ recursos kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -5291,8 +5279,8 @@ alternativa-de-software-livre-ao kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6068,8 +6056,8 @@ self-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6193,7 +6181,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6945,8 +6933,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ glossary kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ terms-of-service kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 474f859d3..c478b56b7 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -6,8 +6,8 @@ hakkinda kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -15,8 +15,8 @@ sss kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -24,8 +24,8 @@ oezellikler kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -33,8 +33,8 @@ lisans kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -42,8 +42,8 @@ piyasalar kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -51,8 +51,8 @@ fiyatlandirma kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -60,8 +60,8 @@ gizlilik-politikasi kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -69,8 +69,8 @@ kayit-ol kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -78,8 +78,8 @@ kaynaklar kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -1637,14 +1637,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1751,11 +1751,11 @@ Giriş apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1763,7 +1763,7 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -2590,8 +2590,8 @@ Accounts Hesaplar - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -2677,21 +2677,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -2751,7 +2747,7 @@ Özellikler apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -2894,16 +2890,12 @@ Holdings Varlıklar - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -2911,7 +2903,7 @@ Özet apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -2923,7 +2915,7 @@ Piyasalar apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -3310,12 +3302,8 @@ Activities İşlemler - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -4114,8 +4102,8 @@ Registration Kayıt - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -4175,8 +4163,8 @@ Açık kaynak alternatif kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6068,8 +6056,8 @@ Kendini-Barındırma kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6193,7 +6181,7 @@ İnternasyonalizasyon apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6945,8 +6933,8 @@ kılavuzlar kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6954,8 +6942,8 @@ sözlük kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7415,8 +7403,8 @@ Hizmet Koşulları kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ İzleme Listesi apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ degisiklik-gunlugu kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.uk.xlf b/apps/client/src/locales/messages.uk.xlf index c6f951b7e..d11343e3d 100644 --- a/apps/client/src/locales/messages.uk.xlf +++ b/apps/client/src/locales/messages.uk.xlf @@ -6,7 +6,7 @@ Функції apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -14,7 +14,7 @@ Інтернаціоналізація apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -22,11 +22,11 @@ Увійти apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -370,8 +370,8 @@ about kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -379,8 +379,8 @@ license kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -388,8 +388,8 @@ privacy-policy kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -397,8 +397,8 @@ faq kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -406,8 +406,8 @@ features kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -415,8 +415,8 @@ markets kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -424,8 +424,8 @@ pricing kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -433,8 +433,8 @@ register kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -442,8 +442,8 @@ resources kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -2057,14 +2057,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -2207,7 +2207,7 @@ Упс! Неправильний Секретний Токен. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -3534,8 +3534,8 @@ Accounts Рахунки - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -3665,21 +3665,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -3763,8 +3759,8 @@ самохостинг kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -3923,16 +3919,12 @@ Holdings Активи - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -3940,7 +3932,7 @@ Зведення apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -3952,7 +3944,7 @@ Ринки apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -4415,12 +4407,8 @@ Activities Активності - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -5395,8 +5383,8 @@ Registration Реєстрація - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -5468,8 +5456,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -5477,8 +5465,8 @@ glossary kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -5494,8 +5482,8 @@ відкритий-альтернативний-для kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -7415,8 +7403,8 @@ terms-of-service kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7552,7 +7540,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7596,8 +7584,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index c3c1931c7..a67647667 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -6,72 +6,72 @@ about kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 faq kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 features kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 license kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 markets kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 pricing kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 privacy-policy kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 register kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 resources kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -1675,14 +1675,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1789,18 +1789,18 @@ Sign in apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -2791,8 +2791,8 @@ Accounts - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -2898,21 +2898,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -2966,7 +2962,7 @@ Features apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -3081,23 +3077,19 @@ Holdings - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 Summary apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -3108,7 +3100,7 @@ Markets apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -3497,12 +3489,8 @@ Activities - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -4245,8 +4233,8 @@ Registration - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -4281,8 +4269,8 @@ open-source-alternative-to kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -5470,8 +5458,8 @@ self-hosting kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -5620,7 +5608,7 @@ Internationalization apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6268,8 +6256,8 @@ glossary kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -6287,8 +6275,8 @@ guides kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6695,8 +6683,8 @@ terms-of-service kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -6780,7 +6768,7 @@ Watchlist apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -6830,8 +6818,8 @@ changelog kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31 diff --git a/apps/client/src/locales/messages.zh.xlf b/apps/client/src/locales/messages.zh.xlf index 603467ed9..6fe2ecc48 100644 --- a/apps/client/src/locales/messages.zh.xlf +++ b/apps/client/src/locales/messages.zh.xlf @@ -7,8 +7,8 @@ 关于 kebab-case - libs/common/src/lib/paths.ts - 36 + libs/common/src/lib/routes.ts + 29 @@ -16,8 +16,8 @@ 常见问题 kebab-case - libs/common/src/lib/paths.ts - 38 + libs/common/src/lib/routes.ts + 32 @@ -25,8 +25,8 @@ 功能 kebab-case - libs/common/src/lib/paths.ts - 39 + libs/common/src/lib/routes.ts + 33 @@ -34,8 +34,8 @@ 许可证 kebab-case - libs/common/src/lib/paths.ts - 42 + libs/common/src/lib/routes.ts + 36 @@ -43,8 +43,8 @@ 市场 kebab-case - libs/common/src/lib/paths.ts - 43 + libs/common/src/lib/routes.ts + 37 @@ -52,8 +52,8 @@ 价钱 kebab-case - libs/common/src/lib/paths.ts - 47 + libs/common/src/lib/routes.ts + 40 @@ -61,8 +61,8 @@ 隐私政策 kebab-case - libs/common/src/lib/paths.ts - 48 + libs/common/src/lib/routes.ts + 41 @@ -70,8 +70,8 @@ 注册 kebab-case - libs/common/src/lib/paths.ts - 49 + libs/common/src/lib/routes.ts + 99 @@ -79,8 +79,8 @@ 资源 kebab-case - libs/common/src/lib/paths.ts - 50 + libs/common/src/lib/routes.ts + 42 @@ -1782,14 +1782,14 @@ apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.ts 122 - - apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts 94 + + libs/common/src/lib/routes.ts + 76 + Benchmark @@ -1908,11 +1908,11 @@ 登入 apps/client/src/app/app-routing.module.ts - 150 + 154 apps/client/src/app/components/header/header.component.ts - 237 + 241 @@ -1920,7 +1920,7 @@ 哎呀!安全令牌不正确。 apps/client/src/app/components/header/header.component.ts - 252 + 256 apps/client/src/app/components/user-account-settings/user-account-settings.component.ts @@ -3019,8 +3019,8 @@ Accounts 账户 - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 51 @@ -3138,21 +3138,17 @@ apps/client/src/app/pages/admin/admin-page.component.ts 29 - - apps/client/src/app/pages/home/home-page.component.ts - 39 - apps/client/src/app/pages/resources/resources-page.component.ts 19 - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 20 + libs/common/src/lib/routes.ts + 64 - apps/client/src/app/pages/zen/zen-page.component.ts - 36 + libs/common/src/lib/routes.ts + 89 @@ -3212,7 +3208,7 @@ 功能 apps/client/src/app/app-routing.module.ts - 74 + 78 @@ -3343,16 +3339,12 @@ Holdings 持仓 - apps/client/src/app/pages/home/home-page-routing.module.ts - 25 - - - apps/client/src/app/pages/home/home-page.component.ts - 44 + libs/common/src/lib/routes.ts + 61 - apps/client/src/app/pages/zen/zen-page.component.ts - 41 + libs/common/src/lib/routes.ts + 86 @@ -3360,7 +3352,7 @@ 汇总 apps/client/src/app/pages/home/home-page-routing.module.ts - 30 + 33 apps/client/src/app/pages/home/home-page.component.ts @@ -3372,7 +3364,7 @@ 市场 apps/client/src/app/pages/home/home-page-routing.module.ts - 35 + 38 apps/client/src/app/pages/home/home-page.component.ts @@ -3811,12 +3803,8 @@ Activities 活动 - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 13 - - - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 41 + libs/common/src/lib/routes.ts + 73 @@ -4647,8 +4635,8 @@ Registration 注册 - apps/client/src/app/pages/register/register-page-routing.module.ts - 13 + libs/common/src/lib/routes.ts + 100 @@ -4688,8 +4676,8 @@ 开源替代方案 kebab-case - libs/common/src/lib/paths.ts - 44 + libs/common/src/lib/routes.ts + 38 @@ -6025,8 +6013,8 @@ 自托管 kebab-case - libs/common/src/lib/paths.ts - 51 + libs/common/src/lib/routes.ts + 43 @@ -6194,7 +6182,7 @@ 国际化 apps/client/src/app/app-routing.module.ts - 88 + 92 @@ -6946,8 +6934,8 @@ 指南 kebab-case - libs/common/src/lib/paths.ts - 41 + libs/common/src/lib/routes.ts + 35 @@ -6955,8 +6943,8 @@ 词汇表 kebab-case - libs/common/src/lib/paths.ts - 40 + libs/common/src/lib/routes.ts + 34 @@ -7416,8 +7404,8 @@ 服务条款 kebab-case - libs/common/src/lib/paths.ts - 52 + libs/common/src/lib/routes.ts + 44 @@ -7553,7 +7541,7 @@ 关注列表 apps/client/src/app/pages/home/home-page-routing.module.ts - 40 + 43 apps/client/src/app/pages/home/home-page.component.ts @@ -7597,8 +7585,8 @@ 变更日志 kebab-case - libs/common/src/lib/paths.ts - 37 + libs/common/src/lib/routes.ts + 31