diff --git a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.html b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.html index 88d1eef..5a939cc 100644 --- a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.html +++ b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.html @@ -16,6 +16,14 @@ Nombre + + OgLive + + + {{ oglive.name }} + + + Número de Serie diff --git a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts index a5ce5db..a0b7f37 100644 --- a/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts +++ b/ogWebconsole/src/app/components/groups/clients/create-client/create-client.component.ts @@ -1,10 +1,10 @@ import { HttpClient } from '@angular/common/http'; -import {Component, Inject, OnInit} from '@angular/core'; +import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; -import {MatSnackBar} from "@angular/material/snack-bar"; -import {ToastrService} from "ngx-toastr"; -import {DataService} from "../../data.service"; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { ToastrService } from 'ngx-toastr'; +import { DataService } from '../../data.service'; @Component({ selector: 'app-create-client', @@ -13,18 +13,19 @@ import {DataService} from "../../data.service"; }) export class CreateClientComponent implements OnInit { clientForm!: FormGroup; - parentUnits: any[] = []; // Array to store parent units fetched from API - hardwareProfiles: any[] = []; // Array to store hardware profiles fetched from API + parentUnits: any[] = []; + hardwareProfiles: any[] = []; + ogLives: any[] = []; // Array para almacenar los oglives private errorForm: boolean = false; protected netifaceTypes = [ - {"name": 'Eth0', "value": "eth0"}, - {"name": 'Eth1', "value": "eth1"}, - {"name": 'Eth2', "value": "eth2"}, + { "name": 'Eth0', "value": "eth0" }, + { "name": 'Eth1', "value": "eth1" }, + { "name": 'Eth2', "value": "eth2" }, ]; protected netDriverTypes = [ - {"name": 'Generic', "value": "generic"}, + { "name": 'Generic', "value": "generic" }, ]; - loading:boolean = false + loading: boolean = false; constructor( private fb: FormBuilder, @@ -33,14 +34,14 @@ export class CreateClientComponent implements OnInit { private snackBar: MatSnackBar, private toastService: ToastrService, private dataService: DataService, - @Inject(MAT_DIALOG_DATA) public data: any // Inject data for edit mode - ) { - } + @Inject(MAT_DIALOG_DATA) public data: any + ) { } ngOnInit(): void { console.log(this.data); - this.loadParentUnits(); // Load parent units when component initializes + this.loadParentUnits(); this.loadHardwareProfiles(); + this.loadOgLives(); // Cargar los oglives this.clientForm = this.fb.group({ organizationalUnit: [this.data.organizationalUnit ? this.data.organizationalUnit['@id'] : null, Validators.required], name: ['', Validators.required], @@ -51,6 +52,7 @@ export class CreateClientComponent implements OnInit { ip: ['', Validators.required], menu: [this.data.organizationalUnit && this.data.organizationalUnit.networkSettings && this.data.organizationalUnit.networkSettings.menu ? this.data.organizationalUnit.networkSettings.menu['@id'] : null], hardwareProfile: [this.data.organizationalUnit && this.data.organizationalUnit.networkSettings && this.data.organizationalUnit.networkSettings.hardwareProfile ? this.data.organizationalUnit.networkSettings.hardwareProfile['@id'] : null], + ogLive: [null, Validators.required] // Nuevo campo para ogLive }); } @@ -58,35 +60,50 @@ export class CreateClientComponent implements OnInit { this.dataService.getHardwareProfiles().subscribe( (data: any[]) => { this.hardwareProfiles = data; - this.loading = false + this.loading = false; }, (error: any) => { console.error('Error fetching hardware profiles', error); - this.loading = false + this.loading = false; } ); } loadParentUnits() { - this.loading = true + this.loading = true; const url = 'http://127.0.0.1:8080/organizational-units?page=1&itemsPerPage=10000'; this.http.get(url).subscribe( response => { this.parentUnits = response['hydra:member']; - this.loading = false + this.loading = false; }, error => { console.error('Error fetching parent units:', error); - this.loading = false + this.loading = false; + } + ); + } + + loadOgLives() { + // Lógica para cargar ogLives desde la API + const url = 'http://127.0.0.1:8080/og-lives?page=1&itemsPerPage=30'; + this.http.get(url).subscribe( + response => { + this.ogLives = response['hydra:member']; + }, + error => { + console.error('Error fetching ogLives:', error); } ); } onSubmit() { if (this.clientForm.valid) { - this.errorForm = false + this.errorForm = false; const formData = this.clientForm.value; + formData.ogLive = formData.ogLive; // Asegurar que se envía el UUID de ogLive + console.log('Form data:', formData ); this.http.post('http://127.0.0.1:8080/clients', formData).subscribe( response => { this.dialogRef.close(response); @@ -94,7 +111,7 @@ export class CreateClientComponent implements OnInit { }, error => { console.error('Error during POST:', error); - this.errorForm = true + this.errorForm = true; this.openSnackBar(true, 'Error al crear el cliente: ' + error.error['hydra:description']); } ); @@ -108,7 +125,8 @@ export class CreateClientComponent implements OnInit { openSnackBar(isError: boolean, message: string) { if (isError) { this.toastService.error(' Error al crear el cliente: ' + message, 'Error'); - } else + } else { this.toastService.success(message, 'Éxito'); + } } }