Browse Source
Feature/refactor public routes (#4919)
* Refactor public routes: features
pull/4921/head
Thomas Kaul
2 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with
35 additions and
31 deletions
-
apps/client/src/app/app-routing.module.ts
-
apps/client/src/app/app.component.ts
-
apps/client/src/app/components/header/header.component.ts
-
apps/client/src/app/core/auth.guard.ts
-
apps/client/src/app/pages/about/overview/about-overview-page.component.ts
-
apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts
-
apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts
-
apps/client/src/app/pages/blog/2023/05/unlock-your-financial-potential-with-ghostfolio/unlock-your-financial-potential-with-ghostfolio-page.component.ts
-
apps/client/src/app/pages/blog/2023/07/exploring-the-path-to-fire/exploring-the-path-to-fire-page.component.ts
-
apps/client/src/app/pages/blog/2023/09/ghostfolio-2/ghostfolio-2-page.component.ts
-
apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts
-
apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts
-
apps/client/src/app/pages/blog/2024/11/black-weeks-2024/black-weeks-2024-page.component.ts
-
apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts
-
apps/client/src/app/pages/pricing/pricing-page.component.ts
-
apps/client/src/app/pages/resources/personal-finance-tools/product-page.component.ts
-
libs/common/src/lib/routes/routes.ts
|
|
@ -74,8 +74,8 @@ const routes: Routes = [ |
|
|
|
import('./pages/features/features-page.component').then( |
|
|
|
(c) => c.GfFeaturesPageComponent |
|
|
|
), |
|
|
|
path: ghostfolioRoutes.features, |
|
|
|
title: $localize`Features` |
|
|
|
path: publicRoutes.features.path, |
|
|
|
title: publicRoutes.features.title |
|
|
|
}, |
|
|
|
{ |
|
|
|
path: internalRoutes.home.path, |
|
|
|
|
|
@ -80,7 +80,7 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFaq = ['/' + routes.faq]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
|
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
@ -212,7 +212,7 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
|
|
|
|
this.showFooter = |
|
|
|
(this.currentRoute === routes.blog || |
|
|
|
this.currentRoute === routes.features || |
|
|
|
this.currentRoute === publicRoutes.features.path || |
|
|
|
this.currentRoute === routes.markets || |
|
|
|
this.currentRoute === publicRoutes.openStartup.path || |
|
|
|
this.currentRoute === routes.public || |
|
|
|
|
|
@ -86,7 +86,7 @@ export class HeaderComponent implements OnChanges { |
|
|
|
public internalRoutes = internalRoutes; |
|
|
|
public isMenuOpen: boolean; |
|
|
|
public routeAbout = routes.about; |
|
|
|
public routeFeatures = routes.features; |
|
|
|
public routeFeatures = publicRoutes.features.path; |
|
|
|
public routeMarkets = routes.markets; |
|
|
|
public routePricing = routes.pricing; |
|
|
|
public routeResources = routes.resources; |
|
|
@ -94,7 +94,7 @@ export class HeaderComponent implements OnChanges { |
|
|
|
public routerLinkAccount = internalRoutes.account.routerLink; |
|
|
|
public routerLinkAccounts = internalRoutes.accounts.routerLink; |
|
|
|
public routerLinkAdminControl = ['/' + routes.adminControl]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
|
public routerLinkPortfolio = internalRoutes.portfolio.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
|
|
|
@ -23,7 +23,7 @@ export class AuthGuard { |
|
|
|
`/${routes.blog}`, |
|
|
|
`/${routes.demo}`, |
|
|
|
`/${routes.faq}`, |
|
|
|
`/${routes.features}`, |
|
|
|
`/${publicRoutes.features.path}`, |
|
|
|
`/${routes.markets}`, |
|
|
|
`/${publicRoutes.openStartup.path}`, |
|
|
|
`/${routes.pricing}`, |
|
|
|
|
|
@ -20,7 +20,7 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { |
|
|
|
public isLoggedIn: boolean; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFaq = ['/' + routes.faq]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; |
|
|
|
public user: User; |
|
|
|
|
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
@ -13,6 +13,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class BlackFriday2022PageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class ThousandStarsOnGitHubPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class UnlockYourFinancialPotentialWithGhostfolioPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkResources = ['/' + routes.resources]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
@ -12,5 +12,5 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class ExploringThePathToFirePageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
@ -14,6 +14,6 @@ export class Ghostfolio2PageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkAboutChangelog = ['/' + routes.about, routes.changelog]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
@ -13,6 +13,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class BlackWeek2023PageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
@ -13,5 +13,5 @@ import { RouterModule } from '@angular/router'; |
|
|
|
export class Hacktoberfest2023DebriefingPageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator'; |
|
|
|
|
|
|
|
import { Component } from '@angular/core'; |
|
|
@ -13,6 +13,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class BlackWeeks2024PageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = ['/' + routes.pricing]; |
|
|
|
} |
|
|
|
|
|
@ -1,6 +1,6 @@ |
|
|
|
import { UserService } from '@ghostfolio/client/services/user/user.service'; |
|
|
|
import { User } from '@ghostfolio/common/interfaces'; |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; |
|
|
|
import { Subject, takeUntil } from 'rxjs'; |
|
|
@ -14,7 +14,7 @@ import { Subject, takeUntil } from 'rxjs'; |
|
|
|
}) |
|
|
|
export class FaqOverviewPageComponent implements OnDestroy { |
|
|
|
public pricingUrl = `https://ghostfol.io/${document.documentElement.lang}/${routes.pricing}`; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public user: User; |
|
|
|
|
|
|
|
private unsubscribeSubject = new Subject<void>(); |
|
|
|
|
|
@ -3,7 +3,7 @@ import { DataService } from '@ghostfolio/client/services/data.service'; |
|
|
|
import { UserService } from '@ghostfolio/client/services/user/user.service'; |
|
|
|
import { User } 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 { translate } from '@ghostfolio/ui/i18n'; |
|
|
|
|
|
|
|
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; |
|
|
@ -41,7 +41,7 @@ export class PricingPageComponent implements OnDestroy, OnInit { |
|
|
|
public professionalDataProviderTooltipPremium = translate( |
|
|
|
'PROFESSIONAL_DATA_PROVIDER_TOOLTIP_PREMIUM' |
|
|
|
); |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkRegister = publicRoutes.register.routerLink; |
|
|
|
public user: User; |
|
|
|
|
|
|
|
|
|
@ -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 { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { translate } from '@ghostfolio/ui/i18n'; |
|
|
|
|
|
|
|
import { Component, OnInit } from '@angular/core'; |
|
|
@ -21,7 +21,7 @@ export class GfProductPageComponent implements OnInit { |
|
|
|
public product1: Product; |
|
|
|
public product2: Product; |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkFeatures = ['/' + routes.features]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkResourcesPersonalFinanceTools = [ |
|
|
|
'/' + routes.resources, |
|
|
|
routes.personalFinanceTools |
|
|
|
|
|
@ -26,7 +26,6 @@ export const routes = { |
|
|
|
blog: 'blog', |
|
|
|
changelog: $localize`:kebab-case:changelog`, |
|
|
|
faq: $localize`:kebab-case:faq`, |
|
|
|
features: $localize`:kebab-case:features`, |
|
|
|
glossary: $localize`:kebab-case:glossary`, |
|
|
|
guides: $localize`:kebab-case:guides`, |
|
|
|
license: $localize`:kebab-case:license`, |
|
|
@ -121,6 +120,11 @@ export const internalRoutes: Record<string, IRoute> = { |
|
|
|
}; |
|
|
|
|
|
|
|
export const publicRoutes = { |
|
|
|
features: { |
|
|
|
path: $localize`:kebab-case:features`, |
|
|
|
routerLink: ['/' + $localize`:kebab-case:features`], |
|
|
|
title: $localize`Features` |
|
|
|
}, |
|
|
|
openStartup: { |
|
|
|
path: 'open', |
|
|
|
routerLink: ['/open'], |
|
|
|