Bugfix/fix horizontal overflow in activities table (#676)

* Fix horizontal overflow in tables

* Update changelog
This commit is contained in:
Thomas Kaul 2022-02-06 15:45:39 +01:00 committed by GitHub
parent 65bfe52db4
commit bed3e5aae2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 403 additions and 364 deletions

View File

@ -17,6 +17,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Removed the _Admin_ user from the database seeding - Removed the _Admin_ user from the database seeding
- Assigned the role `ADMIN` on sign up (only if there is no admin yet) - Assigned the role `ADMIN` on sign up (only if there is no admin yet)
### Fixed
- Fixed the horizontal overflow in the accounts table
- Fixed the horizontal overflow in the activities table
### Todo ### Todo
- Apply data migration (`yarn database:migrate`) - Apply data migration (`yarn database:migrate`)

View File

@ -11,7 +11,7 @@ import { takeUntil } from 'rxjs/operators';
import { environment } from '../../../environments/environment'; import { environment } from '../../../environments/environment';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-about-page', selector: 'gf-about-page',
styleUrls: ['./about-page.scss'], styleUrls: ['./about-page.scss'],
templateUrl: './about-page.html' templateUrl: './about-page.html'

View File

@ -2,7 +2,7 @@ import { Component, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-changelog-page', selector: 'gf-changelog-page',
styleUrls: ['./changelog-page.scss'], styleUrls: ['./changelog-page.scss'],
templateUrl: './changelog-page.html' templateUrl: './changelog-page.html'

View File

@ -31,7 +31,7 @@ import { catchError, switchMap, takeUntil } from 'rxjs/operators';
import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/create-or-update-access-dialog.component'; import { CreateOrUpdateAccessDialog } from './create-or-update-access-dialog/create-or-update-access-dialog.component';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-account-page', selector: 'gf-account-page',
styleUrls: ['./account-page.scss'], styleUrls: ['./account-page.scss'],
templateUrl: './account-page.html' templateUrl: './account-page.html'

View File

@ -16,7 +16,7 @@ import { takeUntil } from 'rxjs/operators';
import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog/create-or-update-account-dialog.component'; import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog/create-or-update-account-dialog.component';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-accounts-page', selector: 'gf-accounts-page',
styleUrls: ['./accounts-page.scss'], styleUrls: ['./accounts-page.scss'],
templateUrl: './accounts-page.html' templateUrl: './accounts-page.html'

View File

@ -1,7 +1,8 @@
<div class="container"> <div class="container">
<div class="row mb-3"> <div class="row">
<div class="col"> <div class="col">
<h3 class="d-flex justify-content-center mb-3" i18n>Accounts</h3> <h3 class="d-flex justify-content-center mb-3" i18n>Accounts</h3>
<div class="accounts">
<gf-accounts-table <gf-accounts-table
[accounts]="accounts" [accounts]="accounts"
[baseCurrency]="user?.settings?.baseCurrency" [baseCurrency]="user?.settings?.baseCurrency"
@ -16,6 +17,7 @@
></gf-accounts-table> ></gf-accounts-table>
</div> </div>
</div> </div>
</div>
<div <div
*ngIf="!hasImpersonationId && hasPermissionToCreateAccount && !user.settings.isRestrictedView" *ngIf="!hasImpersonationId && hasPermissionToCreateAccount && !user.settings.isRestrictedView"

View File

@ -1,6 +1,10 @@
:host { :host {
display: block; display: block;
.accounts {
overflow-x: auto;
}
.fab-container { .fab-container {
position: fixed; position: fixed;
right: 2rem; right: 2rem;

View File

@ -1,7 +1,7 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-hallo-ghostfolio-page', selector: 'gf-hallo-ghostfolio-page',
styleUrls: ['./hallo-ghostfolio-page.scss'], styleUrls: ['./hallo-ghostfolio-page.scss'],
templateUrl: './hallo-ghostfolio-page.html' templateUrl: './hallo-ghostfolio-page.html'

View File

@ -1,7 +1,7 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-hello-ghostfolio-page', selector: 'gf-hello-ghostfolio-page',
styleUrls: ['./hello-ghostfolio-page.scss'], styleUrls: ['./hello-ghostfolio-page.scss'],
templateUrl: './hello-ghostfolio-page.html' templateUrl: './hello-ghostfolio-page.html'

View File

@ -1,7 +1,7 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-first-months-in-open-source-page', selector: 'gf-first-months-in-open-source-page',
styleUrls: ['./first-months-in-open-source-page.scss'], styleUrls: ['./first-months-in-open-source-page.scss'],
templateUrl: './first-months-in-open-source-page.html' templateUrl: './first-months-in-open-source-page.html'

View File

@ -2,7 +2,7 @@ import { Component, OnDestroy } from '@angular/core';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-blog-page', selector: 'gf-blog-page',
styleUrls: ['./blog-page.scss'], styleUrls: ['./blog-page.scss'],
templateUrl: './blog-page.html' templateUrl: './blog-page.html'

View File

@ -6,7 +6,7 @@ import { format } from 'date-fns';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-landing-page', selector: 'gf-landing-page',
styleUrls: ['./landing-page.scss'], styleUrls: ['./landing-page.scss'],
templateUrl: './landing-page.html' templateUrl: './landing-page.html'

View File

@ -20,7 +20,7 @@ import { Subject, Subscription } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-allocations-page', selector: 'gf-allocations-page',
styleUrls: ['./allocations-page.scss'], styleUrls: ['./allocations-page.scss'],
templateUrl: './allocations-page.html' templateUrl: './allocations-page.html'

View File

@ -11,7 +11,7 @@ import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-analysis-page', selector: 'gf-analysis-page',
styleUrls: ['./analysis-page.scss'], styleUrls: ['./analysis-page.scss'],
templateUrl: './analysis-page.html' templateUrl: './analysis-page.html'

View File

@ -7,7 +7,7 @@ import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-portfolio-page', selector: 'gf-portfolio-page',
styleUrls: ['./portfolio-page.scss'], styleUrls: ['./portfolio-page.scss'],
templateUrl: './portfolio-page.html' templateUrl: './portfolio-page.html'

View File

@ -7,7 +7,7 @@ import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-report-page', selector: 'gf-report-page',
styleUrls: ['./report-page.scss'], styleUrls: ['./report-page.scss'],
templateUrl: './report-page.html' templateUrl: './report-page.html'

View File

@ -24,7 +24,7 @@ import { CreateOrUpdateTransactionDialog } from './create-or-update-transaction-
import { ImportTransactionDialog } from './import-transaction-dialog/import-transaction-dialog.component'; import { ImportTransactionDialog } from './import-transaction-dialog/import-transaction-dialog.component';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-transactions-page', selector: 'gf-transactions-page',
styleUrls: ['./transactions-page.scss'], styleUrls: ['./transactions-page.scss'],
templateUrl: './transactions-page.html' templateUrl: './transactions-page.html'

View File

@ -7,7 +7,7 @@ import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-pricing-page', selector: 'gf-pricing-page',
styleUrls: ['./pricing-page.scss'], styleUrls: ['./pricing-page.scss'],
templateUrl: './pricing-page.html' templateUrl: './pricing-page.html'

View File

@ -13,7 +13,7 @@ import { EMPTY, Subject } from 'rxjs';
import { catchError, takeUntil } from 'rxjs/operators'; import { catchError, takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-public-page', selector: 'gf-public-page',
styleUrls: ['./public-page.scss'], styleUrls: ['./public-page.scss'],
templateUrl: './public-page.html' templateUrl: './public-page.html'

View File

@ -14,7 +14,7 @@ import { takeUntil } from 'rxjs/operators';
import { ShowAccessTokenDialog } from './show-access-token-dialog/show-access-token-dialog.component'; import { ShowAccessTokenDialog } from './show-access-token-dialog/show-access-token-dialog.component';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-register-page', selector: 'gf-register-page',
styleUrls: ['./register-page.scss'], styleUrls: ['./register-page.scss'],
templateUrl: './register-page.html' templateUrl: './register-page.html'

View File

@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-resources-page', selector: 'gf-resources-page',
styleUrls: ['./resources-page.scss'], styleUrls: ['./resources-page.scss'],
templateUrl: './resources-page.html' templateUrl: './resources-page.html'

View File

@ -6,7 +6,7 @@ import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators'; import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
host: { class: 'mb-5' }, host: { class: 'page' },
selector: 'gf-webauthn-page', selector: 'gf-webauthn-page',
styleUrls: ['./webauthn-page.scss'], styleUrls: ['./webauthn-page.scss'],
templateUrl: './webauthn-page.html' templateUrl: './webauthn-page.html'

View File

@ -164,6 +164,10 @@ ngx-skeleton-loader {
min-width: unset !important; min-width: unset !important;
} }
.page {
padding-bottom: 5rem;
}
.svgMap-tooltip { .svgMap-tooltip {
border-bottom: none; border-bottom: none;

View File

@ -36,6 +36,7 @@
</mat-autocomplete> </mat-autocomplete>
</mat-form-field> </mat-form-field>
<div class="activities">
<table <table
class="gf-table w-100" class="gf-table w-100"
matSort matSort
@ -127,7 +128,11 @@
> >
Currency Currency
</th> </th>
<td *matCellDef="let element" class="d-none d-lg-table-cell px-1" mat-cell> <td
*matCellDef="let element"
class="d-none d-lg-table-cell px-1"
mat-cell
>
{{ element.currency }} {{ element.currency }}
</td> </td>
<td *matFooterCellDef class="d-none d-lg-table-cell px-1" mat-footer-cell> <td *matFooterCellDef class="d-none d-lg-table-cell px-1" mat-footer-cell>
@ -145,7 +150,11 @@
> >
Quantity Quantity
</th> </th>
<td *matCellDef="let element" class="d-none d-lg-table-cell px-1" mat-cell> <td
*matCellDef="let element"
class="d-none d-lg-table-cell px-1"
mat-cell
>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<gf-value <gf-value
[isCurrency]="true" [isCurrency]="true"
@ -171,7 +180,11 @@
> >
Unit Price Unit Price
</th> </th>
<td *matCellDef="let element" class="d-none d-lg-table-cell px-1" mat-cell> <td
*matCellDef="let element"
class="d-none d-lg-table-cell px-1"
mat-cell
>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<gf-value <gf-value
[isCurrency]="true" [isCurrency]="true"
@ -197,7 +210,11 @@
> >
Fee Fee
</th> </th>
<td *matCellDef="let element" class="d-none d-lg-table-cell px-1" mat-cell> <td
*matCellDef="let element"
class="d-none d-lg-table-cell px-1"
mat-cell
>
<div class="d-flex justify-content-end"> <div class="d-flex justify-content-end">
<gf-value <gf-value
[isCurrency]="true" [isCurrency]="true"
@ -336,7 +353,9 @@
symbol: row.symbol symbol: row.symbol
}) })
" "
[ngClass]="{ 'cursor-pointer': hasPermissionToOpenDetails && !row.isDraft }" [ngClass]="{
'cursor-pointer': hasPermissionToOpenDetails && !row.isDraft
}"
></tr> ></tr>
<tr <tr
*matFooterRowDef="displayedColumns" *matFooterRowDef="displayedColumns"
@ -344,6 +363,7 @@
[ngClass]="{ 'd-none': isLoading || dataSource.data.length === 0 }" [ngClass]="{ 'd-none': isLoading || dataSource.data.length === 0 }"
></tr> ></tr>
</table> </table>
</div>
<ngx-skeleton-loader <ngx-skeleton-loader
*ngIf="isLoading" *ngIf="isLoading"

View File

@ -14,6 +14,9 @@
min-height: 1.5rem !important; min-height: 1.5rem !important;
} }
.activities {
overflow-x: auto;
.mat-table { .mat-table {
td { td {
&.mat-footer-cell { &.mat-footer-cell {
@ -58,6 +61,7 @@
} }
} }
} }
}
:host-context(.is-dark-theme) { :host-context(.is-dark-theme) {
.mat-form-field { .mat-form-field {