From 253e352ee1357ec96b37a466326c476f572366d8 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Mon, 16 Jun 2025 20:03:11 +0200 Subject: [PATCH] Refactor various routes --- apps/client/src/app/app-routing.module.ts | 14 +++++--------- .../app/components/header/header.component.html | 13 +++++++++---- .../src/app/components/header/header.component.ts | 7 +------ .../glossary/resources-glossary.component.ts | 8 +++----- .../personal-finance-tools-page-routing.module.ts | 8 ++++---- .../personal-finance-tools-page.component.ts | 8 ++++++-- .../personal-finance-tools-page.html | 4 ++-- .../product-page.component.ts | 8 +++----- .../resources/resources-page-routing.module.ts | 11 ++++------- 9 files changed, 37 insertions(+), 44 deletions(-) diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index a7e587ea8..7eac28c87 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -1,10 +1,6 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PageTitleStrategy } from '@ghostfolio/client/services/page-title.strategy'; -import { - publicRoutes, - routes as ghostfolioRoutes, - internalRoutes -} from '@ghostfolio/common/routes/routes'; +import { publicRoutes, internalRoutes } from '@ghostfolio/common/routes/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes, TitleStrategy } from '@angular/router'; @@ -42,8 +38,8 @@ const routes: Routes = [ import('./pages/api/api-page.component').then( (c) => c.GfApiPageComponent ), - path: ghostfolioRoutes.api, - title: 'Ghostfolio API' + path: internalRoutes.api.path, + title: internalRoutes.api.title }, { path: internalRoutes.auth.path, @@ -89,8 +85,8 @@ const routes: Routes = [ import('./pages/i18n/i18n-page.component').then( (c) => c.GfI18nPageComponent ), - path: ghostfolioRoutes.i18n, - title: $localize`Internationalization` + path: internalRoutes.i18n.path, + title: internalRoutes.i18n.title }, { path: publicRoutes.markets.path, diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index c1475d549..3f443dfea 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -65,8 +65,10 @@ i18n mat-flat-button [ngClass]="{ - 'font-weight-bold': currentRoute === routes.adminControl, - 'text-decoration-underline': currentRoute === routes.adminControl + 'font-weight-bold': + currentRoute === internalRoutes.adminControl.path, + 'text-decoration-underline': + currentRoute === internalRoutes.adminControl.path }" [routerLink]="routerLinkAdminControl" >Admin ControlMy Ghostfolio @@ -278,7 +282,8 @@ i18n mat-menu-item [ngClass]="{ - 'font-weight-bold': currentRoute === routes.adminControl + 'font-weight-bold': + currentRoute === internalRoutes.adminControl.path }" [routerLink]="routerLinkAdminControl" >Admin Control(); 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 c9d94d8ed..81ae00fe1 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 { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; +import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { Component, OnInit } from '@angular/core'; @@ -14,10 +14,8 @@ import { Component, OnInit } from '@angular/core'; export class ResourcesGlossaryPageComponent implements OnInit { public hasPermissionForSubscription: boolean; public info: InfoItem; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + publicRoutes.resources.path, - routes.personalFinanceTools - ]; + public routerLinkResourcesPersonalFinanceTools = + publicRoutes.resources.subRoutes.personalFinanceTools.routerLink; public constructor(private dataService: DataService) { this.info = this.dataService.fetchInfo(); 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 e8c256c0d..13b6cfbaf 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 { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; -import { routes as ghostfolioRoutes } from '@ghostfolio/common/routes/routes'; +import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -12,7 +12,7 @@ const routes: Routes = [ canActivate: [AuthGuard], component: PersonalFinanceToolsPageComponent, path: '', - title: $localize`Personal Finance Tools` + title: publicRoutes.resources.subRoutes.personalFinanceTools.title }, ...personalFinanceTools.map(({ alias, key, name }) => { return { @@ -24,8 +24,8 @@ const routes: Routes = [ return GfProductPageComponent; } ), - path: `${ghostfolioRoutes.openSourceAlternativeTo}-${alias ?? key}`, - title: $localize`Open Source Alternative to ${name}` + path: `${publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product.path}-${alias ?? key}`, + title: `${publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product.title} ${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 59b4c80bf..e450aa65e 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 { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; -import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; +import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { Component, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; @@ -12,8 +12,12 @@ import { Subject } from 'rxjs'; standalone: false }) export class PersonalFinanceToolsPageComponent implements OnDestroy { - public pathAlternativeTo = routes.openSourceAlternativeTo + '-'; + public pathAlternativeTo = + publicRoutes.resources.subRoutes.personalFinanceTools.subRoutes.product + .path + '-'; public pathResources = publicRoutes.resources.path; + public pathPersonalFinanceTools = + publicRoutes.resources.subRoutes.personalFinanceTools.path; public personalFinanceTools = personalFinanceTools.sort((a, b) => { return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }); }); diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html index f3c128433..3e4784307 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html @@ -32,8 +32,8 @@ personalFinanceTool.name }} - {{ personalFinanceTool.slogan }}" [routerLink]="[ - pathResources, - 'personal-finance-tools', + '/' + pathResources, + pathPersonalFinanceTools, pathAlternativeTo + (personalFinanceTool.alias ?? personalFinanceTool.key) ]" 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 3694fc227..caf29e7a0 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 { personalFinanceTools } from '@ghostfolio/common/personal-finance-tools'; -import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; +import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { translate } from '@ghostfolio/ui/i18n'; import { Component, OnInit } from '@angular/core'; @@ -22,10 +22,8 @@ export class GfProductPageComponent implements OnInit { public product2: Product; public routerLinkAbout = publicRoutes.about.routerLink; public routerLinkFeatures = publicRoutes.features.routerLink; - public routerLinkResourcesPersonalFinanceTools = [ - '/' + publicRoutes.resources.path, - routes.personalFinanceTools - ]; + public routerLinkResourcesPersonalFinanceTools = + publicRoutes.resources.subRoutes.personalFinanceTools.routerLink; public tags: string[]; public constructor( 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 19a08ba1d..51d9e2c73 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,8 +1,5 @@ import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; -import { - routes as ghostfolioRoutes, - publicRoutes -} from '@ghostfolio/common/routes/routes'; +import { publicRoutes } from '@ghostfolio/common/routes/routes'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; @@ -42,13 +39,13 @@ const routes: Routes = [ (m) => m.ResourcesMarketsModule ) }, - ...[ghostfolioRoutes.personalFinanceTools].map((path) => ({ - path, + { + path: publicRoutes.resources.subRoutes.personalFinanceTools.path, loadChildren: () => import( './personal-finance-tools/personal-finance-tools-page.module' ).then((m) => m.PersonalFinanceToolsPageModule) - })) + } ], path: '', title: publicRoutes.resources.title