mirror of https://github.com/ghostfolio/ghostfolio
6 changed files with 111 additions and 71 deletions
@ -1,50 +1,99 @@ |
|||||
<gf-dialog-header mat-dialog-title position="center" [deviceType]="data.deviceType" [title]="name" |
<gf-dialog-header |
||||
(closeButtonClicked)="onClose()"></gf-dialog-header> |
mat-dialog-title |
||||
|
position="center" |
||||
|
[deviceType]="data.deviceType" |
||||
|
[title]="name" |
||||
|
(closeButtonClicked)="onClose()" |
||||
|
></gf-dialog-header> |
||||
|
|
||||
<div class="flex-grow-1" mat-dialog-content> |
<div class="flex-grow-1" mat-dialog-content> |
||||
<div class="container p-0"> |
<div class="container p-0"> |
||||
<div class="row"> |
<div class="row"> |
||||
<div class="col-12 d-flex justify-content-center mb-3"> |
<div class="col-12 d-flex justify-content-center mb-3"> |
||||
<gf-value size="large" [isCurrency]="true" [locale]="user?.settings?.locale" |
<gf-value |
||||
[unit]="user?.settings?.baseCurrency" [value]="valueInBaseCurrency"></gf-value> |
size="large" |
||||
|
[isCurrency]="true" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
[unit]="user?.settings?.baseCurrency" |
||||
|
[value]="valueInBaseCurrency" |
||||
|
></gf-value> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
|
|
||||
<div class="chart-container mb-3"> |
<div class="chart-container mb-3"> |
||||
<gf-investment-chart class="h-100" [currency]="user?.settings?.baseCurrency" |
<gf-investment-chart |
||||
[historicalDataItems]="historicalDataItems" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" |
class="h-100" |
||||
[isLoading]="isLoadingChart" [locale]="user?.settings?.locale"></gf-investment-chart> |
[currency]="user?.settings?.baseCurrency" |
||||
|
[historicalDataItems]="historicalDataItems" |
||||
|
[isInPercent]="hasImpersonationId || user.settings.isRestrictedView" |
||||
|
[isLoading]="isLoadingChart" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
></gf-investment-chart> |
||||
</div> |
</div> |
||||
|
|
||||
<div class="row mb-3"> |
<div class="row mb-3"> |
||||
<div class="col-6 mb-3"> |
<div class="col-6 mb-3"> |
||||
<gf-value i18n size="medium" [isCurrency]="true" [locale]="user?.settings?.locale" [unit]="currency" |
<gf-value |
||||
[value]="balance">Cash Balance</gf-value> |
i18n |
||||
|
size="medium" |
||||
|
[isCurrency]="true" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
[unit]="currency" |
||||
|
[value]="balance" |
||||
|
>Cash Balance</gf-value |
||||
|
> |
||||
</div> |
</div> |
||||
<div class="col-6 mb-3"> |
<div class="col-6 mb-3"> |
||||
<gf-value i18n size="medium" [isCurrency]="true" [locale]="user?.settings?.locale" [unit]="currency" |
<gf-value |
||||
[value]="equity">Equity</gf-value> |
i18n |
||||
|
size="medium" |
||||
|
[isCurrency]="true" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
[unit]="currency" |
||||
|
[value]="equity" |
||||
|
>Equity</gf-value |
||||
|
> |
||||
</div> |
</div> |
||||
<div class="col-6 mb-3"> |
<div class="col-6 mb-3"> |
||||
<gf-value i18n size="medium" [value]="transactionCount">Activities</gf-value> |
<gf-value i18n size="medium" [value]="transactionCount" |
||||
|
>Activities</gf-value |
||||
|
> |
||||
</div> |
</div> |
||||
<div class="col-6 mb-3"> |
<div class="col-6 mb-3"> |
||||
<gf-value i18n size="medium" [value]="platformName">Platform</gf-value> |
<gf-value i18n size="medium" [value]="platformName">Platform</gf-value> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
|
|
||||
<mat-tab-group> |
<mat-tab-group animationDuration="0" [mat-stretch-tabs]="false"> |
||||
<mat-tab label="Activities"> |
<mat-tab> |
||||
<gf-activities-table [activities]="orders" [baseCurrency]="user?.settings?.baseCurrency" |
<ng-template i18n mat-tab-label>Activities</ng-template> |
||||
[deviceType]="data.deviceType" [hasPermissionToCreateActivity]="false" |
<gf-activities-table |
||||
[hasPermissionToExportActivities]="true" [hasPermissionToFilter]="false" [hasPermissionToOpenDetails]="false" |
[activities]="orders" |
||||
[locale]="user?.settings?.locale" [showActions]="false" (export)="onExport()"></gf-activities-table> |
[baseCurrency]="user?.settings?.baseCurrency" |
||||
|
[deviceType]="data.deviceType" |
||||
|
[hasPermissionToCreateActivity]="false" |
||||
|
[hasPermissionToExportActivities]="true" |
||||
|
[hasPermissionToFilter]="false" |
||||
|
[hasPermissionToOpenDetails]="false" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
[showActions]="false" |
||||
|
(export)="onExport()" |
||||
|
></gf-activities-table> |
||||
</mat-tab> |
</mat-tab> |
||||
<mat-tab label="Balances"> |
<mat-tab> |
||||
<gf-account-balances [accountId]="data.accountId"></gf-account-balances> |
<ng-template i18n mat-tab-label>Balances</ng-template> |
||||
|
<gf-account-balances |
||||
|
[accountId]="data.accountId" |
||||
|
[currency]="currency" |
||||
|
[locale]="user?.settings?.locale" |
||||
|
></gf-account-balances> |
||||
</mat-tab> |
</mat-tab> |
||||
</mat-tab-group> |
</mat-tab-group> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
|
|
||||
<gf-dialog-footer mat-dialog-actions [deviceType]="data.deviceType" (closeButtonClicked)="onClose()"></gf-dialog-footer> |
<gf-dialog-footer |
||||
|
mat-dialog-actions |
||||
|
[deviceType]="data.deviceType" |
||||
|
(closeButtonClicked)="onClose()" |
||||
|
></gf-dialog-footer> |
||||
|
@ -1,15 +1,27 @@ |
|||||
<table mat-table [dataSource]="balances" class="mat-elevation-z8"> |
<table class="gf-table w-100" mat-table [dataSource]="dataSource"> |
||||
|
|
||||
<ng-container matColumnDef="date"> |
<ng-container matColumnDef="date"> |
||||
<th mat-header-cell *matHeaderCellDef> Date </th> |
<th *matHeaderCellDef class="px-2" i18n mat-header-cell>Date</th> |
||||
<td mat-cell *matCellDef="let balance"> {{balance.date}} </td> |
<td *matCellDef="let element" class="px-2" mat-cell> |
||||
|
<gf-value [isDate]="true" [locale]="locale" [value]="element?.date" /> |
||||
|
</td> |
||||
</ng-container> |
</ng-container> |
||||
|
|
||||
<ng-container matColumnDef="value"> |
<ng-container matColumnDef="value"> |
||||
<th mat-header-cell *matHeaderCellDef> Value </th> |
<th *matHeaderCellDef class="px-2 text-right" i18n mat-header-cell> |
||||
<td mat-cell *matCellDef="let balance"> {{balance.value}} </td> |
Value |
||||
|
</th> |
||||
|
<td *matCellDef="let element" class="px-2" mat-cell> |
||||
|
<div class="d-flex justify-content-end"> |
||||
|
<gf-value |
||||
|
[isCurrency]="true" |
||||
|
[locale]="locale" |
||||
|
[unit]="currency" |
||||
|
[value]="element?.value" |
||||
|
></gf-value> |
||||
|
</div> |
||||
|
</td> |
||||
</ng-container> |
</ng-container> |
||||
|
|
||||
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> |
<tr *matHeaderRowDef="displayedColumns" mat-header-row></tr> |
||||
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> |
<tr *matRowDef="let row; columns: displayedColumns" mat-row></tr> |
||||
</table> |
</table> |
||||
|
@ -1,44 +1,14 @@ |
|||||
import { CommonModule } from '@angular/common'; |
import { CommonModule } from '@angular/common'; |
||||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
||||
import { MatButtonModule } from '@angular/material/button'; |
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox'; |
|
||||
import { MatMenuModule } from '@angular/material/menu'; |
|
||||
import { MatPaginatorModule } from '@angular/material/paginator'; |
|
||||
import { MatSortModule } from '@angular/material/sort'; |
|
||||
import { MatTableModule } from '@angular/material/table'; |
import { MatTableModule } from '@angular/material/table'; |
||||
import { MatTooltipModule } from '@angular/material/tooltip'; |
|
||||
import { RouterModule } from '@angular/router'; |
|
||||
import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; |
|
||||
import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; |
|
||||
import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; |
|
||||
import { GfActivityTypeModule } from '@ghostfolio/ui/activity-type'; |
|
||||
import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; |
|
||||
import { GfValueModule } from '@ghostfolio/ui/value'; |
import { GfValueModule } from '@ghostfolio/ui/value'; |
||||
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; |
|
||||
|
|
||||
import { AccountBalancesComponent } from './account-balances.component'; |
import { AccountBalancesComponent } from './account-balances.component'; |
||||
|
|
||||
@NgModule({ |
@NgModule({ |
||||
declarations: [AccountBalancesComponent], |
declarations: [AccountBalancesComponent], |
||||
exports: [AccountBalancesComponent], |
exports: [AccountBalancesComponent], |
||||
imports: [ |
imports: [CommonModule, GfValueModule, MatTableModule], |
||||
CommonModule, |
|
||||
GfActivitiesFilterModule, |
|
||||
GfActivityTypeModule, |
|
||||
GfNoTransactionsInfoModule, |
|
||||
GfSymbolIconModule, |
|
||||
GfSymbolModule, |
|
||||
GfValueModule, |
|
||||
MatButtonModule, |
|
||||
MatCheckboxModule, |
|
||||
MatMenuModule, |
|
||||
MatPaginatorModule, |
|
||||
MatSortModule, |
|
||||
MatTableModule, |
|
||||
MatTooltipModule, |
|
||||
NgxSkeletonLoaderModule, |
|
||||
RouterModule |
|
||||
], |
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
||||
}) |
}) |
||||
export class GfAccountBalancesModule {} |
export class GfAccountBalancesModule {} |
||||
|
Loading…
Reference in new issue