65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import {Component, OnInit} from '@angular/core';
|
|
import * as FA from '@fortawesome/free-solid-svg-icons';
|
|
import {UntilDestroy, untilDestroyed} from '@ngneat/until-destroy';
|
|
import {Route} from '@shared/models/route.enum';
|
|
import {Store} from '@ngxs/store';
|
|
import {Router} from '@angular/router';
|
|
import {ChangePentest} from '@shared/stores/project-state/project-state.actions';
|
|
import {BehaviorSubject} from 'rxjs';
|
|
import {PentestStatus} from '@shared/models/pentest-status.model';
|
|
import {ProjectState} from '@shared/stores/project-state/project-state';
|
|
import {Project} from '@shared/models/project.model';
|
|
import {Pentest} from '@shared/models/pentest.model';
|
|
|
|
@UntilDestroy()
|
|
@Component({
|
|
selector: 'app-pentest-header',
|
|
templateUrl: './pentest-header.component.html',
|
|
styleUrls: ['./pentest-header.component.scss']
|
|
})
|
|
export class PentestHeaderComponent implements OnInit {
|
|
// HTML only
|
|
readonly fa = FA;
|
|
|
|
pentest$: BehaviorSubject<Pentest> = new BehaviorSubject<Pentest>(null);
|
|
selectedProjectTitle$: BehaviorSubject<string> = new BehaviorSubject<string>('');
|
|
|
|
constructor(private store: Store,
|
|
private readonly router: Router) {
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.store.select(ProjectState.project).pipe(
|
|
untilDestroyed(this)
|
|
).subscribe({
|
|
next: (selectedProject: Project) => {
|
|
this.selectedProjectTitle$.next(selectedProject?.title);
|
|
},
|
|
error: err => {
|
|
console.error(err);
|
|
}
|
|
});
|
|
|
|
this.store.select(ProjectState.pentest).pipe(
|
|
untilDestroyed(this)
|
|
).subscribe({
|
|
next: (selectedPentest: Pentest) => {
|
|
this.pentest$.next(selectedPentest);
|
|
},
|
|
error: err => {
|
|
console.error(err);
|
|
}
|
|
});
|
|
}
|
|
|
|
onClickRouteBack(): void {
|
|
// ToDo: Change to Objective Overview after routing is fixed
|
|
this.router.navigate([Route.PROJECT_OVERVIEW])
|
|
.then(
|
|
() => {
|
|
this.store.dispatch(new ChangePentest(null));
|
|
}
|
|
).finally();
|
|
}
|
|
}
|