Skip to content
Snippets Groups Projects
edit-instance.component.ts 1.74 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 } from '@angular/core';
    
    
    import { Store } from '@ngrx/store';
    import { Observable } from 'rxjs';
    
    
    import { Instance, FileInfo } from 'src/app/metamodel/models';
    
    import * as instanceActions from 'src/app/metamodel/actions/instance.actions';
    import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector';
    
    import * as rootDirectoryActions from 'src/app/metamodel/actions/root-directory.actions';
    import * as rootDirectorySelector from 'src/app/metamodel/selectors/root-directory.selector';
    
    
    @Component({
        selector: 'app-edit-instance',
        templateUrl: 'edit-instance.component.html'
    })
    
    export class EditInstanceComponent {
    
        public instance: Observable<Instance>;
    
        public rootDirectory: Observable<FileInfo[]>;
        public rootDirectoryIsLoading: Observable<boolean>;
        public rootDirectoryIsLoaded: Observable<boolean>;
    
    
        constructor(private store: Store<{ }>) {
            this.instance = store.select(instanceSelector.selectInstanceByRouteName);
    
            this.rootDirectory = store.select(rootDirectorySelector.selectAllFileInfo);
            this.rootDirectoryIsLoading = store.select(rootDirectorySelector.selectRootDirectoryIsLoading);
            this.rootDirectoryIsLoaded = store.select(rootDirectorySelector.selectRootDirectoryIsLoaded);
    
        }
    
        editInstance(instance: Instance) {
            this.store.dispatch(instanceActions.editInstance({ instance }));
        }
    
    
        loadRootDirectory(path: string) {
            this.store.dispatch(rootDirectoryActions.loadRootDirectory({ path }));
        }