From 4b0080e69d58613c7f04ca6842889c67571e2a2d Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 8 Jun 2025 11:54:04 +0200 Subject: [PATCH] Move portfolio to internalRoutes --- apps/client/src/app/app-routing.module.ts | 2 +- .../account-detail-dialog.component.ts | 20 ++++++++++++------- .../app/components/header/header.component.ts | 2 +- .../holding-detail-dialog.component.ts | 20 ++++++++++++------- .../home-holdings/home-holdings.component.ts | 4 ++-- .../home-overview/home-overview.component.ts | 4 ++-- .../portfolio-page-routing.module.ts | 7 +++++-- .../portfolio/portfolio-page.component.ts | 12 +++++------ libs/common/src/lib/routes.ts | 8 +++++++- .../no-transactions-info.component.ts | 4 ++-- 10 files changed, 52 insertions(+), 31 deletions(-) diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index a9d1f9ed8..47c406959 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -104,7 +104,7 @@ const routes: Routes = [ import('./pages/open/open-page.module').then((m) => m.OpenPageModule) }, { - path: ghostfolioRoutes.portfolio, + path: internalRoutes.portfolio.path, loadChildren: () => import('./pages/portfolio/portfolio-page.module').then( (m) => m.PortfolioPageModule 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 bb670ed1a..bb764f05e 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 @@ -10,7 +10,7 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { routes } from '@ghostfolio/common/routes'; +import { internalRoutes, routes } 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(['/' + routes.portfolio, routes.activities], { - queryParams: { activityId: aActivity.id, createDialog: true } - }); + this.router.navigate( + ['/' + internalRoutes.portfolio.path, routes.activities], + { + 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(['/' + routes.portfolio, routes.activities], { - queryParams: { activityId: aActivity.id, editDialog: true } - }); + this.router.navigate( + ['/' + internalRoutes.portfolio.path, routes.activities], + { + queryParams: { activityId: aActivity.id, editDialog: true } + } + ); this.dialogRef.close(); } diff --git a/apps/client/src/app/components/header/header.component.ts b/apps/client/src/app/components/header/header.component.ts index ea861fbe4..2d1e04a74 100644 --- a/apps/client/src/app/components/header/header.component.ts +++ b/apps/client/src/app/components/header/header.component.ts @@ -96,7 +96,7 @@ export class HeaderComponent implements OnChanges { public routerLinkAdminControl = ['/' + routes.adminControl]; public routerLinkFeatures = ['/' + routes.features]; public routerLinkMarkets = ['/' + routes.markets]; - public routerLinkPortfolio = ['/' + routes.portfolio]; + public routerLinkPortfolio = ['/' + internalRoutes.portfolio.path]; public routerLinkPricing = ['/' + routes.pricing]; public routerLinkRegister = ['/' + publicRoutes.register.path]; public routerLinkResources = ['/' + routes.resources]; 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 40ab6480c..8ceef2f8a 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 @@ -14,7 +14,7 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { routes } from '@ghostfolio/common/routes'; +import { internalRoutes, routes } 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(['/' + routes.portfolio, routes.activities], { - queryParams: { activityId: aActivity.id, createDialog: true } - }); + this.router.navigate( + ['/' + internalRoutes.portfolio.path, routes.activities], + { + 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(['/' + routes.portfolio, routes.activities], { - queryParams: { activityId: aActivity.id, editDialog: true } - }); + this.router.navigate( + ['/' + internalRoutes.portfolio.path, routes.activities], + { + 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 4afab340d..c1b5974ac 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 @@ -8,7 +8,7 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { routes } from '@ghostfolio/common/routes'; +import { internalRoutes, routes } from '@ghostfolio/common/routes'; import { HoldingType, HoldingsViewMode } from '@ghostfolio/common/types'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; @@ -38,7 +38,7 @@ export class HomeHoldingsComponent implements OnDestroy, OnInit { { label: $localize`Closed`, value: 'CLOSED' } ]; public routerLinkPortfolioActivities = [ - '/' + routes.portfolio, + '/' + internalRoutes.portfolio.path, routes.activities ]; public user: User; 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 518784da3..35082c724 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 @@ -38,9 +38,9 @@ export class HomeOverviewComponent implements OnDestroy, OnInit { public performance: PortfolioPerformance; public precision = 2; public routerLinkAccounts = ['/' + internalRoutes.accounts.path]; - public routerLinkPortfolio = ['/' + routes.portfolio]; + public routerLinkPortfolio = ['/' + internalRoutes.portfolio.path]; public routerLinkPortfolioActivities = [ - '/' + routes.portfolio, + '/' + internalRoutes.portfolio.path, routes.activities ]; public showDetails = false; 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 0052ddf93..889fac555 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 { routes as ghostfolioRoutes } from '@ghostfolio/common/routes'; +import { + routes as ghostfolioRoutes, + internalRoutes +} from '@ghostfolio/common/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -44,7 +47,7 @@ const routes: Routes = [ ], 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 756198adb..29723ea92 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 { routes } from '@ghostfolio/common/routes'; +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: ['/' + routes.portfolio] + path: ['/' + internalRoutes.portfolio.path] }, { iconName: 'swap-vertical-outline', label: $localize`Activities`, - path: ['/' + routes.portfolio, routes.activities] + path: ['/' + internalRoutes.portfolio.path, routes.activities] }, { iconName: 'pie-chart-outline', label: $localize`Allocations`, - path: ['/' + routes.portfolio, routes.allocations] + path: ['/' + internalRoutes.portfolio.path, routes.allocations] }, { iconName: 'calculator-outline', label: 'FIRE ', - path: ['/' + routes.portfolio, routes.fire] + path: ['/' + internalRoutes.portfolio.path, routes.fire] }, { iconName: 'scan-outline', label: 'X-ray', - path: ['/' + routes.portfolio, routes.xRay] + path: ['/' + internalRoutes.portfolio.path, routes.xRay] } ]; this.user = state.user; diff --git a/libs/common/src/lib/routes.ts b/libs/common/src/lib/routes.ts index 9c182824a..e32d49c3c 100644 --- a/libs/common/src/lib/routes.ts +++ b/libs/common/src/lib/routes.ts @@ -17,7 +17,6 @@ export const routes = { marketData: 'market-data', membership: 'membership', personalFinanceTools: 'personal-finance-tools', - portfolio: 'portfolio', public: 'p', saas: 'saas', settings: 'settings', @@ -55,11 +54,18 @@ export const internalRoutes = { title: $localize`Accounts` }, home: { + excludeFromAssistant: true, path: 'home', subRoutes: {}, title: $localize`Overview` }, + portfolio: { + path: 'portfolio', + subRoutes: {}, + title: $localize`Portfolio` + }, zen: { + excludeFromAssistant: true, path: 'zen', subRoutes: {}, title: $localize`Overview` 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 2ce22168a..bdcf0f058 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 { routes } from '@ghostfolio/common/routes'; +import { internalRoutes, routes } from '@ghostfolio/common/routes'; import { CUSTOM_ELEMENTS_SCHEMA, @@ -24,7 +24,7 @@ export class GfNoTransactionsInfoComponent { @HostBinding('class.has-border') @Input() hasBorder = true; public routerLinkPortfolioActivities = [ - '/' + routes.portfolio, + '/' + internalRoutes.portfolio.path, routes.activities ]; }