Browse Source
Feature/improve filtering on allocations page (#900)
* Include cash positions on allocations page (with no filtering)
* Update changelog
pull/901/head
Thomas Kaul
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
19 additions and
11 deletions
-
CHANGELOG.md
-
apps/api/src/app/portfolio/portfolio.service.ts
-
apps/client/src/app/components/positions-table/positions-table.component.ts
-
apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts
-
apps/client/src/app/pages/portfolio/allocations/allocations-page.html
-
apps/client/src/app/pages/public/public-page.html
|
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. |
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
|
|
|
|
|
|
|
## Unreleased |
|
|
|
|
|
|
|
### Changed |
|
|
|
|
|
|
|
- Improved the allocations page with no filtering (include cash positions) |
|
|
|
|
|
|
|
## 1.146.3 - 08.05.2022 |
|
|
|
|
|
|
|
### Added |
|
|
|
|
|
@ -318,8 +318,8 @@ export class PortfolioService { |
|
|
|
(user.Settings?.settings as UserSettings)?.emergencyFund ?? 0 |
|
|
|
); |
|
|
|
const userCurrency = |
|
|
|
this.request.user?.Settings?.currency ?? |
|
|
|
user.Settings?.currency ?? |
|
|
|
this.request.user?.Settings?.currency ?? |
|
|
|
baseCurrency; |
|
|
|
|
|
|
|
const { orders, portfolioOrders, transactionPoints } = |
|
|
@ -448,7 +448,7 @@ export class PortfolioService { |
|
|
|
value: totalValue |
|
|
|
}); |
|
|
|
|
|
|
|
if (aFilters === undefined) { |
|
|
|
if (aFilters?.length === 0) { |
|
|
|
for (const symbol of Object.keys(cashPositions)) { |
|
|
|
holdings[symbol] = cashPositions[symbol]; |
|
|
|
} |
|
|
|
|
|
@ -73,11 +73,6 @@ export class PositionsTableComponent implements OnChanges, OnDestroy, OnInit { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*public applyFilter(event: Event) { |
|
|
|
const filterValue = (event.target as HTMLInputElement).value; |
|
|
|
this.dataSource.filter = filterValue.trim().toLowerCase(); |
|
|
|
}*/ |
|
|
|
|
|
|
|
public onOpenPositionDialog({ dataSource, symbol }: UniqueAsset): void { |
|
|
|
this.router.navigate([], { |
|
|
|
queryParams: { dataSource, symbol, positionDetailDialog: true } |
|
|
|
|
|
@ -33,6 +33,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
value: number; |
|
|
|
}; |
|
|
|
}; |
|
|
|
public activeFilters: Filter[] = []; |
|
|
|
public allFilters: Filter[]; |
|
|
|
public continents: { |
|
|
|
[code: string]: { name: string; value: number }; |
|
|
@ -130,8 +131,11 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
distinctUntilChanged(), |
|
|
|
switchMap((filters) => { |
|
|
|
this.isLoading = true; |
|
|
|
this.activeFilters = filters; |
|
|
|
|
|
|
|
return this.dataService.fetchPortfolioDetails({ filters }); |
|
|
|
return this.dataService.fetchPortfolioDetails({ |
|
|
|
filters: this.activeFilters |
|
|
|
}); |
|
|
|
}), |
|
|
|
takeUntil(this.unsubscribeSubject) |
|
|
|
) |
|
|
@ -343,7 +347,10 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (position.dataSource) { |
|
|
|
if ( |
|
|
|
this.activeFilters?.length === 0 || |
|
|
|
position.assetSubClass !== AssetClass.CASH |
|
|
|
) { |
|
|
|
this.symbols[prettifySymbol(symbol)] = { |
|
|
|
dataSource: position.dataSource, |
|
|
|
name: position.name, |
|
|
|
|
|
@ -95,7 +95,7 @@ |
|
|
|
<mat-card class="mb-3"> |
|
|
|
<mat-card-header class="overflow-hidden w-100"> |
|
|
|
<mat-card-title class="align-items-center d-flex text-truncate" |
|
|
|
><span i18n>By Symbol</span |
|
|
|
><span i18n>By Position</span |
|
|
|
><ion-icon |
|
|
|
*ngIf="user?.subscription?.type === 'Basic'" |
|
|
|
class="ml-1 text-muted" |
|
|
|
|
|
@ -10,7 +10,7 @@ |
|
|
|
<div class="col-md-12 allocations-by-symbol"> |
|
|
|
<mat-card class="mb-3"> |
|
|
|
<mat-card-header class="overflow-hidden w-100"> |
|
|
|
<mat-card-title class="text-truncate" i18n>Symbols</mat-card-title> |
|
|
|
<mat-card-title class="text-truncate" i18n>Positions</mat-card-title> |
|
|
|
</mat-card-header> |
|
|
|
<mat-card-content> |
|
|
|
<gf-portfolio-proportion-chart |
|
|
|