Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs';
import { Store } from '@ngrx/store';
import { Dataset } from '../../metamodel/model';
import { SearchMultipleQueryParams } from "../store/model";
import { ConeSearch } from "../../shared/cone-search/store/model";
import * as searchMultipleActions from '../store/search-multiple.action';
import * as datasetActions from '../../metamodel/action/dataset.action';
import * as fromSearchMultiple from '../store/search-multiple.reducer';
import * as fromMetamodel from '../../metamodel/reducers';
import * as searchMultipleSelector from '../store/search-multiple.selector';
import * as metamodelSelector from '../../metamodel/selectors';
import * as coneSearchSelector from '../../shared/cone-search/store/cone-search.selector';
import { ScrollTopService } from '../../shared/service/sroll-top.service';
import {InitSearchByUrlAction} from "../store/search-multiple.action";
interface StoreState {
searchMultiple: fromSearchMultiple.State;
metamodel: fromMetamodel.State;
}
@Component({
selector: 'app-datasets',
templateUrl: 'datasets.component.html'
})
export class DatasetsComponent implements OnInit {
public datasetSearchMetaIsLoading: Observable<boolean>;
public datasetSearchMetaIsLoaded: Observable<boolean>;
public currentStep: Observable<string>;
public datasetList: Observable<Dataset[]>;
public isValidConeSearch: Observable<boolean>;
public coneSearch: Observable<ConeSearch>;
public queryParams: Observable<SearchMultipleQueryParams>;
constructor(private store: Store<StoreState>, private scrollTopService: ScrollTopService) {
this.datasetSearchMetaIsLoading = store.select(metamodelSelector.getDatasetSearchMetaIsLoading);
this.datasetSearchMetaIsLoaded = store.select(metamodelSelector.getDatasetSearchMetaIsLoaded);
this.currentStep = store.select(searchMultipleSelector.getCurrentStep);
this.datasetList = store.select(metamodelSelector.getDatasetList);
this.isValidConeSearch = this.store.select(coneSearchSelector.getIsValidConeSearch);
this.coneSearch = this.store.select(coneSearchSelector.getConeSearch);
this.queryParams = this.store.select(searchMultipleSelector.getQueryParams);
}
ngOnInit() {
// Create a micro task that is processed after the current synchronous code
// This micro task prevent the expression has changed after view init error
Promise.resolve(null).then(() => this.store.dispatch(new searchMultipleActions.InitSearchByUrlAction()));
Promise.resolve(null).then(() => this.store.dispatch(new searchMultipleActions.ChangeStepAction('datasets')));
this.store.dispatch(new datasetActions.LoadDatasetSearchMetaAction());
this.scrollTopService.setScrollTop();
}
checkStep(): void {
this.store.dispatch(new searchMultipleActions.DatasetsCheckedAction());
}
updateDatasetList(datasetList: string[]) {
console.log(datasetList);
}