deck list neu, selektor in rot
This commit is contained in:
@@ -26,12 +26,13 @@ export class DeckListComponent implements OnInit {
|
||||
|
||||
currentUploadDeckName: string = '';
|
||||
|
||||
// Hinzugefügt: Set zur Verfolgung erweiterter Decks
|
||||
// Set zur Verfolgung erweiterter Decks
|
||||
expandedDecks: Set<number> = new Set<number>();
|
||||
|
||||
constructor(private deckService: DeckService) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
this.loadExpandedDecks();
|
||||
this.loadDecks();
|
||||
}
|
||||
|
||||
@@ -52,7 +53,7 @@ export class DeckListComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
deleteImage(image: DeckImage): void {
|
||||
deleteImage(deck: Deck, image: DeckImage): void {
|
||||
if (!confirm(`Bist du sicher, dass du das Bild "${image.name}" löschen möchtest?`)) {
|
||||
return;
|
||||
}
|
||||
@@ -84,17 +85,50 @@ export class DeckListComponent implements OnInit {
|
||||
this.uploadImageModal.open();
|
||||
}
|
||||
|
||||
// Hinzugefügt: Methode zum Umschalten der Deck-Erweiterung
|
||||
// Methode zum Umschalten der Deck-Erweiterung
|
||||
toggleDeckExpansion(deckId: number): void {
|
||||
if (this.expandedDecks.has(deckId)) {
|
||||
this.expandedDecks.delete(deckId);
|
||||
} else {
|
||||
this.expandedDecks.add(deckId);
|
||||
}
|
||||
this.saveExpandedDecks();
|
||||
}
|
||||
|
||||
// Hinzugefügt: Methode zur Überprüfung, ob ein Deck erweitert ist
|
||||
// Methode zur Überprüfung, ob ein Deck erweitert ist
|
||||
isDeckExpanded(deckId: number): boolean {
|
||||
return this.expandedDecks.has(deckId);
|
||||
}
|
||||
|
||||
// Laden der erweiterten Decks aus dem sessionStorage
|
||||
loadExpandedDecks(): void {
|
||||
const stored = sessionStorage.getItem('expandedDecks');
|
||||
if (stored) {
|
||||
try {
|
||||
const parsed: number[] = JSON.parse(stored);
|
||||
this.expandedDecks = new Set<number>(parsed);
|
||||
} catch (e) {
|
||||
console.error('Fehler beim Parsen der erweiterten Decks aus sessionStorage', e);
|
||||
}
|
||||
} else {
|
||||
// Wenn keine Daten gespeichert sind, alle Decks standardmäßig erweitern
|
||||
this.expandedDecks = new Set<number>();
|
||||
// Dieser Teil wird nach dem Laden der Decks initialisiert
|
||||
// Wir erweitern alle Decks, sobald sie geladen sind
|
||||
this.deckService.getDecks().subscribe({
|
||||
next: (data) => {
|
||||
data.forEach(deck => this.expandedDecks.add(deck.id));
|
||||
this.saveExpandedDecks();
|
||||
this.decks = data;
|
||||
},
|
||||
error: (err) => console.error('Fehler beim Laden der Decks', err)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Speichern der erweiterten Decks in das sessionStorage
|
||||
saveExpandedDecks(): void {
|
||||
const expandedArray = Array.from(this.expandedDecks);
|
||||
sessionStorage.setItem('expandedDecks', JSON.stringify(expandedArray));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user