From afb4234ce4a1eecd6f054f0c82c5c3e961eea580 Mon Sep 17 00:00:00 2001 From: Patrick Gebhardt Date: Fri, 19 Jun 2020 13:25:32 +0200 Subject: [PATCH] Add details to search results --- frontend/src/app/app.module.ts | 4 +- .../region-stats/region-stats.component.html | 20 +++++ .../region-stats/region-stats.component.scss | 18 ++++ .../region-stats.component.spec.ts | 25 ++++++ .../region-stats/region-stats.component.ts | 27 ++++++ .../components/region/region.component.scss | 2 +- .../components/result/result.component.html | 26 +++++- .../components/result/result.component.scss | 29 ++++++- .../app/components/result/result.component.ts | 4 + .../region-details.component.html | 28 +----- .../region-details.component.scss | 15 ---- .../region-details.component.ts | 40 ++------- .../containers/search/search.component.scss | 2 +- .../interfaces/search-request.interface.ts | 45 ++++++---- frontend/src/app/services/data.service.ts | 87 +++++++++++++++++-- frontend/src/assets/i18n/en.json | 4 +- 16 files changed, 271 insertions(+), 105 deletions(-) create mode 100644 frontend/src/app/components/region-stats/region-stats.component.html create mode 100644 frontend/src/app/components/region-stats/region-stats.component.scss create mode 100644 frontend/src/app/components/region-stats/region-stats.component.spec.ts create mode 100644 frontend/src/app/components/region-stats/region-stats.component.ts diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index a8c805a..51aedd2 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -27,6 +27,7 @@ import {RegionComponent} from './components/region/region.component'; import {ResultComponent} from './components/result/result.component'; import {RegionDetailsComponent} from './containers/region-details/region-details.component'; import {GraphComponent} from './components/graph/graph.component'; +import {RegionStatsComponent} from './components/region-stats/region-stats.component'; @NgModule({ @@ -39,7 +40,8 @@ import {GraphComponent} from './components/graph/graph.component'; RegionComponent, ResultComponent, RegionDetailsComponent, - GraphComponent + GraphComponent, + RegionStatsComponent ], imports: [ BrowserModule, diff --git a/frontend/src/app/components/region-stats/region-stats.component.html b/frontend/src/app/components/region-stats/region-stats.component.html new file mode 100644 index 0000000..5d8c930 --- /dev/null +++ b/frontend/src/app/components/region-stats/region-stats.component.html @@ -0,0 +1,20 @@ + + + + + + +
+
+ {{PROPERTY_VIS_DEF[prop].icon}} + {{prop|translate}}: +
+
+
+ {{region[prop] ? (region[prop]|number:'1.2-2') : 'N/A'}} +
+
+
+ {{PROPERTY_VIS_DEF[prop].unit}} +
+
diff --git a/frontend/src/app/components/region-stats/region-stats.component.scss b/frontend/src/app/components/region-stats/region-stats.component.scss new file mode 100644 index 0000000..39c5ad3 --- /dev/null +++ b/frontend/src/app/components/region-stats/region-stats.component.scss @@ -0,0 +1,18 @@ +.cell { + display: flex; + flex-direction: row; + align-items: center; + align-self: center; + + &.right { + justify-content: flex-end; + } + + &.space { + margin-right: 1rem; + } + + > mat-icon { + margin-right: 0.5rem; + } +} diff --git a/frontend/src/app/components/region-stats/region-stats.component.spec.ts b/frontend/src/app/components/region-stats/region-stats.component.spec.ts new file mode 100644 index 0000000..0a3a53c --- /dev/null +++ b/frontend/src/app/components/region-stats/region-stats.component.spec.ts @@ -0,0 +1,25 @@ +import {async, ComponentFixture, TestBed} from '@angular/core/testing'; + +import {RegionStatsComponent} from './region-stats.component'; + +describe('RegionStatsComponent', () => { + let component: RegionStatsComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [RegionStatsComponent] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RegionStatsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/components/region-stats/region-stats.component.ts b/frontend/src/app/components/region-stats/region-stats.component.ts new file mode 100644 index 0000000..3a3bf39 --- /dev/null +++ b/frontend/src/app/components/region-stats/region-stats.component.ts @@ -0,0 +1,27 @@ +import {Component, Input, OnInit} from '@angular/core'; +import {Region} from '../../interfaces/region.interface'; +import {SearchParameter} from '../../interfaces/search-request.interface'; +import {REGION_PARAM_VIS} from '../../services/data.service'; + +@Component({ + selector: 'app-region-stats', + templateUrl: './region-stats.component.html', + styleUrls: ['./region-stats.component.scss'] +}) +export class RegionStatsComponent implements OnInit { + + @Input() + region: Region; + @Input() + shownKeys: SearchParameter[]; + + /** Contains the visual definitions */ + readonly PROPERTY_VIS_DEF = REGION_PARAM_VIS; + + constructor() { + } + + ngOnInit() { + } + +} diff --git a/frontend/src/app/components/region/region.component.scss b/frontend/src/app/components/region/region.component.scss index 903a8aa..b50177d 100644 --- a/frontend/src/app/components/region/region.component.scss +++ b/frontend/src/app/components/region/region.component.scss @@ -29,7 +29,7 @@ > .region-name { font-weight: bold; - font-size: large; + font-size: larger; align-self: center; margin-right: 0.25rem; } diff --git a/frontend/src/app/components/result/result.component.html b/frontend/src/app/components/result/result.component.html index 2a967e7..a6b3698 100644 --- a/frontend/src/app/components/result/result.component.html +++ b/frontend/src/app/components/result/result.component.html @@ -1,7 +1,7 @@
-