Compare commits
3
Commits
v1.7.9
...
efbbeb7306
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efbbeb7306 | ||
|
|
54f8848e30 | ||
|
|
8a446509c6 |
No files matched your search
@@ -552,6 +552,8 @@ class M365Connector:
|
||||
r.raise_for_status()
|
||||
return True # 204 No Content = success
|
||||
raise _requests.exceptions.RetryError(f"Gave up after {self._MAX_RETRIES} attempts: {url}")
|
||||
|
||||
def delete_message(self, user_id: str, message_id: str) -> bool:
|
||||
"""Move an email to Deleted Items (soft delete)."""
|
||||
base = "/me" if (not user_id or user_id == "me") else f"/users/{user_id}"
|
||||
try:
|
||||
|
||||
@@ -48,6 +48,7 @@ Never revert to `!!window._googleConnected` / `_fileSources.length > 0` — thos
|
||||
- **Cache invalidation** — `invalidateHistoryCache()` clears `_sessions` and `_latestRefScanId`. All three `*_done` SSE handlers call `window.invalidateHistoryCache?.()`.
|
||||
- **Re-scan diff** — items present in the previous session but absent from the current one are tagged `_resolved: true`, rendered with `.card-resolved` and a green ✓ badge, and NOT added to `S.flaggedData` (grid-only, cannot be bulk-selected or exported).
|
||||
- **Mode transitions** — `startScan()` calls `window.exitHistoryMode?.()` before clearing the grid.
|
||||
- **`renderGrid(files)` hides the landing cards** — whenever `files.length > 0` it hides `#emptyState` and `#lastScanSummary` and shows `#grid`. This is centralised here because the live `scan_file_flagged` handler (`scan.js`) shows the grid but does NOT clear those panels, so results would render *underneath* a still-visible landing/last-scan card until a manual refresh. Do not move this hiding back into individual callers — every render path (live SSE, `loadOpenItems`, history, filters) must clear the landing. The empty case (`files.length === 0`) is left untouched so callers still control the empty/landing state.
|
||||
|
||||
## Card user/group badge — results.js
|
||||
|
||||
|
||||
@@ -122,6 +122,17 @@ function renderGrid(files) {
|
||||
const grid = document.getElementById('grid');
|
||||
grid.innerHTML = '';
|
||||
files.forEach(f => appendCard(f));
|
||||
// Whenever results are rendered, the landing/last-scan cards must be hidden —
|
||||
// the live scan_file_flagged path shows the grid but does not clear them, so
|
||||
// results would otherwise appear underneath the still-visible landing page
|
||||
// until a manual refresh. Centralised here so every render path is covered.
|
||||
if (files && files.length) {
|
||||
const es = document.getElementById('emptyState');
|
||||
if (es) es.style.display = 'none';
|
||||
const ls = document.getElementById('lastScanSummary');
|
||||
if (ls) ls.style.display = 'none';
|
||||
if (grid) grid.style.display = S.isListView ? 'block' : 'grid';
|
||||
}
|
||||
_updateBulkBar();
|
||||
updateDispositionStats();
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user