Skip to content

Commit fefc4ce

Browse files
committed
first draft to preload data
1 parent d499f2d commit fefc4ce

File tree

6 files changed

+57
-18
lines changed

6 files changed

+57
-18
lines changed

src/app/modules/feasibility-query/components/search/search.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<ng-container #outlet [ngTemplateOutlet]="content"></ng-container>
2424
<ng-template #content>
2525
<num-search-filter
26-
*ngFor="let searchFilter of searchFilters$ | async"
26+
*ngFor="let searchFilter of searchFilters"
2727
[filter]="searchFilter"
2828
(selectedFilterChanged)="setElasticSearchFilter($event)"
2929
></num-search-filter>

src/app/modules/feasibility-query/components/search/search.component.ts

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { CriteriaSearchFilterAdapter } from 'src/app/shared/models/SearchFilter/
22
import { FilterProvider } from 'src/app/service/Search/Filter/SearchFilterProvider.service';
33
import { InterfaceTableDataRow } from 'src/app/shared/models/TableData/InterfaceTableDataRows';
44
import { MatDrawer } from '@angular/material/sidenav';
5-
import { SearchFilter } from 'src/app/shared/models/SearchFilter/InterfaceSearchFilter';
65
import { SearchFilterService } from 'src/app/service/Search/Filter/SearchFilter.service';
76
import { SearchResultProvider } from 'src/app/service/Search/Result/SearchResultProvider';
87
import { SearchService } from 'src/app/service/Search/Search.service';
@@ -26,8 +25,8 @@ import {
2625
ViewContainerRef,
2726
TemplateRef,
2827
} from '@angular/core';
29-
import { DataSelectionMainProfileInitializerService } from 'src/app/service/DataSelectionMainProfileInitializerService';
30-
import { DataSelectionProviderService } from 'src/app/modules/data-selection/services/DataSelectionProvider.service';
28+
import { ActivatedRoute } from '@angular/router';
29+
import { SearchFilter } from 'src/app/shared/models/SearchFilter/InterfaceSearchFilter';
3130

3231
@Component({
3332
selector: 'num-feasibility-query-search',
@@ -42,14 +41,15 @@ export class FeasibilityQuerySearchComponent implements OnInit, OnDestroy, After
4241
searchtext = '';
4342
adaptedData: TableData;
4443
private subscription: Subscription;
45-
private isInitialized = false;
4644
isOpen = false;
4745

46+
private isInitialized = false;
47+
4848
elasticSearchEnabled = false;
4949

5050
selectedDetails$: Observable<SearchTermDetails>;
5151

52-
searchFilters$: Observable<SearchFilter[]>;
52+
searchFilters: SearchFilter[] = [];
5353

5454
searchText$: Observable<string>;
5555

@@ -69,8 +69,7 @@ export class FeasibilityQuerySearchComponent implements OnInit, OnDestroy, After
6969
private searchTermDetailsService: SearchTermDetailsService,
7070
private searchResultProviderService: SearchResultProvider,
7171
private searchTermDetailsProviderService: SearchTermDetailsProviderService,
72-
private dataSelectionMainProfileInitializerService: DataSelectionMainProfileInitializerService,
73-
private dataSelectionProviderService: DataSelectionProviderService
72+
private activatedRoute: ActivatedRoute
7473
) {
7574
this.subscription = this.searchResultProviderService
7675
.getCriteriaSearchResults()
@@ -101,6 +100,8 @@ export class FeasibilityQuerySearchComponent implements OnInit, OnDestroy, After
101100
}
102101

103102
ngOnInit() {
103+
const t = this.activatedRoute.snapshot.data.preLoadCriteriaData;
104+
console.log('Preloaded data:', t);
104105
this.selectedDetails$ = this.searchTermDetailsProviderService.getSearchTermDetails$();
105106
this.handleSelectedItemsSubscription();
106107
this.getElasticSearchFilter();
@@ -184,16 +185,16 @@ export class FeasibilityQuerySearchComponent implements OnInit, OnDestroy, After
184185
}
185186

186187
public getElasticSearchFilter(): void {
187-
this.searchFilters$ = this.filterService.fetchFilters().pipe(
188-
map((searchFilters: SearchTermFilter[]) =>
189-
searchFilters.map((searchFilter) => {
190-
searchFilter.setSelectedValues(
191-
this.searchFilterProvider.getSelectedValuesOfType(searchFilter.getName())
192-
);
193-
return CriteriaSearchFilterAdapter.convertToFilterValues(searchFilter);
194-
})
195-
)
196-
);
188+
const searchFilters: Array<SearchTermFilter> =
189+
this.activatedRoute.snapshot.data.preLoadCriteriaFilter;
190+
if (searchFilters && searchFilters.length > 0) {
191+
this.searchFilters = searchFilters.map((searchFilter: SearchTermFilter) => {
192+
searchFilter.setSelectedValues(
193+
this.searchFilterProvider.getSelectedValuesOfType(searchFilter.getName())
194+
);
195+
return CriteriaSearchFilterAdapter.convertToFilterValues(searchFilter);
196+
});
197+
}
197198
}
198199

199200
public setElasticSearchFilter(filter: any) {

src/app/modules/feasibility-query/feasibility-query-routing.module.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ import { NgModule } from '@angular/core';
44
import { PathSegments } from 'src/app/app-paths';
55
import { ResultComponent } from './components/result/result.component';
66
import { RouterModule, Routes } from '@angular/router';
7+
import { CriteriaSearchDataResolverService } from 'src/app/service/Resolver/CriteriaSearchDataResolver.service';
8+
import { CriteriaSearchFilterResolverService } from 'src/app/service/Resolver/CriteriaSearchFilterResolver.service';
79

810
const routes: Routes = [
911
{
1012
path: '',
1113
redirectTo: PathSegments.search,
1214
pathMatch: 'full',
15+
1316
data: {
1417
animation: 'Feasibility_Search',
1518
title: 'TAB_TITLE.FEASIBILITY_QUERY.SEARCH',
@@ -34,6 +37,10 @@ const routes: Routes = [
3437
{
3538
path: PathSegments.search,
3639
component: FeasibilityQuerySearchComponent,
40+
resolve: {
41+
preLoadCriteriaData: CriteriaSearchDataResolverService,
42+
preLoadCriteriaFilter: CriteriaSearchFilterResolverService,
43+
},
3744
data: {
3845
animation: 'Feasibility_Search',
3946
title: 'TAB_TITLE.FEASIBILITY_QUERY.SEARCH',
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Injectable } from '@angular/core';
2+
import { SearchService } from '../Search/Search.service';
3+
import { SearchTermResultList } from 'src/app/model/ElasticSearch/ElasticSearchResult/ElasticSearchList/ResultList/SearchTermResultList';
4+
import { Observable } from 'rxjs';
5+
6+
@Injectable({
7+
providedIn: 'root',
8+
})
9+
export class CriteriaSearchDataResolverService {
10+
constructor(private searchService: SearchService) {}
11+
12+
resolve(): Observable<SearchTermResultList> {
13+
return this.searchService.searchCriteria('');
14+
}
15+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { Injectable } from '@angular/core';
2+
import { Observable } from 'rxjs';
3+
import { SearchFilterService } from '../Search/Filter/SearchFilter.service';
4+
import { SearchTermFilter } from 'src/app/model/ElasticSearch/ElasticSearchFilter/SearchTermFilter';
5+
6+
@Injectable({
7+
providedIn: 'root',
8+
})
9+
export class CriteriaSearchFilterResolverService {
10+
constructor(private searchFilterService: SearchFilterService) {}
11+
12+
resolve(): Observable<Array<SearchTermFilter>> {
13+
return this.searchFilterService.fetchFilters();
14+
}
15+
}

src/app/shared/models/SearchFilter/CriteriaSearchFilterAdapter.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { TerminologySystemDictionary } from 'src/app/model/Utilities/Terminology
66

77
export class CriteriaSearchFilterAdapter {
88
public static convertToFilterValues(filter: SearchTermFilter): SearchFilter {
9+
console.log('Converting SearchTermFilter to SearchFilter:', filter);
910
const searchFilterValues: SearchFilterValues[] = filter
1011
.getValues()
1112
.map((filterValue: SearchTermFilterValues) =>

0 commit comments

Comments
 (0)