refactor: Gemeinsame Löschbehandlung in die Basisklasse verschieben und in Unterklassen überschreiben
- Methoden `handleCtrlS`, `handleDelete` und `deleteItem` in die `BasePageComponent` verschoben, um gemeinsame Funktionalität zu nutzen. - Methode `deleteItem` in `GroupComponent` und `UserComponent` überschrieben, um spezifische Löschlogik und Bestätigungsdialoge bereitzustellen. - Methode `deleteItem` aktualisiert, um SweetAlert2 für Bestätigung sowie Erfolg-/Fehlermeldungen zu integrieren. - Sicherstellt, dass `BasePageComponent` gemeinsame Shortcut-Aktionen behandelt, während Unterklassen das Löschverhalten anpassen.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { Component, inject } from '@angular/core';
|
import { Component, HostListener, inject } from '@angular/core';
|
||||||
import { RefreshService } from '../../services/refresh.service';
|
import { RefreshService } from '../../services/refresh.service';
|
||||||
import { CreationService } from '../../services/creation.service';
|
import { CreationService } from '../../services/creation.service';
|
||||||
import { UpdateService } from '../../services/update.service';
|
import { UpdateService } from '../../services/update.service';
|
||||||
@@ -23,4 +23,17 @@ export class BasePageComponent {
|
|||||||
this.updateService.executeAll().then()
|
this.updateService.executeAll().then()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@HostListener('window:keydown.control.s', ['$event'])
|
||||||
|
protected handleCtrlS(event: KeyboardEvent) {
|
||||||
|
event.preventDefault();
|
||||||
|
this.updateService.executeAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@HostListener('window:keydown.delete', ['$event'])
|
||||||
|
protected handleDelete(event: KeyboardEvent) {
|
||||||
|
this.deleteItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
deleteItem() { }
|
||||||
|
}
|
||||||
@@ -55,22 +55,11 @@ export class GroupComponent extends BasePageComponent implements AfterViewInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('window:keydown.control.s', ['$event'])
|
override deleteItem() {
|
||||||
handleCtrlS(event: KeyboardEvent) {
|
|
||||||
event.preventDefault();
|
|
||||||
this.updateService.executeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@HostListener('window:keydown.delete', ['$event'])
|
|
||||||
handleDelete(event: KeyboardEvent) {
|
|
||||||
this.deleteItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteItem() {
|
|
||||||
const sRows = this.groupTable.selectedRows;
|
const sRows = this.groupTable.selectedRows;
|
||||||
if (sRows.length > 0)
|
if (sRows.length > 0)
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
title: "Löschen bestätigen",
|
title: "Löschen besttigen",
|
||||||
html: `<p class="text-start">Dieser Vorgang ist unwiderruflich. Möchten Sie fortfahren?<br><br>Anzahl der zu löschenden Einträge: ${sRows.length}</p>`,
|
html: `<p class="text-start">Dieser Vorgang ist unwiderruflich. Möchten Sie fortfahren?<br><br>Anzahl der zu löschenden Einträge: ${sRows.length}</p>`,
|
||||||
showDenyButton: true,
|
showDenyButton: true,
|
||||||
confirmButtonText: "Ja",
|
confirmButtonText: "Ja",
|
||||||
@@ -80,11 +69,14 @@ export class GroupComponent extends BasePageComponent implements AfterViewInit {
|
|||||||
const deleteRequests = sRows.map(sRow => this.groupTable.service.delete(sRow.source.id!));
|
const deleteRequests = sRows.map(sRow => this.groupTable.service.delete(sRow.source.id!));
|
||||||
forkJoin(deleteRequests).subscribe({
|
forkJoin(deleteRequests).subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.refreshService.executeAll(),
|
this.updateService.executeAll().then(() => {
|
||||||
Swal.fire({
|
this.refreshService.executeAll();
|
||||||
text: `${sRows.length} Einträge wurden erfolgreich gelöscht.`,
|
})
|
||||||
icon: "success"
|
|
||||||
})
|
Swal.fire({
|
||||||
|
text: `${sRows.length} Einträge wurden erfolgreich gelöscht.`,
|
||||||
|
icon: "success"
|
||||||
|
})
|
||||||
},
|
},
|
||||||
error: err => Swal.fire({
|
error: err => Swal.fire({
|
||||||
title: "Fehler",
|
title: "Fehler",
|
||||||
|
|||||||
@@ -63,18 +63,7 @@ export class UserComponent extends BasePageComponent implements AfterViewInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@HostListener('window:keydown.control.s', ['$event'])
|
override deleteItem() {
|
||||||
handleCtrlS(event: KeyboardEvent) {
|
|
||||||
event.preventDefault();
|
|
||||||
this.updateService.executeAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
@HostListener('window:keydown.delete', ['$event'])
|
|
||||||
handleDelete(event: KeyboardEvent) {
|
|
||||||
this.deleteItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
deleteItem() {
|
|
||||||
const sRows = this.userTable.selectedRows;
|
const sRows = this.userTable.selectedRows;
|
||||||
if (sRows.length > 0)
|
if (sRows.length > 0)
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
@@ -88,7 +77,9 @@ export class UserComponent extends BasePageComponent implements AfterViewInit {
|
|||||||
const deleteRequests = sRows.map(sRow => this.userTable.service.delete(sRow.source.id!));
|
const deleteRequests = sRows.map(sRow => this.userTable.service.delete(sRow.source.id!));
|
||||||
forkJoin(deleteRequests).subscribe({
|
forkJoin(deleteRequests).subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.refreshService.executeAll(),
|
this.updateService.executeAll().then(() => {
|
||||||
|
this.refreshService.executeAll();
|
||||||
|
})
|
||||||
Swal.fire({
|
Swal.fire({
|
||||||
text: `${sRows.length} Einträge wurden erfolgreich gelöscht.`,
|
text: `${sRows.length} Einträge wurden erfolgreich gelöscht.`,
|
||||||
icon: "success"
|
icon: "success"
|
||||||
|
|||||||
Reference in New Issue
Block a user