Browse Source
Feature/refactor public routes: blog (#4932)
* Refactor public routes: blog
pull/4933/head
Thomas Kaul
2 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with
46 additions and
41 deletions
-
apps/client/src/app/app-routing.module.ts
-
apps/client/src/app/app.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/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts
-
apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.component.ts
-
apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.component.ts
-
apps/client/src/app/pages/blog/2022/07/ghostfolio-meets-internet-identity/ghostfolio-meets-internet-identity-page.component.ts
-
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
-
apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts
-
apps/client/src/app/pages/blog/2022/10/hacktoberfest-2022/hacktoberfest-2022-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/2022/12/the-importance-of-tracking-your-personal-finances/the-importance-of-tracking-your-personal-finances-page.component.ts
-
apps/client/src/app/pages/blog/2023/01/ghostfolio-auf-sackgeld-vorgestellt/ghostfolio-auf-sackgeld-vorgestellt-page.component.ts
-
apps/client/src/app/pages/blog/2023/02/ghostfolio-meets-umbrel/ghostfolio-meets-umbrel-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/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-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/09/hacktoberfest-2023/hacktoberfest-2023-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/09/hacktoberfest-2024/hacktoberfest-2024-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/blog/blog-page-routing.module.ts
-
libs/common/src/lib/routes/routes.ts
|
|
@ -51,7 +51,7 @@ const routes: Routes = [ |
|
|
|
import('./pages/auth/auth-page.module').then((m) => m.AuthPageModule) |
|
|
|
}, |
|
|
|
{ |
|
|
|
path: ghostfolioRoutes.blog, |
|
|
|
path: publicRoutes.blog.path, |
|
|
|
loadChildren: () => |
|
|
|
import('./pages/blog/blog-page.module').then((m) => m.BlogPageModule) |
|
|
|
}, |
|
|
|
|
|
@ -78,7 +78,7 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
'/' + routes.about, |
|
|
|
routes.termsOfService |
|
|
|
]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFaq = ['/' + routes.faq]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
@ -211,7 +211,7 @@ export class AppComponent implements OnDestroy, OnInit { |
|
|
|
this.deviceType !== 'mobile'; |
|
|
|
|
|
|
|
this.showFooter = |
|
|
|
(this.currentRoute === routes.blog || |
|
|
|
(this.currentRoute === publicRoutes.blog.path || |
|
|
|
this.currentRoute === publicRoutes.features.path || |
|
|
|
this.currentRoute === routes.markets || |
|
|
|
this.currentRoute === publicRoutes.openStartup.path || |
|
|
|
|
|
@ -20,7 +20,7 @@ import { catchError } from 'rxjs/operators'; |
|
|
|
export class AuthGuard { |
|
|
|
private static PUBLIC_PAGE_ROUTES = [ |
|
|
|
`/${routes.about}`, |
|
|
|
`/${routes.blog}`, |
|
|
|
`/${publicRoutes.blog.path}`, |
|
|
|
`/${routes.demo}`, |
|
|
|
`/${routes.faq}`, |
|
|
|
`/${publicRoutes.features.path}`, |
|
|
|
|
|
@ -18,7 +18,7 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { |
|
|
|
public hasPermissionForStatistics: boolean; |
|
|
|
public hasPermissionForSubscription: boolean; |
|
|
|
public isLoggedIn: boolean; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFaq = ['/' + routes.faq]; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; |
|
|
|
|
|
@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; |
|
|
|
templateUrl: './hallo-ghostfolio-page.html' |
|
|
|
}) |
|
|
|
export class HalloGhostfolioPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
public routerLinkResources = ['/' + routes.resources]; |
|
|
|
} |
|
|
|
|
|
@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; |
|
|
|
templateUrl: './hello-ghostfolio-page.html' |
|
|
|
}) |
|
|
|
export class HelloGhostfolioPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
public routerLinkResources = ['/' + routes.resources]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.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'; |
|
|
@ -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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkResources = ['/' + routes.resources]; |
|
|
|
} |
|
|
|
|
|
@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; |
|
|
|
templateUrl: './500-stars-on-github-page.html' |
|
|
|
}) |
|
|
|
export class FiveHundredStarsOnGitHubPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -11,7 +11,7 @@ import { RouterModule } from '@angular/router'; |
|
|
|
templateUrl: './unlock-your-financial-potential-with-ghostfolio-page.html' |
|
|
|
}) |
|
|
|
export class UnlockYourFinancialPotentialWithGhostfolioPageComponent { |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkResources = ['/' + routes.resources]; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } 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 GhostfolioJoinsOssFriendsPageComponent { |
|
|
|
public routerLinkAboutOssFriends = |
|
|
|
publicRoutes.about.subRoutes.ossFriends.routerLink; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -13,7 +13,7 @@ import { RouterModule } from '@angular/router'; |
|
|
|
export class Ghostfolio2PageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkAboutChangelog = ['/' + routes.about, routes.changelog]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkMarkets = ['/' + routes.markets]; |
|
|
|
} |
|
|
|
|
|
@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class Hacktoberfest2023PageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class Hacktoberfest2023DebriefingPageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -12,6 +12,6 @@ import { RouterModule } from '@angular/router'; |
|
|
|
}) |
|
|
|
export class Hacktoberfest2024PageComponent { |
|
|
|
public routerLinkAbout = ['/' + routes.about]; |
|
|
|
public routerLinkBlog = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkOpenStartup = publicRoutes.openStartup.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
import { publicRoutes, routes } from '@ghostfolio/common/routes/routes'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/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 = ['/' + routes.blog]; |
|
|
|
public routerLinkBlog = publicRoutes.blog.routerLink; |
|
|
|
public routerLinkFeatures = publicRoutes.features.routerLink; |
|
|
|
public routerLinkPricing = publicRoutes.pricing.routerLink; |
|
|
|
} |
|
|
|
|
|
@ -1,4 +1,5 @@ |
|
|
|
import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; |
|
|
|
import { publicRoutes } from '@ghostfolio/common/routes/routes'; |
|
|
|
|
|
|
|
import { NgModule } from '@angular/core'; |
|
|
|
import { RouterModule, Routes } from '@angular/router'; |
|
|
@ -10,7 +11,7 @@ const routes: Routes = [ |
|
|
|
canActivate: [AuthGuard], |
|
|
|
component: BlogPageComponent, |
|
|
|
path: '', |
|
|
|
title: $localize`Blog` |
|
|
|
title: publicRoutes.blog.title |
|
|
|
}, |
|
|
|
{ |
|
|
|
canActivate: [AuthGuard], |
|
|
|
|
|
@ -23,7 +23,6 @@ export const routes = { |
|
|
|
|
|
|
|
// Publicly accessible pages
|
|
|
|
about: $localize`:kebab-case:about`, |
|
|
|
blog: 'blog', |
|
|
|
changelog: $localize`:kebab-case:changelog`, |
|
|
|
faq: $localize`:kebab-case:faq`, |
|
|
|
glossary: $localize`:kebab-case:glossary`, |
|
|
@ -130,6 +129,11 @@ export const publicRoutes = { |
|
|
|
}, |
|
|
|
title: $localize`About` |
|
|
|
}, |
|
|
|
blog: { |
|
|
|
path: 'blog', |
|
|
|
routerLink: ['/blog'], |
|
|
|
title: $localize`Blog` |
|
|
|
}, |
|
|
|
features: { |
|
|
|
path: $localize`:kebab-case:features`, |
|
|
|
routerLink: ['/' + $localize`:kebab-case:features`], |
|
|
|