diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f14d2a5c..84edba3b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added tabs to the about page + ### Changed - Removed the _Ghostfolio in Numbers_ section from the about page diff --git a/apps/client/src/app/pages/about/about-page-routing.module.ts b/apps/client/src/app/pages/about/about-page-routing.module.ts index 33a303a5b..63faf7396 100644 --- a/apps/client/src/app/pages/about/about-page-routing.module.ts +++ b/apps/client/src/app/pages/about/about-page-routing.module.ts @@ -7,6 +7,30 @@ import { AboutPageComponent } from './about-page.component'; const routes: Routes = [ { canActivate: [AuthGuard], + children: [ + { path: '', redirectTo: 'overview', pathMatch: 'full' }, + { + path: 'overview', + loadChildren: () => + import('./overview/about-overview-page.module').then( + (m) => m.AboutOverviewPageModule + ) + }, + { + path: 'changelog', + loadChildren: () => + import('./changelog/changelog-page.module').then( + (m) => m.ChangelogPageModule + ) + }, + { + path: 'privacy-policy', + loadChildren: () => + import('./privacy-policy/privacy-policy-page.module').then( + (m) => m.PrivacyPolicyPageModule + ) + } + ], component: AboutPageComponent, path: '', title: $localize`About` diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts index 5790d663d..ff2b0c532 100644 --- a/apps/client/src/app/pages/about/about-page.component.ts +++ b/apps/client/src/app/pages/about/about-page.component.ts @@ -1,26 +1,36 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { environment } from '@ghostfolio/client/../environments/environment'; +import { + ChangeDetectorRef, + Component, + HostBinding, + OnDestroy, + OnInit +} from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @Component({ - host: { class: 'page' }, selector: 'gf-about-page', styleUrls: ['./about-page.scss'], templateUrl: './about-page.html' }) export class AboutPageComponent implements OnDestroy, OnInit { - public defaultLanguageCode = DEFAULT_LANGUAGE_CODE; - public hasPermissionForBlog: boolean; + @HostBinding('class.with-info-message') get getHasMessage() { + return this.hasMessage; + } + + public hasMessage: boolean; public hasPermissionForSubscription: boolean; - public isLoggedIn: boolean; + public tabs: { + iconName: string; + label: string; + path: string; + showCondition?: boolean; + }[] = []; public user: User; - public version = environment.version; private unsubscribeSubject = new Subject(); @@ -29,31 +39,50 @@ export class AboutPageComponent implements OnDestroy, OnInit { private dataService: DataService, private userService: UserService ) { - const { globalPermissions } = this.dataService.fetchInfo(); - - this.hasPermissionForBlog = hasPermission( - globalPermissions, - permissions.enableBlog - ); + const { globalPermissions, systemMessage } = this.dataService.fetchInfo(); this.hasPermissionForSubscription = hasPermission( globalPermissions, permissions.enableSubscription ); - } - public ngOnInit() { this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((state) => { if (state?.user) { + this.tabs = [ + { + iconName: 'reader-outline', + label: $localize`About`, + path: 'overview' + }, + { + iconName: 'sparkles-outline', + label: $localize`Changelog & License`, + path: 'changelog' + }, + { + iconName: 'shield-checkmark-outline', + label: $localize`Privacy Policy`, + path: 'privacy-policy', + showCondition: this.hasPermissionForSubscription + } + ]; this.user = state.user; + this.hasMessage = + hasPermission( + this.user?.permissions, + permissions.createUserAccount + ) || !!systemMessage; + this.changeDetectorRef.markForCheck(); } }); } + public ngOnInit() {} + public ngOnDestroy() { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); diff --git a/apps/client/src/app/pages/about/about-page.html b/apps/client/src/app/pages/about/about-page.html index c761b9aed..b5c6af58b 100644 --- a/apps/client/src/app/pages/about/about-page.html +++ b/apps/client/src/app/pages/about/about-page.html @@ -1,178 +1,20 @@ -
-
-
-

About Ghostfolio

-
-

- Ghostfolio is a lightweight wealth management application for - individuals to keep track of stocks, ETFs or cryptocurrencies and make - solid, data-driven investment decisions. The source code is fully - available as - open source software - (OSS) under the - AGPL-3.0 license - and we share aggregated - key metrics - of the platform’s performance. The project has been initiated by - Thomas Kaul - and is driven by the efforts of its - contributors. - - This instance is running Ghostfolio {{ version }}. - - Check the system status at - status.ghostfol.io. -

-

- If you encounter a bug or would like to suggest an improvement or a - new - feature, please join the - Ghostfolio - Slack community, tweet to - @ghostfolio_, send an e-mail to - hi@ghostfol.io - or start a discussion at - GitHub. -

-

- - - - - - - - - - - - -

-
- -
-
- -
-
-
-
+ + + -
-
- FAQ -
- - -
- Blog -
-
-
+ +
{{ tab.label }}
+ + + diff --git a/apps/client/src/app/pages/about/about-page.module.ts b/apps/client/src/app/pages/about/about-page.module.ts index 05e7a2e30..bd2a1bc80 100644 --- a/apps/client/src/app/pages/about/about-page.module.ts +++ b/apps/client/src/app/pages/about/about-page.module.ts @@ -1,13 +1,14 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterModule } from '@angular/router'; import { AboutPageRoutingModule } from './about-page-routing.module'; import { AboutPageComponent } from './about-page.component'; @NgModule({ declarations: [AboutPageComponent], - imports: [AboutPageRoutingModule, CommonModule, MatButtonModule], + imports: [CommonModule, MatTabsModule, AboutPageRoutingModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class AboutPageModule {} diff --git a/apps/client/src/app/pages/about/about-page.scss b/apps/client/src/app/pages/about/about-page.scss index df6759442..d34bc25c3 100644 --- a/apps/client/src/app/pages/about/about-page.scss +++ b/apps/client/src/app/pages/about/about-page.scss @@ -1,36 +1,35 @@ +@import 'apps/client/src/styles/ghostfolio-style'; + :host { color: rgb(var(--dark-primary-text)); - display: block; + display: flex; + flex-direction: column; + height: calc(100vh - 5rem); + overflow-y: auto; - .about-container { - a { - color: rgba(var(--palette-primary-500), 1); - font-weight: 500; + padding-bottom: env(safe-area-inset-bottom); + padding-bottom: constant(safe-area-inset-bottom); - &:hover { - color: rgba(var(--palette-primary-300), 1); - } + ::ng-deep { + gf-about-page, + gf-changelog-page, + gf-privacy-policy-page { + flex: 1 1 auto; + overflow-y: auto; } - .independent-and-bootstrapped-logo { - background-image: url('/assets/bootstrapped-dark.svg'); - background-position: center; - background-repeat: no-repeat; - background-size: contain; - height: 2rem; - opacity: 0.87; - width: 10rem; + .mat-mdc-tab-link-container { + --mdc-tab-indicator-active-indicator-color: transparent; + + .mat-mdc-tab-link { + &:hover { + opacity: 0.75; + } + } } } } :host-context(.is-dark-theme) { color: rgb(var(--light-primary-text)); - - .about-container { - .independent-and-bootstrapped-logo { - background-image: url('/assets/bootstrapped-light.svg'); - opacity: 1; - } - } } diff --git a/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts b/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts new file mode 100644 index 000000000..7713f3971 --- /dev/null +++ b/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { AboutOverviewPageComponent } from './about-overview-page.component'; + +const routes: Routes = [ + { + canActivate: [AuthGuard], + component: AboutOverviewPageComponent, + path: '', + title: $localize`About` + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AboutOverviewPageRoutingModule {} diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts new file mode 100644 index 000000000..abc68d028 --- /dev/null +++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -0,0 +1,61 @@ +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { environment } from '@ghostfolio/client/../environments/environment'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { DEFAULT_LANGUAGE_CODE } from '@ghostfolio/common/config'; +import { User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { Subject } from 'rxjs'; +import { takeUntil } from 'rxjs/operators'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-about-overview-page', + styleUrls: ['./about-overview-page.scss'], + templateUrl: './about-overview-page.html' +}) +export class AboutOverviewPageComponent implements OnDestroy, OnInit { + public defaultLanguageCode = DEFAULT_LANGUAGE_CODE; + public hasPermissionForBlog: boolean; + public hasPermissionForSubscription: boolean; + public isLoggedIn: boolean; + public user: User; + public version = environment.version; + + private unsubscribeSubject = new Subject(); + + public constructor( + private changeDetectorRef: ChangeDetectorRef, + private dataService: DataService, + private userService: UserService + ) { + const { globalPermissions } = this.dataService.fetchInfo(); + + this.hasPermissionForBlog = hasPermission( + globalPermissions, + permissions.enableBlog + ); + + this.hasPermissionForSubscription = hasPermission( + globalPermissions, + permissions.enableSubscription + ); + } + + 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/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html new file mode 100644 index 000000000..0b1d0f090 --- /dev/null +++ b/apps/client/src/app/pages/about/overview/about-overview-page.html @@ -0,0 +1,157 @@ +
+
+
+

About Ghostfolio

+
+

+ Ghostfolio is a lightweight wealth management application for + individuals to keep track of stocks, ETFs or cryptocurrencies and make + solid, data-driven investment decisions. The source code is fully + available as + open source software + (OSS) under the + AGPL-3.0 license + and we share aggregated + key metrics + of the platform’s performance. The project has been initiated by + Thomas Kaul + and is driven by the efforts of its + contributors. + + This instance is running Ghostfolio {{ version }}. + + Check the system status at + status.ghostfol.io. +

+

+ If you encounter a bug or would like to suggest an improvement or a + new + feature, please join the + Ghostfolio + Slack community, tweet to + @ghostfolio_, send an e-mail to + hi@ghostfol.io + or start a discussion at + GitHub. +

+

+ + + + + + + + + + + + +

+
+ +
+
+ +
+
+
+
+ + +
diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.module.ts b/apps/client/src/app/pages/about/overview/about-overview-page.module.ts new file mode 100644 index 000000000..75fcdb8fd --- /dev/null +++ b/apps/client/src/app/pages/about/overview/about-overview-page.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; + +import { AboutOverviewPageRoutingModule } from './about-overview-page-routing.module'; +import { AboutOverviewPageComponent } from './about-overview-page.component'; + +@NgModule({ + declarations: [AboutOverviewPageComponent], + imports: [AboutOverviewPageRoutingModule, CommonModule, MatButtonModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class AboutOverviewPageModule {} diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.scss b/apps/client/src/app/pages/about/overview/about-overview-page.scss new file mode 100644 index 000000000..df6759442 --- /dev/null +++ b/apps/client/src/app/pages/about/overview/about-overview-page.scss @@ -0,0 +1,36 @@ +:host { + color: rgb(var(--dark-primary-text)); + display: block; + + .about-container { + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } + + .independent-and-bootstrapped-logo { + background-image: url('/assets/bootstrapped-dark.svg'); + background-position: center; + background-repeat: no-repeat; + background-size: contain; + height: 2rem; + opacity: 0.87; + width: 10rem; + } + } +} + +:host-context(.is-dark-theme) { + color: rgb(var(--light-primary-text)); + + .about-container { + .independent-and-bootstrapped-logo { + background-image: url('/assets/bootstrapped-light.svg'); + opacity: 1; + } + } +} diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts index ccfafd806..8847301d4 100644 --- a/apps/client/src/app/pages/admin/admin-page.component.ts +++ b/apps/client/src/app/pages/admin/admin-page.component.ts @@ -13,7 +13,12 @@ export class AdminPageComponent implements OnDestroy, OnInit { } public hasMessage: boolean; - public tabs: { iconName: string; label: string; path: string }[] = []; + public tabs: { + iconName: string; + label: string; + path: string; + showCondition?: boolean; + }[] = []; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/admin/admin-page.html b/apps/client/src/app/pages/admin/admin-page.html index 8de616498..b5c6af58b 100644 --- a/apps/client/src/app/pages/admin/admin-page.html +++ b/apps/client/src/app/pages/admin/admin-page.html @@ -3,16 +3,18 @@ diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index 168c41649..734e7e4f4 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -25,7 +25,12 @@ export class HomePageComponent implements OnDestroy, OnInit { public hasMessage: boolean; public hasPermissionToAccessFearAndGreedIndex: boolean; public info: InfoItem; - public tabs: { iconName: string; label: string; path: string }[] = []; + public tabs: { + iconName: string; + label: string; + path: string; + showCondition?: boolean; + }[] = []; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/home/home-page.html b/apps/client/src/app/pages/home/home-page.html index ed3c46bd5..b5c6af58b 100644 --- a/apps/client/src/app/pages/home/home-page.html +++ b/apps/client/src/app/pages/home/home-page.html @@ -3,15 +3,18 @@ diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts index 7b291b91d..8e5f87647 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts @@ -24,7 +24,12 @@ export class PortfolioPageComponent implements OnDestroy, OnInit { public hasMessage: boolean; public info: InfoItem; - public tabs: { iconName: string; label: string; path: string }[] = []; + public tabs: { + iconName: string; + label: string; + path: string; + showCondition?: boolean; + }[] = []; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.html b/apps/client/src/app/pages/portfolio/portfolio-page.html index 8de616498..b5c6af58b 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.html +++ b/apps/client/src/app/pages/portfolio/portfolio-page.html @@ -3,16 +3,18 @@ diff --git a/apps/client/src/app/pages/zen/zen-page.component.ts b/apps/client/src/app/pages/zen/zen-page.component.ts index 64bcb2247..544e32f82 100644 --- a/apps/client/src/app/pages/zen/zen-page.component.ts +++ b/apps/client/src/app/pages/zen/zen-page.component.ts @@ -18,7 +18,12 @@ import { first, takeUntil } from 'rxjs/operators'; styleUrls: ['./zen-page.scss'] }) export class ZenPageComponent implements AfterViewInit, OnDestroy, OnInit { - public tabs: { iconName: string; label: string; path: string }[] = []; + public tabs: { + iconName: string; + label: string; + path: string; + showCondition?: boolean; + }[] = []; public user: User; private unsubscribeSubject = new Subject(); diff --git a/apps/client/src/app/pages/zen/zen-page.html b/apps/client/src/app/pages/zen/zen-page.html index ed3c46bd5..b5c6af58b 100644 --- a/apps/client/src/app/pages/zen/zen-page.html +++ b/apps/client/src/app/pages/zen/zen-page.html @@ -3,15 +3,18 @@ diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 7035c65b5..ca69d27fc 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -18,7 +18,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -742,7 +742,7 @@ Ressourcen apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -762,7 +762,7 @@ Preise apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -782,7 +782,7 @@ Über apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -822,7 +822,7 @@ Features apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -834,7 +834,7 @@ Märkte apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1306,6 +1306,14 @@ Über Ghostfolio apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 @@ -1314,7 +1322,7 @@ Datenschutzbestimmungen apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1326,7 +1334,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1388,6 +1396,10 @@ Changelog & License Changelog & Lizenz + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1412,6 +1424,10 @@ Privacy Policy Datenschutzbestimmungen + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -3026,7 +3042,7 @@ Community apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3906,7 +3922,7 @@ Private Finanzen apps/client/src/app/app.component.html - 65 + 67 @@ -3914,7 +3930,7 @@ Changelog & Lizenz apps/client/src/app/app.component.html - 80 + 82 @@ -3922,7 +3938,7 @@ Häufig gestellte Fragen (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index 5c7a672a2..88c4ece25 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -19,7 +19,7 @@ El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -743,7 +743,7 @@ Recursos apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -763,7 +763,7 @@ Precios apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -783,7 +783,7 @@ Sobre apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -823,7 +823,7 @@ Funcionalidades apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -835,7 +835,7 @@ Mercados apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1307,6 +1307,14 @@ Sobre apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 @@ -1315,7 +1323,7 @@ Política de privacidad apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1327,7 +1335,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1389,6 +1397,10 @@ Changelog & License Registro de cambios & Licencia de uso + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1413,6 +1425,10 @@ Privacy Policy Política de privacidad + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -3027,7 +3043,7 @@ Comunidad apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3907,7 +3923,7 @@ Personal Finance apps/client/src/app/app.component.html - 65 + 67 @@ -3915,7 +3931,7 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 @@ -3923,7 +3939,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index 66348fe03..6f3b1d979 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -1030,7 +1030,7 @@ Ressources apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -1050,7 +1050,7 @@ Prix apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -1070,7 +1070,7 @@ À propos apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -1110,7 +1110,7 @@ Fonctionnalités apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -1122,7 +1122,7 @@ Marchés apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1658,12 +1658,24 @@ À propos apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 Changelog & License Historique des modifications & License + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1688,6 +1700,10 @@ Privacy Policy Politique de Vie Privée + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -1698,7 +1714,7 @@ Politique de Vie Privée apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1846,7 +1862,7 @@ Communauté apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -2074,7 +2090,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -3905,7 +3921,7 @@ Personal Finance apps/client/src/app/app.component.html - 65 + 67 @@ -3913,7 +3929,7 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 @@ -3921,7 +3937,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index 858ef0e00..e8e0170f9 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -19,7 +19,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -743,7 +743,7 @@ Risorse apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -763,7 +763,7 @@ Prezzi apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -783,7 +783,7 @@ Informazioni su apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -823,7 +823,7 @@ Funzionalità apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -835,7 +835,7 @@ Mercati apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1307,6 +1307,14 @@ Informazioni su apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 @@ -1315,7 +1323,7 @@ Informativa sulla privacy apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1327,7 +1335,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1389,6 +1397,10 @@ Changelog & License Registro delle modifiche & Licenza + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1413,6 +1425,10 @@ Privacy Policy Informativa sulla privacy + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -3027,7 +3043,7 @@ Community apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3907,7 +3923,7 @@ Personal Finance apps/client/src/app/app.component.html - 65 + 67 @@ -3915,7 +3931,7 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 @@ -3923,7 +3939,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index 204c74674..ad0361529 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -18,7 +18,7 @@ Het risico van verlies in de handel kan aanzienlijk zijn. Het is niet raadzaam om geld te beleggen dat u op korte termijn nodig kunt hebben. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -742,7 +742,7 @@ Middelen apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -762,7 +762,7 @@ Prijzen apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -782,7 +782,7 @@ Over apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -822,7 +822,7 @@ Kenmerken apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -834,7 +834,7 @@ Markten apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1306,6 +1306,14 @@ Over apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 @@ -1314,7 +1322,7 @@ Privacybeleid apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1326,7 +1334,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1388,6 +1396,10 @@ Changelog & License Changelog & licentie + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1412,6 +1424,10 @@ Privacy Policy Privacybeleid + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -3026,7 +3042,7 @@ Gemeenschap apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3906,7 +3922,7 @@ Personal Finance apps/client/src/app/app.component.html - 65 + 67 @@ -3914,7 +3930,7 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 @@ -3922,7 +3938,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index b18bd868f..5c259ce12 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -914,7 +914,7 @@ Resources apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -934,7 +934,7 @@ Pricing apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -954,7 +954,7 @@ About apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -994,7 +994,7 @@ Features apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -1006,7 +1006,7 @@ Markets apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1646,12 +1646,24 @@ About apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 Changelog & License Changelog & License + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1676,6 +1688,10 @@ Privacy Policy Privacy Policy + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -1686,7 +1702,7 @@ Privacy Policy apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -2014,7 +2030,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -3082,7 +3098,7 @@ Community apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3906,7 +3922,7 @@ Personal Finance apps/client/src/app/app.component.html - 65 + 67 @@ -3914,7 +3930,7 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 @@ -3922,7 +3938,7 @@ Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index ed74a7acd..b6a511fbf 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -17,7 +17,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 143,144 + 164,165 @@ -679,7 +679,7 @@ Resources apps/client/src/app/app.component.html - 68 + 70 apps/client/src/app/components/header/header.component.html @@ -698,7 +698,7 @@ Pricing apps/client/src/app/app.component.html - 91 + 93 apps/client/src/app/components/header/header.component.html @@ -717,7 +717,7 @@ About apps/client/src/app/app.component.html - 74 + 76 apps/client/src/app/components/header/header.component.html @@ -753,7 +753,7 @@ Features apps/client/src/app/app.component.html - 83 + 85 apps/client/src/app/components/header/header.component.html @@ -764,7 +764,7 @@ Markets apps/client/src/app/app.component.html - 67 + 69 apps/client/src/app/components/header/header.component.html @@ -1190,6 +1190,14 @@ About apps/client/src/app/pages/about/about-page-routing.module.ts + 36 + + + apps/client/src/app/pages/about/about-page.component.ts + 56 + + + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts 12 @@ -1197,7 +1205,7 @@ Privacy Policy apps/client/src/app/app.component.html - 95 + 97 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page.html @@ -1208,7 +1216,7 @@ Blog apps/client/src/app/app.component.html - 76 + 78 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -1269,6 +1277,10 @@ Changelog & License + + apps/client/src/app/pages/about/about-page.component.ts + 61 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts 12 @@ -1290,6 +1302,10 @@ Privacy Policy + + apps/client/src/app/pages/about/about-page.component.ts + 66 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts 12 @@ -2731,7 +2747,7 @@ Community apps/client/src/app/app.component.html - 106 + 108 apps/client/src/app/pages/account/account-page.html @@ -3519,21 +3535,21 @@ Changelog & License apps/client/src/app/app.component.html - 80 + 82 Personal Finance apps/client/src/app/app.component.html - 65 + 67 Frequently Asked Questions (FAQ) apps/client/src/app/app.component.html - 85 + 87