diff --git a/src/public/js/ui/backup-summary-cards.js b/src/public/js/ui/backup-summary-cards.js index d8197e029..7888327cf 100644 --- a/src/public/js/ui/backup-summary-cards.js +++ b/src/public/js/ui/backup-summary-cards.js @@ -21,7 +21,7 @@ PulseApp.ui.backupSummaryCards = (() => { ? backupData[type].filter(item => { // Match vmid const itemVmid = item.vmid || item['backup-id'] || item.backupVMID; - if (itemVmid != guestId) return false; + if (parseInt(itemVmid, 10) !== parseInt(guestId, 10)) return false; // For PBS backups (centralized), don't filter by node if (type === 'pbsSnapshots') return true; diff --git a/src/public/js/ui/backups.js b/src/public/js/ui/backups.js index 5eed1817a..df464b254 100644 --- a/src/public/js/ui/backups.js +++ b/src/public/js/ui/backups.js @@ -1167,7 +1167,7 @@ PulseApp.ui.backups = (() => { const vmsData = PulseApp.state.get('vmsData') || []; const containersData = PulseApp.state.get('containersData') || []; const allGuests = [...vmsData, ...containersData]; - const guest = allGuests.find(g => g.vmid == guestId); + const guest = allGuests.find(g => parseInt(g.vmid, 10) === parseInt(guestId, 10)); if (!guest) return null; @@ -1232,7 +1232,7 @@ PulseApp.ui.backups = (() => { // Match vmid const taskVmid = task.vmid || task.guestId; - if (taskVmid != guestId) return false; + if (parseInt(taskVmid, 10) !== parseInt(guestId, 10)) return false; const date = new Date(task.starttime * 1000); const utcDate = new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate())); @@ -1300,7 +1300,7 @@ PulseApp.ui.backups = (() => { (ds.snapshots || []).filter(snap => { const vmid = snap['backup-id']; const timestamp = snap['backup-time']; - return vmid == guestId && timestamp >= startTimestamp && timestamp < endTimestamp; + return parseInt(vmid, 10) === parseInt(guestId, 10) && timestamp >= startTimestamp && timestamp < endTimestamp; }) ) ); @@ -1310,7 +1310,7 @@ PulseApp.ui.backups = (() => { // Check PVE storage backups if (pveBackups.storageBackups && Array.isArray(pveBackups.storageBackups)) { const matchingBackups = pveBackups.storageBackups.filter(backup => { - return backup.vmid == guestId && + return parseInt(backup.vmid, 10) === parseInt(guestId, 10) && backup.ctime >= startTimestamp && backup.ctime < endTimestamp; }); @@ -1982,7 +1982,7 @@ PulseApp.ui.backups = (() => { const pbsDates = {}; backupData.pbsSnapshots.forEach(snap => { const snapId = snap['backup-id'] || snap.backupVMID; - if (snapId == guestId) { + if (parseInt(snapId, 10) === parseInt(guestId, 10)) { const timestamp = snap['backup-time']; if (timestamp) { const date = new Date(timestamp * 1000); @@ -2005,7 +2005,7 @@ PulseApp.ui.backups = (() => { if ((backupTypeFilter === 'all' || backupTypeFilter === 'pve') && backupData.pveBackups) { const pveDates = {}; backupData.pveBackups.forEach(backup => { - if (backup.vmid == guestId) { + if (parseInt(backup.vmid, 10) === parseInt(guestId, 10)) { const timestamp = backup['backup-time'] || backup.ctime; if (timestamp) { const date = new Date(timestamp * 1000); @@ -2034,7 +2034,7 @@ PulseApp.ui.backups = (() => { if ((backupTypeFilter === 'all' || backupTypeFilter === 'snapshots') && backupData.vmSnapshots) { const snapDates = {}; backupData.vmSnapshots.forEach(snap => { - if (snap.vmid == guestId) { + if (parseInt(snap.vmid, 10) === parseInt(guestId, 10)) { const timestamp = snap.snaptime; if (timestamp) { const date = new Date(timestamp * 1000); diff --git a/src/public/js/ui/calendar-heatmap.js b/src/public/js/ui/calendar-heatmap.js index 6c35923b7..c2476624e 100644 --- a/src/public/js/ui/calendar-heatmap.js +++ b/src/public/js/ui/calendar-heatmap.js @@ -22,13 +22,13 @@ PulseApp.ui.calendarHeatmap = (() => { return tasks.filter(task => { // Match vmid const taskVmid = task.vmid || task.guestId; - if (taskVmid != guestId) return false; + if (parseInt(taskVmid, 10) !== parseInt(guestId, 10)) return false; // For single guest filtering, we need to get the guest node info const vmsData = PulseApp.state.get('vmsData') || []; const containersData = PulseApp.state.get('containersData') || []; const allGuests = [...vmsData, ...containersData]; - const guest = allGuests.find(g => g.vmid == guestId); + const guest = allGuests.find(g => parseInt(g.vmid, 10) === parseInt(guestId, 10)); if (!guest) return true; // Fallback if guest not found @@ -527,7 +527,7 @@ PulseApp.ui.calendarHeatmap = (() => { if (!vmid) return; // Apply filtering logic - if (guestId && vmid != guestId) return; + if (guestId && parseInt(vmid, 10) !== parseInt(guestId, 10)) return; if (filteredGuestIds && !isGuestInFilteredList(vmid, item, filteredGuestIds)) return; // Use unique guest key that includes node information @@ -669,7 +669,7 @@ PulseApp.ui.calendarHeatmap = (() => { const vmsData = PulseApp.state.get('vmsData') || []; const containersData = PulseApp.state.get('containersData') || []; const allGuests = [...vmsData, ...containersData]; - const guest = allGuests.find(g => g.vmid == guestId); + const guest = allGuests.find(g => parseInt(g.vmid, 10) === parseInt(guestId, 10)); const guestName = guest ? guest.name : `Guest ${guestId}`; guestDisplayText = `${stats.activeGuests} (${guestName})`; } @@ -732,7 +732,7 @@ PulseApp.ui.calendarHeatmap = (() => { if (!vmid) return; // Apply filtering logic - if (guestId && vmid != guestId) return; + if (guestId && parseInt(vmid, 10) !== parseInt(guestId, 10)) return; if (filteredGuestIds && !isGuestInFilteredList(vmid, item, filteredGuestIds)) return; // Track unique guests using node-aware keys @@ -814,7 +814,7 @@ PulseApp.ui.calendarHeatmap = (() => { const vmsData = PulseApp.state.get('vmsData') || []; const containersData = PulseApp.state.get('containersData') || []; const allGuests = [...vmsData, ...containersData]; - const guest = allGuests.find(g => g.vmid == guestId); + const guest = allGuests.find(g => parseInt(g.vmid, 10) === parseInt(guestId, 10)); const guestName = guest ? guest.name : `Guest ${guestId}`; guestDisplayText = `${stats.activeGuests} (${guestName})`; } @@ -975,7 +975,7 @@ PulseApp.ui.calendarHeatmap = (() => { if (!vmid) return; // Skip if filtering by specific guest - if (guestId && vmid != guestId) return; + if (guestId && parseInt(vmid, 10) !== parseInt(guestId, 10)) return; // Skip if filtered guest list is provided and this guest is not in it if (filteredGuestIds && !isGuestInFilteredList(vmid, item, filteredGuestIds)) return; @@ -1162,7 +1162,7 @@ PulseApp.ui.calendarHeatmap = (() => { } // Skip if filtering by specific guest - if (guestId && vmid != guestId) return; + if (guestId && parseInt(vmid, 10) !== parseInt(guestId, 10)) return; // Skip if filtered guest list is provided and this guest is not in it if (filteredGuestIds && !isGuestInFilteredList(vmid, item, filteredGuestIds)) return;