Skip to content
Snippets Groups Projects
dataset-list.component.ts 2.88 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * This file is part of Anis Client.
     *
     * @copyright Laboratoire d'Astrophysique de Marseille / CNRS
     *
     * For the full copyright and license information, please view the LICENSE
     * file that was distributed with this source code.
     */
    
    import { Component, OnInit } from '@angular/core';
    
    import { Store } from '@ngrx/store';
    import { Observable } from 'rxjs';
    
    import * as datasetActions from 'src/app/metamodel/actions/dataset.actions';
    import * as datasetFamilySelector from 'src/app/metamodel/selectors/dataset-family.selector';
    import * as datasetSelector from 'src/app/metamodel/selectors/dataset.selector';
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
    import { Dataset, DatasetFamily, Survey } from 'src/app/metamodel/models';
    
    import * as authSelector from '../../../auth/auth.selector';
    import * as instanceSelector from '../../../metamodel/selectors/instance.selector';
    import * as surveySelector from '../../../metamodel/selectors/survey.selector';
    
    Tifenn Guillas's avatar
    Tifenn Guillas committed
     * @classdesc Documentation dataset list container.
    
     *
     * @implements OnInit
     */
    
    @Component({
        selector: 'app-dataset-list',
        templateUrl: 'dataset-list.component.html',
        styleUrls: ['../documentation.component.scss']
    })
    
    export class DatasetListComponent implements OnInit {
        public instanceSelected: Observable<string>;
        public isAuthenticated: Observable<boolean>;
        public datasetFamilyListIsLoading: Observable<boolean>;
        public datasetFamilyListIsLoaded: Observable<boolean>;
        public datasetFamilyList: Observable<DatasetFamily[]>;
    
        public surveyListIsLoading: Observable<boolean>;
        public surveyListIsLoaded: Observable<boolean>;
        public surveyList: Observable<Survey[]>;
    
        public datasetListIsLoading: Observable<boolean>;
        public datasetListIsLoaded: Observable<boolean>;
        public datasetList: Observable<Dataset[]>;
    
        constructor(private store: Store<{ }>) {
            this.instanceSelected = store.select(instanceSelector.selectInstanceNameByRoute);
            this.isAuthenticated = store.select(authSelector.selectIsAuthenticated);
            this.datasetFamilyListIsLoading = store.select(datasetFamilySelector.selectDatasetFamilyListIsLoading);
            this.datasetFamilyListIsLoaded = store.select(datasetFamilySelector.selectDatasetFamilyListIsLoaded);
            this.datasetFamilyList = store.select(datasetFamilySelector.selectAllDatasetFamilies);
    
            this.surveyListIsLoading = store.select(surveySelector.selectSurveyListIsLoading);
            this.surveyListIsLoaded = store.select(surveySelector.selectSurveyListIsLoaded);
            this.surveyList = store.select(surveySelector.selectAllSurveys);
    
            this.datasetListIsLoading = store.select(datasetSelector.selectDatasetListIsLoading);
            this.datasetListIsLoaded = store.select(datasetSelector.selectDatasetListIsLoaded);
            this.datasetList = store.select(datasetSelector.selectAllDatasets);
        }
    
    
        ngOnInit(): void {
    
            this.store.dispatch(datasetActions.loadDatasetList());
        }
    }