Browse Source
Feature/add no transactions info on zen page (#222)
* Add no transactions info to zen page
* Update changelog
pull/223/head
Thomas
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with
45 additions and
14 deletions
-
CHANGELOG.md
-
apps/client/src/app/components/header/header.module.ts
-
apps/client/src/app/components/logo/logo.component.html
-
apps/client/src/app/components/logo/logo.component.ts
-
apps/client/src/app/components/no-transactions-info/no-transactions-info.component.html
-
apps/client/src/app/components/no-transactions-info/no-transactions-info.component.scss
-
apps/client/src/app/components/no-transactions-info/no-transactions-info.module.ts
-
apps/client/src/app/pages/zen/zen-page.component.ts
-
apps/client/src/app/pages/zen/zen-page.html
-
apps/client/src/app/pages/zen/zen-page.module.ts
|
|
@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 |
|
|
|
### Changed |
|
|
|
|
|
|
|
- Improved the onboarding |
|
|
|
- Flow of creating a new account |
|
|
|
- Info message to add the first transaction |
|
|
|
|
|
|
|
### Fixed |
|
|
|
|
|
|
|
|
|
@ -5,8 +5,8 @@ import { MatMenuModule } from '@angular/material/menu'; |
|
|
|
import { MatToolbarModule } from '@angular/material/toolbar'; |
|
|
|
import { RouterModule } from '@angular/router'; |
|
|
|
import { LoginWithAccessTokenDialogModule } from '@ghostfolio/client/components/login-with-access-token-dialog/login-with-access-token-dialog.module'; |
|
|
|
import { GfLogoModule } from '@ghostfolio/client/components/logo/logo.module'; |
|
|
|
|
|
|
|
import { GfLogoModule } from '../logo/logo.module'; |
|
|
|
import { HeaderComponent } from './header.component'; |
|
|
|
|
|
|
|
@NgModule({ |
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
<span class="align-items-center d-flex" |
|
|
|
><span class="d-inline-block logo mr-1"></span> |
|
|
|
<span class="name">Ghostfolio</span></span |
|
|
|
<span *ngIf="!hideName" class="name">Ghostfolio</span></span |
|
|
|
> |
|
|
|
|
|
@ -14,10 +14,12 @@ import { |
|
|
|
}) |
|
|
|
export class LogoComponent implements OnInit { |
|
|
|
@HostBinding('class') @Input() size: 'large' | 'medium'; |
|
|
|
@Input() hideName: boolean; |
|
|
|
|
|
|
|
public constructor() {} |
|
|
|
|
|
|
|
public ngOnInit() { |
|
|
|
this.size = this.size || 'medium'; |
|
|
|
this.hideName = this.hideName ?? false; |
|
|
|
this.size = this.size ?? 'medium'; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
@ -1,9 +1,13 @@ |
|
|
|
<a |
|
|
|
class="align-items-center justify-content-center" |
|
|
|
color="primary" |
|
|
|
[routerLink]="['/transactions']" |
|
|
|
mat-button |
|
|
|
> |
|
|
|
<ion-icon class="mr-1" name="time-outline" size="large"></ion-icon> |
|
|
|
<span i18n>Time to add your first transaction.</span> |
|
|
|
</a> |
|
|
|
<div class="p-3"> |
|
|
|
<div class="d-flex justify-content-center mb-1"> |
|
|
|
<gf-logo size="large" [hideName]="true"></gf-logo> |
|
|
|
</div> |
|
|
|
<a |
|
|
|
class="align-items-center justify-content-center" |
|
|
|
color="primary" |
|
|
|
[routerLink]="['/transactions']" |
|
|
|
mat-button |
|
|
|
> |
|
|
|
<span i18n>Time to add your first transaction.</span> |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
|
|
@ -1,3 +1,13 @@ |
|
|
|
:host { |
|
|
|
border: 1px solid rgba(var(--dark-dividers)); |
|
|
|
border-radius: 0.25rem; |
|
|
|
display: block; |
|
|
|
|
|
|
|
gf-logo { |
|
|
|
opacity: 0.25; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
:host-context(.is-dark-theme) { |
|
|
|
border-color: rgba(var(--light-dividers)); |
|
|
|
} |
|
|
|
|
|
@ -2,13 +2,14 @@ import { CommonModule } from '@angular/common'; |
|
|
|
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
|
import { RouterModule } from '@angular/router'; |
|
|
|
import { GfLogoModule } from '@ghostfolio/client/components/logo/logo.module'; |
|
|
|
|
|
|
|
import { NoTransactionsInfoComponent } from './no-transactions-info.component'; |
|
|
|
|
|
|
|
@NgModule({ |
|
|
|
declarations: [NoTransactionsInfoComponent], |
|
|
|
exports: [NoTransactionsInfoComponent], |
|
|
|
imports: [CommonModule, MatButtonModule, RouterModule], |
|
|
|
imports: [CommonModule, GfLogoModule, MatButtonModule, RouterModule], |
|
|
|
providers: [], |
|
|
|
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
|
|
|
}) |
|
|
|
|
|
@ -20,6 +20,7 @@ export class ZenPageComponent implements OnDestroy, OnInit { |
|
|
|
public deviceType: string; |
|
|
|
public hasImpersonationId: boolean; |
|
|
|
public hasPermissionToReadForeignPortfolio: boolean; |
|
|
|
public hasPositions: boolean; |
|
|
|
public historicalDataItems: LineChartItem[]; |
|
|
|
public isLoadingPerformance = true; |
|
|
|
public performance: PortfolioPerformance; |
|
|
@ -88,6 +89,8 @@ export class ZenPageComponent implements OnDestroy, OnInit { |
|
|
|
}; |
|
|
|
}); |
|
|
|
|
|
|
|
this.hasPositions = this.historicalDataItems?.length > 0; |
|
|
|
|
|
|
|
this.changeDetectorRef.markForCheck(); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
@ -1,4 +1,4 @@ |
|
|
|
<div class="container"> |
|
|
|
<div *ngIf="hasPositions || !historicalDataItems" class="container"> |
|
|
|
<div class="row"> |
|
|
|
<div class="chart-container col mr-3"> |
|
|
|
<gf-line-chart |
|
|
@ -23,3 +23,10 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div |
|
|
|
*ngIf="!hasPositions && historicalDataItems" |
|
|
|
class="d-flex justify-content-center my-5" |
|
|
|
> |
|
|
|
<gf-no-transactions-info-indicator></gf-no-transactions-info-indicator> |
|
|
|
</div> |
|
|
|
|
|
@ -2,6 +2,7 @@ import { CommonModule } from '@angular/common'; |
|
|
|
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
|
|
|
import { MatCardModule } from '@angular/material/card'; |
|
|
|
import { GfLineChartModule } from '@ghostfolio/client/components/line-chart/line-chart.module'; |
|
|
|
import { GfNoTransactionsInfoModule } from '@ghostfolio/client/components/no-transactions-info/no-transactions-info.module'; |
|
|
|
import { GfPortfolioPerformanceSummaryModule } from '@ghostfolio/client/components/portfolio-performance-summary/portfolio-performance-summary.module'; |
|
|
|
|
|
|
|
import { ZenPageRoutingModule } from './zen-page-routing.module'; |
|
|
@ -13,6 +14,7 @@ import { ZenPageComponent } from './zen-page.component'; |
|
|
|
imports: [ |
|
|
|
CommonModule, |
|
|
|
GfLineChartModule, |
|
|
|
GfNoTransactionsInfoModule, |
|
|
|
GfPortfolioPerformanceSummaryModule, |
|
|
|
MatCardModule, |
|
|
|
ZenPageRoutingModule |
|
|
|