1
|
import {Component, OnDestroy, OnInit} from '@angular/core';
|
2
|
import { SearchRequest } from '../../../model/SearchRequest';
|
3
|
import { QueryService } from '../../../services/query.service';
|
4
|
import { Router } from '@angular/router';
|
5
|
import { DataHolderService } from '../../../services/data-holder/data-holder.service';
|
6
|
import {SearchComponent} from '../../pages/search/search.component';
|
7
|
import {Subscription} from 'rxjs';
|
8
|
|
9
|
@Component({
|
10
|
selector: 'app-search-box',
|
11
|
templateUrl: './search-box.component.html',
|
12
|
styleUrls: ['./search-box.component.css']
|
13
|
})
|
14
|
export class SearchBoxComponent implements OnInit, OnDestroy {
|
15
|
expression: string;
|
16
|
private queryServiceSubscription$: Subscription;
|
17
|
|
18
|
constructor(private queryService: QueryService, private router: Router, private dataHolderService: DataHolderService) { }
|
19
|
|
20
|
ngOnInit(): void {
|
21
|
}
|
22
|
|
23
|
onSubmit(): void {
|
24
|
if (!this.expression) { return; }
|
25
|
|
26
|
const searchRequest: SearchRequest = new SearchRequest(this.expression, new Date());
|
27
|
console.log('odeslano: ' + JSON.stringify(searchRequest));
|
28
|
|
29
|
this.queryServiceSubscription$ = this.queryService.searchPost(searchRequest).subscribe (data => {
|
30
|
this.dataHolderService.setData(data);
|
31
|
if (this.router.url === '/') {
|
32
|
this.router.navigate(['/search']);
|
33
|
}
|
34
|
});
|
35
|
}
|
36
|
|
37
|
ngOnDestroy(): void {
|
38
|
console.log(this.queryServiceSubscription$);
|
39
|
if (this.queryServiceSubscription$ !== undefined) {
|
40
|
console.log('podminka');
|
41
|
this.queryServiceSubscription$.unsubscribe();
|
42
|
}
|
43
|
}
|
44
|
}
|