From daca59b7bc591d16aaf67739699871815ba55346 Mon Sep 17 00:00:00 2001 From: apuente Date: Wed, 2 Oct 2024 11:28:25 +0200 Subject: [PATCH] refs #798 OU detail add calendar info --- .../command-detail.component.html | 2 +- .../edit-organizational-unit.component.ts | 8 +- .../show-organizational-unit.component.ts | 74 +++++++++++-------- 3 files changed, 47 insertions(+), 37 deletions(-) diff --git a/ogWebconsole/src/app/components/commands/main-commands/detail-command/command-detail.component.html b/ogWebconsole/src/app/components/commands/main-commands/detail-command/command-detail.component.html index 18fdfc7..2b3bbd3 100644 --- a/ogWebconsole/src/app/components/commands/main-commands/detail-command/command-detail.component.html +++ b/ogWebconsole/src/app/components/commands/main-commands/detail-command/command-detail.component.html @@ -48,7 +48,7 @@ - + diff --git a/ogWebconsole/src/app/components/groups/shared/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts b/ogWebconsole/src/app/components/groups/shared/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts index ce57660..f202140 100644 --- a/ogWebconsole/src/app/components/groups/shared/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts +++ b/ogWebconsole/src/app/components/groups/shared/organizational-units/edit-organizational-unit/edit-organizational-unit.component.ts @@ -32,18 +32,18 @@ export class EditOrganizationalUnitComponent implements OnInit { {"name": 'Half duplex', "value": "half-duplex"}, {"name": 'Full duplex', "value": "full-duplex"}, ]; - @Output() unitAdded = new EventEmitter(); // Event emitter to notify parent component about unit addition + @Output() unitAdded = new EventEmitter(); calendars: any; constructor( private _formBuilder: FormBuilder, private dialogRef: MatDialogRef, - private http: HttpClient, // Inject HttpClient for HTTP requests + private http: HttpClient, private dataService: DataService, private toastService: ToastrService, - @Inject(MAT_DIALOG_DATA) public data: any // Inject data for edit mode + @Inject(MAT_DIALOG_DATA) public data: any ) { - this.isEditMode = !!data?.uuid; // Check if uuid is passed to determine edit mode + this.isEditMode = !!data?.uuid; this.generalFormGroup = this._formBuilder.group({ name: ['', Validators.required], diff --git a/ogWebconsole/src/app/components/groups/shared/organizational-units/show-organizational-unit/show-organizational-unit.component.ts b/ogWebconsole/src/app/components/groups/shared/organizational-units/show-organizational-unit/show-organizational-unit.component.ts index a1e6bb4..a62e1ee 100644 --- a/ogWebconsole/src/app/components/groups/shared/organizational-units/show-organizational-unit/show-organizational-unit.component.ts +++ b/ogWebconsole/src/app/components/groups/shared/organizational-units/show-organizational-unit/show-organizational-unit.component.ts @@ -1,3 +1,4 @@ +import { HttpClient } from '@angular/common/http'; import {Component, Inject} from '@angular/core'; import {MAT_DIALOG_DATA} from "@angular/material/dialog"; @@ -7,43 +8,52 @@ import {MAT_DIALOG_DATA} from "@angular/material/dialog"; styleUrl: './show-organizational-unit.component.css' }) export class ShowOrganizationalUnitComponent { - + baseUrl: string = import.meta.env.NG_APP_BASE_API_URL; displayedColumns: string[] = ['property', 'value']; - - generalData = [ - { property: 'Nombre', value: this.data.data.name }, - { property: 'Uuid', value: this.data.data.uuid }, - { property: 'Descripción', value: this.data.data.description }, - { property: 'Comentarios', value: this.data.data.comments }, - { property: 'Tipo', value: this.data.data.type }, - { property: 'Unidad organizativa superior', value: this.data.data.parent ? this.data.data.parent.name : '-' }, - { property: 'Creado por', value: this.data.data.createdBy }, - { property: 'Creado el', value: this.data.data.createdAt } - ]; - + currentCalendar: any; + generalData: any[] = []; networkData = [ - { property: 'Localización', value: this.data.data.location }, - { property: 'Proyector', value: this.data.data.projector ? 'Sí' : 'No' }, - { property: 'Pizzarra', value: this.data.data.board ? 'Sí' : 'No' }, - { property: 'Aforo', value: this.data.data.capacity }, - { property: 'Url servidor proxy', value: this.data.data.networkSettings ? this.data.data.networkSettings.proxy : '' }, - { property: 'IP DNS', value: this.data.data.networkSettings ? this.data.data.networkSettings.dns : '' }, - { property: 'Máscara de red', value: this.data.data.networkSettings ? this.data.data.networkSettings.netmask : '' }, - { property: 'Router', value: this.data.data.networkSettings ? this.data.data.networkSettings.router : '' }, - { property: 'NTP', value: this.data.data.networkSettings ? this.data.data.networkSettings.ntp : '' }, - { property: 'Modo p2p', value: this.data.data.networkSettings ? this.data.data.networkSettings.p2pMode : '' }, - { property: 'Tiempo p2p', value: this.data.data.networkSettings ? this.data.data.networkSettings.p2pTime : '' }, - { property: 'IP multicast', value: this.data.data.networkSettings ? this.data.data.networkSettings.mcastIp : '' }, - { property: 'Modo multicast', value: this.data.data.networkSettings ? this.data.data.networkSettings.mcastMode : '' }, - { property: 'Puerto multicast', value: this.data.data.networkSettings ? this.data.data.networkSettings.mcastPort : '' }, - { property: 'Velocidad multicast', value: this.data.data.networkSettings ? this.data.data.networkSettings.mcastSpeed : '' }, - { property: 'Perfil hardware', value: this.data.data.networkSettings && this.data.data.networkSettings.hardwareProfile ? this.data.data.networkSettings.hardwareProfile.description : '' }, - { property: 'Menú', value: this.data.data.networkSettings && this.data.data.networkSettings.menu ? this.data.data.networkSettings.menu.description : '' } ]; constructor( - @Inject(MAT_DIALOG_DATA) public data: any // Inject data for edit mode + @Inject(MAT_DIALOG_DATA) public data: any, + private http: HttpClient ) { - console.log(this.data) + } + + ngOnInit(): void { + if (this.data.data.remoteCalendar) { + this.loadCurrentCalendar(this.data.data.remoteCalendar.uuid); + } else { + this.initializeGeneralData(); + } + } + + loadCurrentCalendar(uuid: string): void { + const apiUrl = `${this.baseUrl}/remote-calendars/${uuid}`; + this.http.get(apiUrl).subscribe( + response => { + this.currentCalendar = response.name; + this.initializeGeneralData(); + }, + error => { + console.error('Error loading current calendar', error); + this.initializeGeneralData(); + } + ); + } + + initializeGeneralData(): void { + this.generalData = [ + { property: 'Nombre', value: this.data.data.name }, + { property: 'Uuid', value: this.data.data.uuid }, + { property: 'Descripción', value: this.data.data.description }, + { property: 'Comentarios', value: this.data.data.comments }, + { property: 'Tipo', value: this.data.data.type }, + { property: 'Unidad organizativa superior', value: this.data.data.parent ? this.data.data.parent.name : '-' }, + { property: 'Creado por', value: this.data.data.createdBy }, + { property: 'Creado el', value: this.data.data.createdAt }, + { property: 'Calendario asociado', value: this.data.data.remoteCalendar ? this.currentCalendar : '-' } + ]; } }