src/app/logs/logs.component.ts
selector | app-logs |
styleUrls | ./logs.component.css |
templateUrl | ./logs.component.html |
Properties |
Methods |
Inputs |
constructor(fb: FormBuilder)
|
||||||
Defined in src/app/logs/logs.component.ts:19
|
||||||
Parameters :
|
optimizationDto | |
Type : OptimizationDto
|
|
Defined in src/app/logs/logs.component.ts:16
|
optimizationService | |
Type : OptimizationService
|
|
Defined in src/app/logs/logs.component.ts:17
|
getInfos | ||||||
getInfos(infos: any)
|
||||||
Defined in src/app/logs/logs.component.ts:52
|
||||||
Parameters :
Returns :
{}
|
getOptimizationInfos |
getOptimizationInfos()
|
Defined in src/app/logs/logs.component.ts:45
|
Returns :
void
|
killOptimizationProcess | ||||||
killOptimizationProcess(info, index)
|
||||||
Defined in src/app/logs/logs.component.ts:65
|
||||||
Parameters :
Returns :
void
|
ngOnInit |
ngOnInit()
|
Defined in src/app/logs/logs.component.ts:39
|
Returns :
void
|
selectOptimizationProcess | ||||||
selectOptimizationProcess(info: any)
|
||||||
Defined in src/app/logs/logs.component.ts:72
|
||||||
Parameters :
Returns :
void
|
unselectOptimizationProcess | ||||||
unselectOptimizationProcess(info: any)
|
||||||
Defined in src/app/logs/logs.component.ts:77
|
||||||
Parameters :
Returns :
void
|
floatLabelControl |
Default value : new FormControl('auto')
|
Defined in src/app/logs/logs.component.ts:15
|
hideRequiredControl |
Default value : new FormControl(false)
|
Defined in src/app/logs/logs.component.ts:14
|
infos |
Type : any
|
Defined in src/app/logs/logs.component.ts:19
|
logs |
Type : string
|
Default value : ""
|
Defined in src/app/logs/logs.component.ts:18
|
options |
Type : FormGroup
|
Defined in src/app/logs/logs.component.ts:13
|
import {Component, Input, OnInit} from '@angular/core';
import {FormBuilder, FormControl, FormGroup} from "@angular/forms";
import {OptimizationDto} from "../dto/optimization-dto";
import {OptimizationService} from "../services/optimization.service";
@Component({
selector: 'app-logs',
templateUrl: './logs.component.html',
styleUrls: ['./logs.component.css']
})
export class LogsComponent implements OnInit {
options: FormGroup;
hideRequiredControl = new FormControl(false);
floatLabelControl = new FormControl('auto');
@Input() optimizationDto: OptimizationDto;
@Input() optimizationService: OptimizationService;
logs: string = "";
infos: any;
constructor(fb: FormBuilder) {
this.options = fb.group({
hideRequired: this.hideRequiredControl,
floatLabel: this.floatLabelControl,
});
OptimizationService.onOptimizationInfo.asObservable().subscribe(value => {
if (value && value.status === "RUNNING") {
if (value.logs && value.logs !== "") {
this.logs += "\n" + value.logs;
} else {
if (!this.logs.includes(value.status + " Thread " + value.hash)) {
this.logs += value.status + " Thread " + value.hash;
}
}
}
});
}
ngOnInit() {
this.getOptimizationInfos();
OptimizationService.onOptimizationStart.asObservable().subscribe(value => this.getOptimizationInfos());
OptimizationService.onOptimizationFinish.asObservable().subscribe(value => this.getOptimizationInfos());
}
getOptimizationInfos() {
this.optimizationService.getOptimizationInfos()
.subscribe(infos => {
this.infos = infos.infos;
});
}
getInfos(infos: any) {
let infosR = [];
for (let info of infos) {
for (let key of Object.keys(info)) {
infosR.push({
id: key,
infos: info[key]
})
}
}
return infosR;
}
killOptimizationProcess(info, index) {
this.optimizationService.killOptimizationProcess(info.id).subscribe(() => {
this.infos.splice(index, 1);
OptimizationService.clearOptimizationInfo();
})
}
selectOptimizationProcess(info: any) {
OptimizationService.clearOptimizationInfo();
this.optimizationService.startEventListener(info.infos[0])
}
unselectOptimizationProcess(info: any) {
OptimizationService.clearOptimizationInfo();
}
}
<opla-grid-list *ngIf="infos && infos.length > 0" style="font-size: 15px;">
<opla-grid-tile>
There are {{infos.length}} experiments running:
</opla-grid-tile>
<opla-grid-tile *ngFor="let info of getInfos(infos); let index;">
<span style="text-decoration: underline; padding: 0 10px;">Experiment {{info.id}}</span>
<span>
<a href="" (click)="$event.preventDefault(); selectOptimizationProcess(info)">Select</a>
<a href="" (click)="$event.preventDefault(); unselectOptimizationProcess(info)">Unselect</a>
<a href="" (click)="$event.preventDefault(); killOptimizationProcess(info, index)">Kill</a>
</span>
</opla-grid-tile>
</opla-grid-list>
<br><br>
<opla-grid-list>
<opla-grid-tile>
<mat-card style="overflow: scroll;max-height: 62vh;">
<pre style="height: 100%">
{{logs}}
</pre>
</mat-card>
</opla-grid-tile>
</opla-grid-list>
./logs.component.css