@bobfrankston/rmfmail 1.2.335 → 1.2.337

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/client/app.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Wires together all UI components and WebSocket connection.
4
4
  */
5
5
  import { initFolderTree, refreshFolderTree, updateFolderCounts, setFolderSynced, getFolderSynced, setOutboxTotal, highlightFolder, setFolderFilter } from "./components/folder-tree.js";
6
- import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView, refreshPriorityIndex, revealMessage, getCurrentView, selectAllVisible, exitMultiSelect, getDateBasis, setDateBasis } from "./components/message-list.js";
6
+ import { initMessageList, loadMessages, loadUnifiedInbox, loadSearchResults, reloadCurrentFolder, clearSearchMode, getSelectedMessages, markBodiesCached, getCurrentFocused, releaseFocus, removeMessagesAndReconcile, setRowFlagged, scrollFocusedIntoView, refreshPriorityIndex, revealMessage, getCurrentView, selectAllMessages, exitMultiSelect, getDateBasis, setDateBasis } from "./components/message-list.js";
7
7
  import { seenOf, flaggedOf, draftOf, setSeen, setFlagged } from "@bobfrankston/mailx-types";
8
8
  import { initTabs, setActiveView as setActiveTabView, openTab } from "./components/tabs.js";
9
9
  import { getCurrentMessage, initViewer, popOutCurrentMessage, popOutToWindow, printCurrentMessage, toggleFullscreenPreview, showPreviewBodyMenu, setSearchHighlightTerms, parseHighlightTerms } from "./components/message-viewer.js";
@@ -2955,7 +2955,11 @@ function doSearch(immediate = false) {
2955
2955
  if (serverOn) {
2956
2956
  serverSearchTimer = setTimeout(() => {
2957
2957
  serverSearchTimer = null;
2958
- loadSearchResults(query, "server", currentAccountId, currentFolderId, includeTrash);
2958
+ // 2026-09-16: the scope dropdown applies to the server pass too
2959
+ // "This folder" sweeps only the current folder; "All folders"
2960
+ // sends folderId 0, which the service reads as every folder.
2961
+ const serverFolderId = localScopeEff === "current" ? currentFolderId : 0;
2962
+ loadSearchResults(query, "server", currentAccountId, serverFolderId, includeTrash);
2959
2963
  }, SERVER_SEARCH_DALLY_MS);
2960
2964
  }
2961
2965
  }
@@ -4166,10 +4170,12 @@ document.addEventListener("keydown", (e) => {
4166
4170
  const mlBody = document.getElementById("ml-body");
4167
4171
  if (mlBody) {
4168
4172
  e.preventDefault();
4169
- // selectAllVisible() also sets `multi-select-on` so a following
4170
- // click clears the WHOLE selection, not just the clicked row
4171
- // (Bob 2026-06-26). Plain add-.selected was the bug.
4172
- selectAllVisible();
4173
+ // selectAllMessages() loads the remaining pages first, then sets
4174
+ // `multi-select-on` + selects so a following click clears the
4175
+ // WHOLE selection, not just the clicked row (Bob 2026-06-26), and
4176
+ // the selection covers every message in the view, not the 50-row
4177
+ // pages loaded so far (Bob 2026-09-16).
4178
+ void selectAllMessages();
4173
4179
  }
4174
4180
  }
4175
4181
  // Ctrl+D or Delete = Delete selected messages.