refs #1314. Fixed tree groups bugs.
testing/ogGui-multibranch/pipeline/head This commit looks good Details

pull/10/head
Manuel Aranda Rosales 2025-01-13 15:08:00 +01:00
parent 5661ec68ca
commit c13db7f36e
6 changed files with 23 additions and 54 deletions

View File

@ -22,7 +22,7 @@
<mat-label i18n="@@oglive-label">OgLive</mat-label>
<mat-select formControlName="ogLive">
<mat-option *ngFor="let oglive of ogLives" [value]="oglive['@id']">
{{ oglive.name }}
{{ oglive.filename }}
</mat-option>
</mat-select>
</mat-form-field>

View File

@ -19,12 +19,9 @@ export class CreateClientComponent implements OnInit {
ogLives: any[] = [];
menus: any[] = [];
templates: any[] = [];
uploadedClients: any[] = [];
repositories: any[] = [];
loading: boolean = false;
displayedColumns: string[] = ['name', 'ip'];
isSingleClientForm: boolean = false;
showTextarea: boolean = true;
protected netifaceTypes = [
{ name: 'Eth0', value: 'eth0' },
{ name: 'Eth1', value: 'eth1' },
@ -158,54 +155,17 @@ export class CreateClientComponent implements OnInit {
}
onSubmit(): void {
if (this.isSingleClientForm) {
if (this.clientForm.valid) {
const formData = this.clientForm.value;
console.log('Form data:', formData);
this.http.post(`${this.baseUrl}/clients`, formData).subscribe(
response => {
this.toastService.success('Cliente creado exitosamente', 'Éxito');
this.dialogRef.close(response);
},
error => {
console.error('Error durante POST:', error);
this.toastService.error('Error al crear el cliente', 'Error');
}
);
}
} else {
if (this.uploadedClients.length > 0) {
this.uploadedClients.forEach(client => {
const formData = {
organizationalUnit: this.clientForm.value.organizationalUnit || null,
name: client.name || null,
mac: client.mac || null,
ip: client.ip || null,
template: this.clientForm.value.template || null,
hardwareProfile: this.clientForm.value.hardwareProfile || null,
ogLive: this.clientForm.value.ogLive || null,
repository: this.clientForm.value.repository || null,
serialNumber: null,
netiface: null,
netDriver: null
};
this.http.post(`${this.baseUrl}/clients`, formData).subscribe(
response => {
this.toastService.success(`Cliente ${client.name} creado exitosamente`, 'Éxito');
},
error => {
console.error(`Error al crear el cliente ${client.name}:`, error);
this.toastService.error(`Error al crear el cliente ${client.name}`, 'Error');
}
);
});
this.uploadedClients = [];
this.dialogRef.close();
} else {
this.toastService.error('No hay clientes cargados para añadir', 'Error');
}
if (this.clientForm.valid) {
const formData = this.clientForm.value;
this.http.post(`${this.baseUrl}/clients`, formData).subscribe(
response => {
this.toastService.success('Cliente creado exitosamente', 'Éxito');
this.dialogRef.close(response);
},
error => {
this.toastService.error('Error al crear el cliente', 'Error');
}
);
}
}

View File

@ -9,7 +9,7 @@
<mat-form-field class="form-field">
<mat-label>{{ 'typeLabel' | translate }}</mat-label>
<mat-select formControlName="type" required>
<mat-option *ngFor="let type of types" [value]="type">
<mat-option *ngFor="let type of filteredTypes" [value]="type">
{{ typeTranslations[type] }}
</mat-option>
</mat-select>

View File

@ -40,6 +40,7 @@ export class CreateOrganizationalUnitComponent implements OnInit {
repositories: any[] = [];
selectedCalendarUuid: string | null = null;
@Output() unitAdded = new EventEmitter();
constructor(
@ -96,6 +97,10 @@ export class CreateOrganizationalUnitComponent implements OnInit {
this.loadRepositories();
}
get filteredTypes(): string[] {
return this.generalFormGroup.get('parent')?.value ? this.types.filter(type => type !== 'organizational-unit') : this.types;
}
loadParentUnits() {
const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=1000`;
this.http.get<any>(url).subscribe(

View File

@ -8,7 +8,7 @@
<mat-form-field class="form-field">
<mat-label>{{ 'typeLabel' | translate }}</mat-label>
<mat-select formControlName="type" required>
<mat-option *ngFor="let type of types" [value]="type">{{ type }}</mat-option>
<mat-option *ngFor="let type of filteredTypes" [value]="type">{{ type }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="form-field">

View File

@ -98,6 +98,10 @@ export class EditOrganizationalUnitComponent implements OnInit {
this.loadRepositories();
}
get filteredTypes(): string[] {
return this.generalFormGroup.get('parent')?.value ? this.types.filter(type => type !== 'organizational-unit') : this.types;
}
loadParentUnits() {
const url = `${this.baseUrl}/organizational-units?page=1&itemsPerPage=10000`;