gns3-web-ui/src/app/components/preferences/traceng/traceng-template-details/traceng-template-details.component.ts
2021-04-12 13:46:28 +02:00

73 lines
2.5 KiB
TypeScript

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { Server } from '../../../../models/server';
import { TracengTemplate } from '../../../../models/templates/traceng-template';
import { ServerService } from '../../../../services/server.service';
import { ToasterService } from '../../../../services/toaster.service';
import { TracengService } from '../../../../services/traceng.service';
@Component({
selector: 'app-traceng-template-details',
templateUrl: './traceng-template-details.component.html',
styleUrls: ['./traceng-template-details.component.scss', '../../preferences.component.scss'],
})
export class TracengTemplateDetailsComponent implements OnInit {
server: Server;
tracengTemplate: TracengTemplate;
inputForm: FormGroup;
isSymbolSelectionOpened: boolean = false;
constructor(
private route: ActivatedRoute,
private serverService: ServerService,
private tracengService: TracengService,
private toasterService: ToasterService,
private formBuilder: FormBuilder,
private router: Router
) {
this.inputForm = this.formBuilder.group({
templateName: new FormControl('', Validators.required),
defaultName: new FormControl('', Validators.required),
symbol: new FormControl('', Validators.required),
});
}
ngOnInit() {
const server_id = this.route.snapshot.paramMap.get('server_id');
const template_id = this.route.snapshot.paramMap.get('template_id');
this.serverService.get(parseInt(server_id, 10)).then((server: Server) => {
this.server = server;
this.tracengService.getTemplate(this.server, template_id).subscribe((tracengTemplate: TracengTemplate) => {
this.tracengTemplate = tracengTemplate;
});
});
}
goBack() {
this.router.navigate(['/server', this.server.id, 'preferences', 'traceng', 'templates']);
}
onSave() {
if (this.inputForm.invalid) {
this.toasterService.error(`Fill all required fields`);
} else {
this.tracengService
.saveTemplate(this.server, this.tracengTemplate)
.subscribe((tracengTemplate: TracengTemplate) => {
this.toasterService.success('Changes saved');
});
}
}
chooseSymbol() {
this.isSymbolSelectionOpened = !this.isSymbolSelectionOpened;
}
symbolChanged(chosenSymbol: string) {
this.isSymbolSelectionOpened = !this.isSymbolSelectionOpened;
this.tracengTemplate.symbol = chosenSymbol;
}
}