Skip to content

Commit d4dee96

Browse files
committed
Geospatial maps: Angular control flow refactor
1 parent 0be836a commit d4dee96

7 files changed

Lines changed: 46 additions & 33 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<div class="container">
22
<h1>{{ 'browse.metadata.map' | translate }}</h1>
3-
<ng-container *ngIf="isPlatformBrowser(platformId)">
3+
@if (isPlatformBrowser(platformId)) {
44
<ds-geospatial-map [facetValues]="facetValues$"
55
[currentScope]="this.scope$|async"
66
[layout]="'browse'"
77
style="width: 100%;">
88
</ds-geospatial-map>
9-
</ng-container>
9+
}
1010
</div>
1111

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
<div class="item-page-field" *ngIf="isNotEmpty(points) || isNotEmpty(bboxes)">
2-
<ds-metadata-field-wrapper [label]="label | translate">
3-
<ds-geospatial-map [coordinates]="this.points"
4-
[bbox]="this.bboxes"
5-
[cluster]="this.cluster"
6-
[layout]="'item'"
7-
style="width: 100%;">
8-
</ds-geospatial-map>
9-
</ds-metadata-field-wrapper>
10-
</div>
1+
@if (isNotEmpty(points) || isNotEmpty(bboxes)) {
2+
<div>
3+
<ds-metadata-field-wrapper [label]="label | translate">
4+
<ds-geospatial-map [coordinates]="this.points"
5+
[bbox]="this.bboxes"
6+
[cluster]="this.cluster"
7+
[layout]="'item'"
8+
style="width: 100%;">
9+
</ds-geospatial-map>
10+
</ds-metadata-field-wrapper>
11+
</div>
12+
}
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<div class="simple-view-element" [class.d-none]="hideIfNoTextContent && hasNoContent">
2-
<h2 class="simple-view-element-header" *ngIf="label">{{ label }}</h2>
3-
<div #content class="simple-view-element-body">
4-
<ng-content></ng-content>
5-
</div>
2+
@if (label) {
3+
<h2 class="simple-view-element-header">{{ label }}</h2>
4+
<div #content class="simple-view-element-body">
5+
<ng-content></ng-content>
6+
</div>
7+
}
68
</div>

src/app/shared/object-collection/object-collection.component.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
@if ((currentMode$ | async) === viewModeEnum.ListElement) {
1+
@if ((currentMode$ | async) === viewModeEnum.GeospatialMap) {
2+
<ds-object-geospatial-map [objects]="objects">
3+
</ds-object-geospatial-map>
4+
}
5+
6+
@if ((currentMode$ | async) === viewModeEnum.ListElement || (currentMode$ | async) === viewModeEnum.GeospatialMap) {
27
<ds-object-list [ngClass]="placeholderFontClass"
38
[config]="config"
49
[sortConfig]="sortConfig"

src/app/shared/object-collection/object-collection.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { PageInfo } from '../../core/shared/page-info.model';
3535
import { ViewMode } from '../../core/shared/view-mode.model';
3636
import { isEmpty } from '../empty.util';
3737
import { ObjectDetailComponent } from '../object-detail/object-detail.component';
38+
import { ObjectGeospatialMapComponent } from '../object-geospatial-map/object-geospatial-map.component';
3839
import { ObjectGridComponent } from '../object-grid/object-grid.component';
3940
import { ThemedObjectListComponent } from '../object-list/themed-object-list.component';
4041
import { ObjectTableComponent } from '../object-table/object-table.component';
@@ -51,7 +52,7 @@ import { ListableObject } from './shared/listable-object.model';
5152
styleUrls: ['./object-collection.component.scss'],
5253
templateUrl: './object-collection.component.html',
5354
standalone: true,
54-
imports: [ThemedObjectListComponent, NgClass, ObjectGridComponent, ObjectDetailComponent, AsyncPipe, ObjectTableComponent],
55+
imports: [ThemedObjectListComponent, NgClass, ObjectGridComponent, ObjectDetailComponent, AsyncPipe, ObjectTableComponent, ObjectGeospatialMapComponent],
5556
})
5657
export class ObjectCollectionComponent implements OnInit {
5758
/**
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
<ng-container *ngIf="isPlatformBrowser(platformId)">
2-
<ds-geospatial-map [mapInfo]="mapInfo"></ds-geospatial-map>
3-
</ng-container>
4-
5-
1+
@if (isPlatformBrowser(platformId)) {
2+
<ds-geospatial-map [mapInfo]="mapInfo"></ds-geospatial-map>
3+
}

src/app/shared/view-mode-switch/view-mode-switch.component.html

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,21 @@
3939
class="btn btn-secondary"
4040
[attr.data-test]="'detail-view' | dsBrowserOnly">
4141
<i class="far fa-square"></i>
42-
</button> <button *ngIf="isToShow(viewModeEnum.GeospatialMap)"
43-
routerLink="."
44-
[queryParams]="{view: 'geospatialMap'}"
45-
queryParamsHandling="merge"
46-
(click)="switchViewTo(viewModeEnum.GeospatialMap)"
47-
routerLinkActive="active"
48-
[class.active]="currentMode === viewModeEnum.GeospatialMap"
49-
class="btn btn-secondary"
50-
[attr.data-test]="'grid-view' | dsBrowserOnly">
51-
<span class="fas fa-map"></span><span class="sr-only">{{'search.view-switch.show-geospatialMap' | translate}}</span>
5242
</button>
43+
@if (isToShow(viewModeEnum.GeospatialMap)) {
44+
<button
45+
[attr.aria-current]="currentMode === viewModeEnum.GeospatialMap"
46+
[attr.aria-label]="'search.view-switch.show-geospatialMap' | translate"
47+
routerLink="."
48+
[queryParams]="{view: 'geospatialMap'}"
49+
queryParamsHandling="merge"
50+
(click)="switchViewTo(viewModeEnum.GeospatialMap)"
51+
routerLinkActive="active"
52+
[class.active]="currentMode === viewModeEnum.GeospatialMap"
53+
class="btn btn-secondary"
54+
[attr.data-test]="'geospatial-view' | dsBrowserOnly">
55+
<span class="fas fa-map"></span><span class="sr-only">{{'search.view-switch.show-geospatialMap' | translate}}</span>
56+
</button>
57+
}
5358
}
5459
</div>

0 commit comments

Comments
 (0)