diff --git a/CHANGELOG.md b/CHANGELOG.md index 11d366e19..b3f89dfcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added +- Added a feature overview page - Added the asset and asset sub class to the position detail dialog - Added the countries and sectors to the position detail dialog diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index 8fde79cd7..0c6e7c2ab 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -66,6 +66,13 @@ const routes: Routes = [ './pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module' ).then((m) => m.FirstMonthsInOpenSourcePageModule) }, + { + path: 'features', + loadChildren: () => + import('./pages/features/features-page.module').then( + (m) => m.FeaturesPageModule + ) + }, { path: 'home', loadChildren: () => diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index 4aeab5574..493e719f3 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -238,6 +238,17 @@ > + Features Manage Activities...Manage Activities diff --git a/apps/client/src/app/components/positions-table/positions-table.component.html b/apps/client/src/app/components/positions-table/positions-table.component.html index f6529f55c..38f5110b6 100644 --- a/apps/client/src/app/components/positions-table/positions-table.component.html +++ b/apps/client/src/app/components/positions-table/positions-table.component.html @@ -139,7 +139,7 @@ class="my-3 text-center" > diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index b8c629a7c..b6b95e8a6 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -20,6 +20,7 @@ export class AuthGuard implements CanActivate { '/blog', '/de/blog', '/en/blog', + '/features', '/p', '/pricing', '/register', diff --git a/apps/client/src/app/pages/about/about-page.html b/apps/client/src/app/pages/about/about-page.html index ca3375652..90c1632a6 100644 --- a/apps/client/src/app/pages/about/about-page.html +++ b/apps/client/src/app/pages/about/about-page.html @@ -32,7 +32,8 @@

If you encounter a bug or would like to suggest an improvement or a - new feature, please join the Ghostfolio + new feature, please join the + Ghostfolio (); + + /** + * @constructor + */ + public constructor( + private changeDetectorRef: ChangeDetectorRef, + private userService: UserService + ) {} + + /** + * Initializes the controller + */ + public ngOnInit() { + this.userService.stateChanged + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((state) => { + if (state?.user) { + this.user = state.user; + + this.changeDetectorRef.markForCheck(); + } + }); + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/features/features-page.html b/apps/client/src/app/pages/features/features-page.html new file mode 100644 index 000000000..baa2aa844 --- /dev/null +++ b/apps/client/src/app/pages/features/features-page.html @@ -0,0 +1,220 @@ +

+
+
+

+ Features +

+ + +

+ Check out the numerous features of Ghostfolio to + manage your wealth. +

+
+
+
+
+ +
+

Stocks

+

Keep track of your stock purchases and sales.

+
+
+
+
+ +
+

ETFs

+

+ Are you into ETFs (Exchange Traded Funds)? Track your ETF + investments. +

+
+
+
+
+ +
+

Cryptocurrencies

+

+ Keep track of your Bitcoin and Altcoin holdings. +

+
+
+
+
+ +
+

Dividend

+

+ Are you building a dividend portfolio? Track your dividend in + Ghostfolio. +

+
+
+
+
+ +
+

Wealth Items

+

+ Track all your treasuries, be it your luxury watch or rare + trading cards. +

+
+
+
+
+ +
+

Import and Export

+

Import and export your investment activities.

+
+
+
+
+ +
+

Multi-Accounts

+

+ Keep an eye on all your accounts across multiple platforms + (multi-banking). +

+
+
+
+
+ +
+

+ Portfolio Calculations + +

+

+ Check the rate of return of your portfolio for + Today, YTD, 1Y, + 5Y, and Max. +

+
+
+
+
+ +
+

+ Portfolio Allocations + +

+

+ Check the allocations of your portfolio by account, asset class, + currency, region, and sector. +

+
+
+
+
+ +
+

Dark Mode

+

+ Ghostfolio automatically switches to a dark color theme based on + your operating system's preferences. +

+
+
+
+
+ +
+

Zen Mode

+

+ Keep calm and activate Zen Mode if the markets are going crazy. +

+
+
+
+
+
+ +
+

+ Static Analysis + +

+

+ Identify potential risks in your portfolio with Ghostfolio + X-ray, the static portfolio analysis. +

+
+
+
+
+ +
+

Community

+

+ Join the Ghostfolio + Slack channel + full of enthusiastic investors and discuss the latest market + trends. +

+
+
+
+
+ +
+

Open Source Software

+

+ The source code is fully available as + open source software + (OSS) and licensed under the AGPLv3 License. +

+
+
+
+
+
+
+
+ +
+
diff --git a/apps/client/src/app/pages/features/features-page.module.ts b/apps/client/src/app/pages/features/features-page.module.ts new file mode 100644 index 000000000..2a4204304 --- /dev/null +++ b/apps/client/src/app/pages/features/features-page.module.ts @@ -0,0 +1,19 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; + +import { FeaturesPageRoutingModule } from './features-page-routing.module'; +import { FeaturesPageComponent } from './features-page.component'; + +@NgModule({ + declarations: [FeaturesPageComponent], + imports: [ + FeaturesPageRoutingModule, + CommonModule, + MatButtonModule, + MatCardModule + ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class FeaturesPageModule {} diff --git a/apps/client/src/app/pages/features/features-page.scss b/apps/client/src/app/pages/features/features-page.scss new file mode 100644 index 000000000..4a8680714 --- /dev/null +++ b/apps/client/src/app/pages/features/features-page.scss @@ -0,0 +1,17 @@ +:host { + color: rgb(var(--dark-primary-text)); + display: block; + + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } +} + +:host-context(.is-dark-theme) { + color: rgb(var(--light-primary-text)); +} diff --git a/apps/client/src/assets/sitemap.xml b/apps/client/src/assets/sitemap.xml index 441fac85a..2801d9167 100644 --- a/apps/client/src/assets/sitemap.xml +++ b/apps/client/src/assets/sitemap.xml @@ -6,42 +6,46 @@ http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> https://ghostfol.io - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/about - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/about/changelog - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/blog - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/de/blog/2021/07/hallo-ghostfolio - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/en/blog/2021/07/hello-ghostfolio - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/en/blog/2022/01/ghostfolio-first-months-in-open-source - 2022-01-05T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 + + + https://ghostfol.io/features + 2022-02-13T00:00:00+00:00 https://ghostfol.io/pricing - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/register - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00 https://ghostfol.io/resources - 2022-01-01T00:00:00+00:00 + 2022-02-13T00:00:00+00:00