mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-11 14:00:29 +00:00
Fix: PBS instance selection now filters backup list correctly
When selecting a PBS instance from the node summary table, the backup list now correctly filters to show only backups from that specific PBS instance. Previously, the nodeType parameter was ignored and the filter logic only handled PVE nodes, causing PBS selection to have no effect. Related to #1182
This commit is contained in:
@@ -80,6 +80,7 @@ const UnifiedBackups: Component = () => {
|
||||
return hasPBSViaPassthrough() && !hasDirectPBS() && !pbsBannerDismissed();
|
||||
});
|
||||
const [selectedNode, setSelectedNode] = createSignal<string | null>(null);
|
||||
const [selectedNodeType, setSelectedNodeType] = createSignal<'pve' | 'pbs' | null>(null);
|
||||
const [typeFilter, setTypeFilter] = createSignal<'all' | FilterableGuestType>('all');
|
||||
const [backupTypeFilter, setBackupTypeFilter] = createSignal<'all' | BackupType>('all');
|
||||
const [statusFilter, setStatusFilter] = createSignal<'all' | 'verified' | 'unverified'>('all');
|
||||
@@ -625,9 +626,16 @@ const UnifiedBackups: Component = () => {
|
||||
|
||||
// Node selection filter using both instance and node name for uniqueness
|
||||
if (nodeFilter) {
|
||||
const node = state.nodes?.find((n) => n.id === nodeFilter);
|
||||
if (node) {
|
||||
data = data.filter((item) => item.instance === node.instance && item.node === node.name);
|
||||
const nodeType = selectedNodeType();
|
||||
if (nodeType === 'pbs') {
|
||||
// PBS instance selected - filter by instance name
|
||||
data = data.filter((item) => item.instance === nodeFilter);
|
||||
} else {
|
||||
// PVE node selected - filter by instance and node name
|
||||
const node = state.nodes?.find((n) => n.id === nodeFilter);
|
||||
if (node) {
|
||||
data = data.filter((item) => item.instance === node.instance && item.node === node.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -918,6 +926,7 @@ const UnifiedBackups: Component = () => {
|
||||
const resetFilters = () => {
|
||||
setSearchTerm('');
|
||||
setSelectedNode(null);
|
||||
setSelectedNodeType(null);
|
||||
setIsSearchLocked(false);
|
||||
setTypeFilter('all');
|
||||
setBackupTypeFilter('all');
|
||||
@@ -1181,8 +1190,9 @@ const UnifiedBackups: Component = () => {
|
||||
<UnifiedNodeSelector
|
||||
currentTab="backups"
|
||||
globalTemperatureMonitoringEnabled={state.temperatureMonitoringEnabled}
|
||||
onNodeSelect={(nodeId) => {
|
||||
onNodeSelect={(nodeId, nodeType) => {
|
||||
setSelectedNode(nodeId);
|
||||
setSelectedNodeType(nodeType ?? null);
|
||||
}}
|
||||
onNamespaceSelect={(namespaceFilter) => {
|
||||
setSearchTerm(namespaceFilter);
|
||||
|
||||
Reference in New Issue
Block a user