Skip to content

Commit 0af02bc

Browse files
committed
feat(home): implement 'routing' to datahub
1 parent 18dbb90 commit 0af02bc

File tree

10 files changed

+46
-50
lines changed

10 files changed

+46
-50
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div class="h-full flex flex-col">
2-
<div class="flex-grow" gnUiSearchRouterContainer="mainSearch">
3-
<router-outlet></router-outlet>
2+
<div class="flex-grow" gnUiSearchStateContainer="mainSearch">
3+
<mel-datahub-home-page></mel-datahub-home-page>
44
</div>
55
<mel-datahub-footer></mel-datahub-footer>
66
</div>

apps/home/src/app/app.module.ts

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import { importProvidersFrom, isDevMode, NgModule } from '@angular/core'
22
import { BrowserModule } from '@angular/platform-browser'
3-
import { RouterModule } from '@angular/router'
43
import { AppComponent } from './app.component'
54
import {
6-
DefaultRouterModule,
75
FeatureAuthModule,
86
FeatureCatalogModule,
97
FeatureRecordModule,
@@ -20,7 +18,6 @@ import {
2018
UiInputsModule,
2119
UiWidgetsModule,
2220
UiMapModule,
23-
RouterService,
2421
} from 'geonetwork-ui'
2522
import {
2623
TranslateLoader,
@@ -41,7 +38,6 @@ import { MatTooltipModule } from '@angular/material/tooltip'
4138
import { MelModule, MelEmbeddedTranslateLoader } from '@mel-dataplatform/mel'
4239
import { HomeHeaderComponent } from './home/home-header/home-header.component'
4340
import { HomePageComponent } from './home/home-page/home-page.component'
44-
import { AppRouterService } from './app.router.service'
4541

4642
@NgModule({
4743
declarations: [AppComponent, HomeHeaderComponent, HomePageComponent],
@@ -85,21 +81,11 @@ import { AppRouterService } from './app.router.service'
8581
),
8682
EffectsModule.forRoot([]),
8783
StoreDevtoolsModule.instrument({ logOnly: !isDevMode() }),
88-
DefaultRouterModule.forRoot({
89-
searchStateId: 'mainSearch',
90-
searchRouteComponent: HomePageComponent,
91-
recordRouteComponent: HomePageComponent,
92-
}),
93-
RouterModule.forRoot([], {
94-
initialNavigation: 'enabledBlocking',
95-
scrollPositionRestoration: 'enabled',
96-
}),
9784
],
9885
providers: [
9986
importProvidersFrom(FeatureAuthModule),
10087
provideGn4(),
10188
provideRepositoryUrl(() => '/geonetwork/srv/api'),
102-
{ provide: RouterService, useClass: AppRouterService },
10389
{
10490
provide: LOGIN_URL,
10591
useFactory: () => '${current_url}?login',

apps/home/src/app/app.router.service.ts

Lines changed: 0 additions & 20 deletions
This file was deleted.

apps/home/src/app/home/home-header/home-header.component.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ <h1 class="flex justify-center mel-page-title" translate="">
66
<div class="flex justify-center pt-8 pb-24 relative">
77
<mel-datahub-fuzzy-search
88
class="mel-fuzzy-search"
9+
(inputSubmitted)="onFuzzySearchSubmit($event)"
910
(itemSelected)="onFuzzySearchSelection($event)"
1011
[autoFocus]="true"
1112
></mel-datahub-fuzzy-search>
1213
</div>
13-
<div class="max-w-[1182px] mx-auto" gnUiSearchStateContainer="headerHome">
14+
<div class="max-w-[1182px] mx-auto">
1415
<div class="sm:ml-16">
1516
<div class="mel-title-line"></div>
1617
<div class="text-2xl font-title" translate="">
@@ -23,7 +24,7 @@ <h1 class="flex justify-center mel-page-title" translate="">
2324
></mel-datahub-results-list-carousel>
2425
</div>
2526
<div class="flex justify-end mt-4">
26-
<a routerLink="/search">
27+
<a [href]="HREF_ROUTE_SEARCH">
2728
<mel-datahub-button
2829
[label]="'mel.homepage.visit.catalog' | translate"
2930
[icon]="'arrow'"

apps/home/src/app/home/home-header/home-header.component.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
import { ChangeDetectionStrategy, Component } from '@angular/core'
2-
import { RouterFacade, SearchService } from 'geonetwork-ui'
2+
import { SearchService } from 'geonetwork-ui'
3+
import {
4+
DATAHUB_ROOT,
5+
DATAHUB_ROUTE_SEARCH,
6+
goFromHomeToRecord,
7+
goFromHomeToSearch,
8+
} from '@mel-dataplatform/mel'
39
import { CatalogRecord } from 'geonetwork-ui/libs/common/domain/src/lib/model/record'
410
import { SortByField } from 'geonetwork-ui/libs/common/domain/src/lib/model/search'
511

@@ -17,14 +23,18 @@ import { SortByField } from 'geonetwork-ui/libs/common/domain/src/lib/model/sear
1723
changeDetection: ChangeDetectionStrategy.OnPush,
1824
})
1925
export class HomeHeaderComponent {
20-
constructor(
21-
public routerFacade: RouterFacade,
22-
private searchService: SearchService
23-
) {}
26+
HREF_ROUTE_SEARCH = `${DATAHUB_ROOT}/${DATAHUB_ROUTE_SEARCH}`
27+
28+
constructor(private searchService: SearchService) {}
2429

2530
onFuzzySearchSelection(record: CatalogRecord) {
26-
this.routerFacade.goToMetadata(record)
31+
goFromHomeToRecord(record)
32+
}
33+
34+
onFuzzySearchSubmit(query: string) {
35+
goFromHomeToSearch(query)
2736
}
37+
2838
clearSearchAndSort(sort: SortByField | string): void {
2939
this.searchService.setSortAndFilters({}, sort as SortByField)
3040
}

apps/home/src/app/home/home-page/home-page.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ChangeDetectionStrategy, Component } from '@angular/core';
1+
import { ChangeDetectionStrategy, Component } from '@angular/core'
22

33
@Component({
44
selector: 'mel-datahub-home-page',

libs/mel/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './lib/mel.module'
22
export * from './lib/embedded.translate.loader'
3+
export * from './lib/route.utils'

libs/mel/src/lib/results-list/results-list.component.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Component, Input, OnDestroy, OnInit } from '@angular/core'
1+
import { Component, Input, OnDestroy, OnInit, Optional } from '@angular/core'
22
import { Store } from '@ngrx/store'
33
import {
44
FIELDS_BRIEF,
@@ -13,6 +13,7 @@ import {
1313
Keyword,
1414
} from 'geonetwork-ui/libs/common/domain/src/lib/model/record'
1515
import { Subscription } from 'rxjs'
16+
import { goFromHomeToRecord, goFromHomeToSearch } from '../route.utils'
1617

1718
@Component({
1819
selector: 'mel-datahub-results-list',
@@ -30,7 +31,7 @@ export class ResultsListComponent implements OnInit, OnDestroy {
3031
constructor(
3132
protected searchService: SearchService,
3233
protected searchFacade: SearchFacade,
33-
protected routerFacade: RouterFacade,
34+
@Optional() protected routerFacade: RouterFacade,
3435
protected favoritesService: FavoritesService,
3536
protected store: Store<SearchState>
3637
) {}
@@ -57,10 +58,14 @@ export class ResultsListComponent implements OnInit, OnDestroy {
5758
}
5859

5960
onInfoKeywordClick(keyword: Keyword) {
60-
this.routerFacade.updateSearch({ q: keyword.label })
61+
this.routerFacade
62+
? this.routerFacade.updateSearch({ q: keyword.label })
63+
: goFromHomeToSearch(keyword.label)
6164
}
6265

6366
onMetadataSelection(metadata: CatalogRecord): void {
64-
this.routerFacade.goToMetadata(metadata)
67+
this.routerFacade
68+
? this.routerFacade.goToMetadata(metadata)
69+
: goFromHomeToRecord(metadata)
6570
}
6671
}

libs/mel/src/lib/route.utils.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { CatalogRecord } from 'geonetwork-ui/libs/common/domain/src/lib/model/record'
2+
3+
export const DATAHUB_ROOT = '/catalogue'
4+
export const DATAHUB_ROUTE_DATASET = 'dataset'
5+
export const DATAHUB_ROUTE_SEARCH = 'search'
6+
7+
export function goFromHomeToRecord(record: CatalogRecord) {
8+
window.location.href = `${DATAHUB_ROOT}/${DATAHUB_ROUTE_DATASET}/${record.uniqueIdentifier}`
9+
}
10+
11+
export function goFromHomeToSearch(query: string) {
12+
window.location.href = `${DATAHUB_ROOT}/${DATAHUB_ROUTE_SEARCH}?q=${query}`
13+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"license": "MIT",
55
"scripts": {
66
"start": "nx serve mel-datahub",
7-
"home": "nx serve home",
7+
"home": "nx serve home --port 4201",
88
"format": "nx format:write",
99
"format:check": "nx format:check",
1010
"lint:all": "nx run-many --target=lint",

0 commit comments

Comments
 (0)