Newer
Older
/**
* 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 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 }));
}