This commit is contained in:
Bastian Wagner
2024-10-25 12:32:26 +02:00
parent d4f1fbbf39
commit b4e264eda9
40 changed files with 538 additions and 66 deletions

View File

@@ -0,0 +1 @@
<p>ag-base-component works!</p>

View File

@@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AgBaseComponentComponent } from './ag-base-component.component';
describe('AgBaseComponentComponent', () => {
let component: AgBaseComponentComponent;
let fixture: ComponentFixture<AgBaseComponentComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [AgBaseComponentComponent]
})
.compileComponents();
fixture = TestBed.createComponent(AgBaseComponentComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,28 @@
import { Component, inject } from '@angular/core';
import { MatDialog, MatDialogModule } from '@angular/material/dialog';
import { HotToastService } from '@ngxpert/hot-toast';
import { ApiService } from '../../../api.service';
import { ICellRendererAngularComp } from 'ag-grid-angular';
import { ICellRendererParams } from 'ag-grid-community';
import { MatTooltipModule } from '@angular/material/tooltip';
@Component({
standalone: true,
imports: [MatDialogModule, MatTooltipModule],
templateUrl: './ag-base-component.component.html',
styleUrl: './ag-base-component.component.scss'
})
export class AgBaseComponentComponent implements ICellRendererAngularComp {
protected api: ApiService = inject(ApiService);
protected dialog: MatDialog = inject(MatDialog);
protected toast = inject(HotToastService);
params!: ICellRendererParams<any, any, any>;
agInit(params: ICellRendererParams<any, any, any>): void {
this.params = params;
}
refresh(params: ICellRendererParams<any, any, any>): boolean {
return false;
}
}

View File

@@ -0,0 +1 @@
<div class="delete icon-btn-sm" (click)="delete()" matTooltip="Löschen" [matTooltipShowDelay]="600"></div>

View File

@@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AgDeleteCylinderComponent } from './ag-delete-cylinder.component';
describe('AgDeleteCylinderComponent', () => {
let component: AgDeleteCylinderComponent;
let fixture: ComponentFixture<AgDeleteCylinderComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [AgDeleteCylinderComponent]
})
.compileComponents();
fixture = TestBed.createComponent(AgDeleteCylinderComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,47 @@
import { Component } from '@angular/core';
import { AgBaseComponentComponent } from '../ag-base-component/ag-base-component.component';
import { DeleteCylinderComponent } from '../../../../modules/cylinder/components/delete-cylinder/delete-cylinder.component';
import { MatTooltipModule } from '@angular/material/tooltip';
@Component({
selector: 'app-ag-delete-cylinder',
standalone: true,
imports: [MatTooltipModule],
templateUrl: './ag-delete-cylinder.component.html',
styleUrl: './ag-delete-cylinder.component.scss'
})
export class AgDeleteCylinderComponent extends AgBaseComponentComponent {
delete() {
const ref = this.dialog.open(DeleteCylinderComponent, {
data: this.params.data,
autoFocus: false
})
ref.afterClosed().subscribe({
next: n => {
if (n) {
this.deleteThisCylinder();
}
}
})
}
deleteThisCylinder() {
this.api.deleteCylinder(this.params.data)
.pipe(
this.toast.observe({
loading: 'Löschen...',
success: 'Gelöscht!',
error: 'Konnte nicht gelöscht werden'
})
).subscribe({
next: () => {
const rows = this.params.api.getGridOption("rowData")?.filter(r => r.id != this.params.data.id);
this.params.api.setGridOption("rowData", rows);
}
})
}
}