File

src/app/logs/logs.component.ts

Implements

OnInit

Metadata

selector app-logs
styleUrls ./logs.component.css
templateUrl ./logs.component.html

Index

Properties
Methods
Inputs

Constructor

constructor(fb: FormBuilder)
Parameters :
Name Type Optional
fb FormBuilder No

Inputs

optimizationDto
Type : OptimizationDto
optimizationService
Type : OptimizationService

Methods

getInfos
getInfos(infos: any)
Parameters :
Name Type Optional
infos any No
Returns : {}
getOptimizationInfos
getOptimizationInfos()
Returns : void
killOptimizationProcess
killOptimizationProcess(info, index)
Parameters :
Name Optional
info No
index No
Returns : void
ngOnInit
ngOnInit()
Returns : void
selectOptimizationProcess
selectOptimizationProcess(info: any)
Parameters :
Name Type Optional
info any No
Returns : void
unselectOptimizationProcess
unselectOptimizationProcess(info: any)
Parameters :
Name Type Optional
info any No
Returns : void

Properties

floatLabelControl
Default value : new FormControl('auto')
hideRequiredControl
Default value : new FormControl(false)
infos
Type : any
logs
Type : string
Default value : ""
options
Type : FormGroup
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>&nbsp;
      <a href="" (click)="$event.preventDefault(); unselectOptimizationProcess(info)">Unselect</a>&nbsp;
      <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

Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""