This commit is contained in:
Bastian Wagner
2026-02-19 22:29:46 +01:00
parent 4df51e0698
commit 29bfffc505
15 changed files with 107 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
import { Component, inject } from '@angular/core';
import { HELPER } from '../../shared/helper.service';
import { GridApi, GridOptions, GridReadyEvent } from 'ag-grid-community';
import { CellEditingStoppedEvent, GridApi, GridOptions, GridReadyEvent } from 'ag-grid-community';
import { AgGridAngular } from 'ag-grid-angular';
import { ApiService } from '../../shared/api.service';
import { DatePipe } from '@angular/common';
@@ -11,6 +11,7 @@ import { MatIconModule } from '@angular/material/icon';
import { MatButtonModule } from '@angular/material/button';
import { AgGridContainerComponent } from '../../shared/ag-grid/components/ag-grid-container/ag-grid-container.component';
import { CylinderArchiveComponent } from './components/cylinder-archive/cylinder-archive.component';
import { ICylinder } from '../../model/interface/cylinder.interface';
@Component({
selector: 'app-cylinder',
@@ -33,7 +34,8 @@ export class CylinderComponent extends AgGridContainerComponent {
super();
this.gridOptions.columnDefs = [
{ field: 'name', headerName: 'Name', sort: 'asc', flex: 1, filter: true },
{ field: 'name', headerName: 'Name', sort: 'asc', flex: 1, filter: true, editable: true },
{ field: 'description', headerName: 'Beschreibung', flex: 1, filter: true, editable: true },
{ field: 'system.name', headerName: 'System', flex: 1, filter: true },
{ field: 'keyCount', headerName: 'Anzahl Schlüssel', flex: 0, type: 'number' },
{ field: 'createdAt', headerName: 'Angelegt', cellRenderer: (data: any) => data.value ? this.datePipe.transform(new Date(data.value)) : '-' },
@@ -54,6 +56,7 @@ export class CylinderComponent extends AgGridContainerComponent {
onGridReady(params: GridReadyEvent) {
this.gridApi = params.api;
this.gridApi.addEventListener("cellEditingStopped", evt => this.cellEditEnd(evt));
this.loadCylinders();
this.api.cylinders.asObservable().subscribe({
next: (data) => {
@@ -63,6 +66,15 @@ export class CylinderComponent extends AgGridContainerComponent {
})
}
private async cellEditEnd(event: CellEditingStoppedEvent) {
const cylinder: ICylinder = event.data;
if (!event.valueChanged || event.newValue == event.oldValue) { return; }
await this.api.updateCylinder(cylinder)
}
openCreateCylinder() {
this.dialog.open(CreateCylinderComponent, {
maxWidth: "calc(100vw - 24px)",