Browse Source

Introduce internalRoutes and publicRoutes

pull/4863/head
Thomas Kaul 3 months ago
parent
commit
9e409c03b4
  1. 10
      apps/client/src/app/app-routing.module.ts
  2. 4
      apps/client/src/app/app.component.ts
  3. 10
      apps/client/src/app/components/header/header.component.ts
  4. 4
      apps/client/src/app/components/home-overview/home-overview.component.ts
  5. 6
      apps/client/src/app/core/auth.guard.ts
  6. 3
      apps/client/src/app/pages/accounts/accounts-page-routing.module.ts
  7. 4
      apps/client/src/app/pages/faq/saas/saas-page.component.ts
  8. 4
      apps/client/src/app/pages/features/features-page.component.ts
  9. 4
      apps/client/src/app/pages/landing/landing-page.component.ts
  10. 4
      apps/client/src/app/pages/pricing/pricing-page.component.ts
  11. 3
      apps/client/src/app/pages/register/register-page-routing.module.ts
  12. 20
      libs/common/src/lib/routes.ts

10
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 { routes as ghostfolioRoutes } from '@ghostfolio/common/routes';
import {
publicRoutes,
routes as ghostfolioRoutes,
internalRoutes
} from '@ghostfolio/common/routes';
import { NgModule } from '@angular/core';
import { RouterModule, Routes, TitleStrategy } from '@angular/router';
@ -21,7 +25,7 @@ const routes: Routes = [
)
},
{
path: ghostfolioRoutes.accounts,
path: internalRoutes.accounts.path,
loadChildren: () =>
import('./pages/accounts/accounts-page.module').then(
(m) => m.AccountsPageModule
@ -121,7 +125,7 @@ const routes: Routes = [
)
},
{
path: ghostfolioRoutes.register,
path: publicRoutes.register.path,
loadChildren: () =>
import('./pages/register/register-page.module').then(
(m) => m.RegisterPageModule

4
apps/client/src/app/app.component.ts

@ -3,7 +3,7 @@ import { HoldingDetailDialogParams } from '@ghostfolio/client/components/holding
import { getCssVariable } from '@ghostfolio/common/helper';
import { InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { ColorScheme } from '@ghostfolio/common/types';
import { DOCUMENT } from '@angular/common';
@ -80,7 +80,7 @@ export class AppComponent implements OnDestroy, OnInit {
public routerLinkMarkets = ['/' + routes.markets];
public routerLinkOpenStartup = ['/' + routes.openStartup];
public routerLinkPricing = ['/' + routes.pricing];
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public routerLinkResources = ['/' + routes.resources];
public showFooter = false;
public user: User;

10
apps/client/src/app/components/header/header.component.ts

@ -12,7 +12,11 @@ import { TokenStorageService } from '@ghostfolio/client/services/token-storage.s
import { UserService } from '@ghostfolio/client/services/user/user.service';
import { Filter, InfoItem, User } from '@ghostfolio/common/interfaces';
import { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { routes } from '@ghostfolio/common/routes';
import {
internalRoutes,
publicRoutes,
routes
} from '@ghostfolio/common/routes';
import { DateRange } from '@ghostfolio/common/types';
import { GfAssistantComponent } from '@ghostfolio/ui/assistant/assistant.component';
@ -88,13 +92,13 @@ export class HeaderComponent implements OnChanges {
public routes = routes;
public routerLinkAbout = ['/' + routes.about];
public routerLinkAccount = ['/' + routes.account];
public routerLinkAccounts = ['/' + routes.accounts];
public routerLinkAccounts = ['/' + internalRoutes.accounts.path];
public routerLinkAdminControl = ['/' + routes.adminControl];
public routerLinkFeatures = ['/' + routes.features];
public routerLinkMarkets = ['/' + routes.markets];
public routerLinkPortfolio = ['/' + routes.portfolio];
public routerLinkPricing = ['/' + routes.pricing];
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public routerLinkResources = ['/' + routes.resources];
private unsubscribeSubject = new Subject<void>();

4
apps/client/src/app/components/home-overview/home-overview.component.ts

@ -11,7 +11,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 { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
import { DeviceDetectorService } from 'ngx-device-detector';
@ -37,7 +37,7 @@ export class HomeOverviewComponent implements OnDestroy, OnInit {
public isLoadingPerformance = true;
public performance: PortfolioPerformance;
public precision = 2;
public routerLinkAccounts = ['/' + routes.accounts];
public routerLinkAccounts = ['/' + internalRoutes.accounts.path];
public routerLinkPortfolio = ['/' + routes.portfolio];
public routerLinkPortfolioActivities = [
'/' + routes.portfolio,

6
apps/client/src/app/core/auth.guard.ts

@ -1,7 +1,7 @@
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 { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { Injectable } from '@angular/core';
import {
@ -24,7 +24,7 @@ export class AuthGuard {
`/${routes.openStartup}`,
`/${routes.pricing}`,
`/${routes.public}`,
`/${routes.register}`,
`/${publicRoutes.register.path}`,
`/${routes.resources}`
];
@ -51,7 +51,7 @@ export class AuthGuard {
this.router.navigate(['/' + routes.demo]);
resolve(false);
} else if (utmSource === 'trusted-web-activity') {
this.router.navigate(['/' + routes.register]);
this.router.navigate(['/' + publicRoutes.register.path]);
resolve(false);
} else if (
AuthGuard.PUBLIC_PAGE_ROUTES.some((publicPageRoute) => {

3
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
}
];

4
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 { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';
import { Subject, takeUntil } from 'rxjs';
@ -20,7 +20,7 @@ export class SaasPageComponent implements OnDestroy {
routes.membership
];
public routerLinkMarkets = ['/' + routes.markets];
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public user: User;
private unsubscribeSubject = new Subject<void>();

4
apps/client/src/app/pages/features/features-page.component.ts

@ -2,7 +2,7 @@ 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 { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { GfPremiumIndicatorComponent } from '@ghostfolio/ui/premium-indicator';
import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core';
@ -26,7 +26,7 @@ import { Subject, takeUntil } from 'rxjs';
export class GfFeaturesPageComponent implements OnDestroy {
public hasPermissionForSubscription: boolean;
public info: InfoItem;
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public routerLinkResources = ['/' + routes.resources];
public user: User;

4
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 { hasPermission, permissions } from '@ghostfolio/common/permissions';
import { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { Component, OnDestroy, OnInit } from '@angular/core';
import { format } from 'date-fns';
@ -28,7 +28,7 @@ export class LandingPageComponent implements OnDestroy, OnInit {
public routerLinkAbout = ['/' + routes.about];
public routerLinkDemo = ['/' + routes.demo];
public routerLinkOpenStartup = ['/' + routes.openStartup];
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public statistics: Statistics;
public testimonials = [
{

4
apps/client/src/app/pages/pricing/pricing-page.component.ts

@ -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 { routes } from '@ghostfolio/common/routes';
import { publicRoutes, routes } from '@ghostfolio/common/routes';
import { translate } from '@ghostfolio/ui/i18n';
import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
@ -42,7 +42,7 @@ export class PricingPageComponent implements OnDestroy, OnInit {
'PROFESSIONAL_DATA_PROVIDER_TOOLTIP_PREMIUM'
);
public routerLinkFeatures = ['/' + routes.features];
public routerLinkRegister = ['/' + routes.register];
public routerLinkRegister = ['/' + publicRoutes.register.path];
public user: User;
private unsubscribeSubject = new Subject<void>();

3
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
}
];

20
libs/common/src/lib/routes.ts

@ -3,13 +3,11 @@ import '@angular/localize/init';
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',
@ -34,6 +32,7 @@ export const routes = {
// 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`,
@ -46,8 +45,23 @@ export const routes = {
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',
subRoutes: {},
title: $localize`Accounts`
}
};
export const publicRoutes = {
register: {
path: $localize`:kebab-case:register`,
subRoutes: {},
title: $localize`Registration`
}
};

Loading…
Cancel
Save