+
+
+
Status
+
+
+
+
+
+
+
+
+ setSearchQuery(event.target.value)}
+ placeholder="Name oder ID"
+ className="w-full rounded-lg border border-gray-700 bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 focus:border-purple-500 focus:outline-none focus:ring-1 focus:ring-purple-500"
+ />
+
+
+
+ {selectionPreferenceStored && (
+
+ )}
+
+
+
- {stacks.map(stack => {
+ {selectedStackIds.length > 0 && (
+
+
+ Auswahl:
+ {selectedStackIds.map((id) => {
+ const stack = stacksById.get(id);
+ const name = stack?.Name || `Stack ${id}`;
+ const isFiltered = filteredStackIdSet.has(id);
+ const isVisibleOnPage = visiblePageStackIds.has(id);
+ return (
+
+ );
+ })}
+
+
+
+ )}
+
+ {selectionPromptVisible && (
+
+
+
+ {selectedStackIds.length === 1
+ ? '1 Stack ist weiterhin ausgewählt.'
+ : `${selectedStackIds.length} Stacks sind weiterhin ausgewählt.`}
+ {' '}Soll die Auswahl entfernt werden?
+
+
+
+
+
+
+
+
+ )}
+
+
+ {paginatedStacks.map(stack => {
const isRedeploying = stack.redeploying;
const isSelected = selectedStackIds.includes(stack.Id);
const isCurrent = stack.updateStatus === '✅';
@@ -289,7 +670,44 @@ export default function Stacks() {
);
})}
- {stacks.length === 0 &&
Keine Stacks gefunden.
}
+ {filteredStacks.length === 0 && (
+
+ {hasActiveFilters ? 'Keine Stacks für die gesetzten Filter.' : 'Keine Stacks gefunden.'}
+
+ )}
+
+
+ {totalItems === 0
+ ? 'Keine Stacks verfügbar'
+ : perPage === 'all'
+ ? `Zeige alle ${totalItems} Stacks`
+ : `Zeige ${pageStart}-${pageEnd} von ${totalItems} Stacks`}
+
+ {perPage !== 'all' && totalItems > 0 && (
+
+
+
+ Seite {Math.min(page, totalPages)} / {totalPages}
+
+
+
+ )}