Fixed two bugs: selected cards staying visible after preview opens, and stale history results showing when a new scan starts.
This commit is contained in:
parent
ce5a5f1cbb
commit
78fb406422
10
CHANGELOG.md
10
CHANGELOG.md
@ -7,6 +7,16 @@ Version numbers follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## [1.6.26] — 2026-04-29
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- **Previous scan results visible when a new scan starts** — two async functions (`loadHistorySession` and `loadLastScanSummary`) could resolve after `startScan` had already cleared the grid. `loadHistorySession` would re-populate the grid with old history items; `loadLastScanSummary` would re-show the last-scan summary card. Both functions now bail early after each `await` if any of the three scan-running flags (`S._m365ScanRunning`, `S._googleScanRunning`, `S._fileScanRunning`) is set — those flags are written synchronously by `startScan` before any awaits, so the check is race-free.
|
||||||
|
|
||||||
|
- **Selected card scrolls out of view when preview panel opens** — clicking a card in grid view opens the 420 px preview panel, which shrinks the grid area and reflows the card columns. The selected card was no longer visible. `openPreview()` now schedules a `requestAnimationFrame` after removing `.hidden` from the panel so the card is scrolled back into view (`scrollIntoView block: nearest`) once the layout has settled.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [1.6.25] — 2026-04-25
|
## [1.6.25] — 2026-04-25
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@ -43,6 +43,8 @@ async function loadHistorySession(refScanId) {
|
|||||||
let resolvedRef = refScanId;
|
let resolvedRef = refScanId;
|
||||||
if (resolvedRef === null) {
|
if (resolvedRef === null) {
|
||||||
const sessions = _sessions !== null ? _sessions : await _fetchSessions();
|
const sessions = _sessions !== null ? _sessions : await _fetchSessions();
|
||||||
|
// Bail if a scan started while we were fetching sessions
|
||||||
|
if (S._m365ScanRunning || S._googleScanRunning || S._fileScanRunning) return;
|
||||||
if (!sessions.length) {
|
if (!sessions.length) {
|
||||||
// No scans in DB — nothing to show
|
// No scans in DB — nothing to show
|
||||||
window.loadLastScanSummary?.();
|
window.loadLastScanSummary?.();
|
||||||
@ -54,6 +56,8 @@ async function loadHistorySession(refScanId) {
|
|||||||
try {
|
try {
|
||||||
const r = await fetch('/api/db/flagged?ref=' + resolvedRef);
|
const r = await fetch('/api/db/flagged?ref=' + resolvedRef);
|
||||||
const items = await r.json();
|
const items = await r.json();
|
||||||
|
// Bail if a scan started while we were fetching flagged items
|
||||||
|
if (S._m365ScanRunning || S._googleScanRunning || S._fileScanRunning) return;
|
||||||
closeHistoryPicker();
|
closeHistoryPicker();
|
||||||
|
|
||||||
if (!Array.isArray(items) || items.length === 0) {
|
if (!Array.isArray(items) || items.length === 0) {
|
||||||
|
|||||||
@ -93,6 +93,7 @@ async function openPreview(f) {
|
|||||||
panel.classList.remove('hidden');
|
panel.classList.remove('hidden');
|
||||||
const _savedW = sessionStorage.getItem('gdpr_preview_width');
|
const _savedW = sessionStorage.getItem('gdpr_preview_width');
|
||||||
if (_savedW) panel.style.width = _savedW + 'px';
|
if (_savedW) panel.style.width = _savedW + 'px';
|
||||||
|
if (cardEl) requestAnimationFrame(() => cardEl.scrollIntoView({ behavior: 'smooth', block: 'nearest' }));
|
||||||
title.textContent = f.name;
|
title.textContent = f.name;
|
||||||
frame.style.display = 'none';
|
frame.style.display = 'none';
|
||||||
loading.style.display = 'flex';
|
loading.style.display = 'flex';
|
||||||
|
|||||||
@ -176,7 +176,7 @@ async function loadLastScanSummary() {
|
|||||||
try {
|
try {
|
||||||
const r = await fetch('/api/db/stats');
|
const r = await fetch('/api/db/stats');
|
||||||
const d = await r.json();
|
const d = await r.json();
|
||||||
if (!d.scan_id || S.flaggedData.length > 0) return;
|
if (!d.scan_id || S.flaggedData.length > 0 || S._m365ScanRunning || S._googleScanRunning || S._fileScanRunning) return;
|
||||||
const panel = document.getElementById('lastScanSummary');
|
const panel = document.getElementById('lastScanSummary');
|
||||||
const empty = document.getElementById('emptyState');
|
const empty = document.getElementById('emptyState');
|
||||||
if (!panel || !empty) return;
|
if (!panel || !empty) return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user