@bobfrankston/rmfmail 1.2.98 → 1.2.101
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/TODO.md +1 -0
- package/client/android-bootstrap.bundle.js +85 -22
- package/client/android-bootstrap.bundle.js.map +2 -2
- package/client/app.bundle.js +57 -0
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +63 -0
- package/client/app.js.map +1 -1
- package/client/app.ts +58 -0
- package/client/components/message-viewer.js +23 -0
- package/client/components/message-viewer.js.map +1 -1
- package/client/components/message-viewer.ts +19 -0
- package/client/index.html +1 -0
- package/client/styles/components.css +50 -0
- package/docs/preferences.md +1 -0
- package/package.json +7 -7
- package/packages/mailx-imap/index.d.ts.map +1 -1
- package/packages/mailx-imap/index.js +6 -2
- package/packages/mailx-imap/index.js.map +1 -1
- package/packages/mailx-imap/index.ts +6 -2
- package/packages/mailx-imap/package-lock.json +2 -2
- package/packages/mailx-imap/package.json +1 -1
- package/packages/mailx-settings/docs/preferences.md +1 -0
- package/packages/mailx-store/db.d.ts +7 -0
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +13 -1
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +19 -1
- package/packages/mailx-store/package.json +1 -1
- package/packages/mailx-store-web/android-bootstrap.d.ts.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.js +74 -19
- package/packages/mailx-store-web/android-bootstrap.js.map +1 -1
- package/packages/mailx-store-web/android-bootstrap.ts +71 -16
- package/packages/mailx-store-web/db.d.ts +1 -0
- package/packages/mailx-store-web/db.d.ts.map +1 -1
- package/packages/mailx-store-web/db.js +21 -5
- package/packages/mailx-store-web/db.js.map +1 -1
- package/packages/mailx-store-web/db.ts +20 -7
- package/packages/mailx-store-web/imap-web-provider.d.ts.map +1 -1
- package/packages/mailx-store-web/imap-web-provider.js +1 -0
- package/packages/mailx-store-web/imap-web-provider.js.map +1 -1
- package/packages/mailx-store-web/imap-web-provider.ts +1 -0
- package/packages/mailx-store-web/package.json +1 -1
- package/packages/mailx-store-web/sync-manager.d.ts.map +1 -1
- package/packages/mailx-store-web/sync-manager.js +4 -0
- package/packages/mailx-store-web/sync-manager.js.map +1 -1
- package/packages/mailx-store-web/sync-manager.ts +4 -0
package/client/app.bundle.js
CHANGED
|
@@ -1597,6 +1597,22 @@ async function showMessage(accountId, uid, folderId, specialUse, isRetry = false
|
|
|
1597
1597
|
});
|
|
1598
1598
|
return;
|
|
1599
1599
|
}
|
|
1600
|
+
if (msg.bodyError && !msg.bodyHtml && !msg.bodyText) {
|
|
1601
|
+
try {
|
|
1602
|
+
renderHeaderFromEnvelope(headerEl, msg);
|
|
1603
|
+
headerEl.hidden = false;
|
|
1604
|
+
} catch {
|
|
1605
|
+
}
|
|
1606
|
+
const transient = msg.bodyErrorTransient;
|
|
1607
|
+
bodyEl.innerHTML = `<div class="mv-system-message mv-system-error">
|
|
1608
|
+
<div class="mv-system-tag">mailx</div>
|
|
1609
|
+
<div class="mv-system-title">Body fetch failed</div>
|
|
1610
|
+
<div class="mv-system-body">${escapeHtml2(msg.bodyError)}<br><span style="color:var(--color-text-muted);font-size:0.9em">${transient ? "Reopen this message to retry." : "Permanent \u2014 the message may have been deleted on the server."}</span></div>
|
|
1611
|
+
</div>`;
|
|
1612
|
+
currentMessage = msg;
|
|
1613
|
+
currentAccountId = accountId;
|
|
1614
|
+
return;
|
|
1615
|
+
}
|
|
1600
1616
|
if (!cachedMsg)
|
|
1601
1617
|
parsedCachePut(accountId, folderId, uid, msg);
|
|
1602
1618
|
currentMessage = msg;
|
|
@@ -8096,6 +8112,20 @@ var backToList = (e) => {
|
|
|
8096
8112
|
};
|
|
8097
8113
|
document.getElementById("btn-back")?.addEventListener("click", backToList);
|
|
8098
8114
|
document.getElementById("btn-back")?.addEventListener("touchend", backToList);
|
|
8115
|
+
var narrowMq = window.matchMedia("(max-width: 768px), (max-height: 600px)");
|
|
8116
|
+
narrowMq.addEventListener("change", () => {
|
|
8117
|
+
const viewer = document.getElementById("message-viewer");
|
|
8118
|
+
const list = document.getElementById("message-list");
|
|
8119
|
+
if (narrowMq.matches) {
|
|
8120
|
+
if (getCurrentMessage()) {
|
|
8121
|
+
viewer?.classList.add("narrow-active");
|
|
8122
|
+
list?.classList.add("narrow-hidden");
|
|
8123
|
+
}
|
|
8124
|
+
} else {
|
|
8125
|
+
viewer?.classList.remove("narrow-active");
|
|
8126
|
+
list?.classList.remove("narrow-hidden");
|
|
8127
|
+
}
|
|
8128
|
+
});
|
|
8099
8129
|
document.getElementById("mv-popout")?.addEventListener("click", () => popOutCurrentMessage());
|
|
8100
8130
|
document.getElementById("mv-popout-window")?.addEventListener("click", () => popOutToWindow());
|
|
8101
8131
|
document.getElementById("btn-print")?.addEventListener("click", () => printCurrentMessage());
|
|
@@ -10443,6 +10473,7 @@ function openShortcutsDialog() {
|
|
|
10443
10473
|
var viewBtn = document.getElementById("btn-view");
|
|
10444
10474
|
var viewDropdown = document.getElementById("view-dropdown");
|
|
10445
10475
|
var optTwoLine = document.getElementById("opt-two-line");
|
|
10476
|
+
var optEleanor = document.getElementById("opt-eleanor");
|
|
10446
10477
|
var optPreview = document.getElementById("opt-preview");
|
|
10447
10478
|
var optSnippet = document.getElementById("opt-snippet");
|
|
10448
10479
|
var optFlagStars = document.getElementById("opt-flag-stars");
|
|
@@ -10570,6 +10601,7 @@ document.addEventListener("keydown", (e) => {
|
|
|
10570
10601
|
}
|
|
10571
10602
|
});
|
|
10572
10603
|
var savedTwoLine = localStorage.getItem("mailx-two-line") === "true";
|
|
10604
|
+
var savedEleanor = localStorage.getItem("mailx-eleanor-view") === "true";
|
|
10573
10605
|
var savedPreview = localStorage.getItem("mailx-preview") !== "false";
|
|
10574
10606
|
var savedSnippet = localStorage.getItem("mailx-snippet") !== "false";
|
|
10575
10607
|
var savedFlagStars = localStorage.getItem("mailx-flag-stars") !== "false";
|
|
@@ -10581,6 +10613,7 @@ try {
|
|
|
10581
10613
|
}
|
|
10582
10614
|
var savedFolderCounts = localStorage.getItem("mailx-folder-counts") === "true";
|
|
10583
10615
|
if (optTwoLine) optTwoLine.checked = savedTwoLine;
|
|
10616
|
+
if (optEleanor) optEleanor.checked = savedEleanor;
|
|
10584
10617
|
if (optPreview) optPreview.checked = savedPreview;
|
|
10585
10618
|
if (optSnippet) optSnippet.checked = savedSnippet;
|
|
10586
10619
|
if (optFlagStars) optFlagStars.checked = savedFlagStars;
|
|
@@ -10588,6 +10621,7 @@ if (optThreaded) optThreaded.checked = savedThreaded;
|
|
|
10588
10621
|
if (optFlagged) optFlagged.checked = savedFlagged;
|
|
10589
10622
|
if (optFolderCounts) optFolderCounts.checked = savedFolderCounts;
|
|
10590
10623
|
if (savedTwoLine) document.getElementById("message-list")?.classList.add("two-line");
|
|
10624
|
+
if (savedEleanor) document.getElementById("message-list")?.classList.add("eleanor-view");
|
|
10591
10625
|
if (!savedPreview) document.querySelector(".main-area")?.classList.add("no-preview");
|
|
10592
10626
|
if (!savedSnippet) document.getElementById("message-list")?.classList.add("no-snippets");
|
|
10593
10627
|
if (!savedFlagStars) document.getElementById("message-list")?.classList.add("no-empty-stars");
|
|
@@ -10735,6 +10769,29 @@ optTwoLine?.addEventListener("change", () => {
|
|
|
10735
10769
|
}
|
|
10736
10770
|
localStorage.setItem("mailx-two-line", String(optTwoLine.checked));
|
|
10737
10771
|
});
|
|
10772
|
+
function applyEleanorView(on) {
|
|
10773
|
+
document.getElementById("message-list")?.classList.toggle("eleanor-view", on);
|
|
10774
|
+
if (optEleanor) optEleanor.checked = on;
|
|
10775
|
+
try {
|
|
10776
|
+
localStorage.setItem("mailx-eleanor-view", String(on));
|
|
10777
|
+
} catch {
|
|
10778
|
+
}
|
|
10779
|
+
}
|
|
10780
|
+
optEleanor?.addEventListener("change", () => {
|
|
10781
|
+
applyEleanorView(optEleanor.checked);
|
|
10782
|
+
getSettings().then((settings) => {
|
|
10783
|
+
settings.ui = { ...settings.ui, eleanorView: optEleanor.checked };
|
|
10784
|
+
saveSettings(settings);
|
|
10785
|
+
}).catch(() => {
|
|
10786
|
+
});
|
|
10787
|
+
});
|
|
10788
|
+
getSettings().then((s) => {
|
|
10789
|
+
const pref = s.ui?.eleanorView;
|
|
10790
|
+
if (typeof pref === "boolean" && pref !== (localStorage.getItem("mailx-eleanor-view") === "true")) {
|
|
10791
|
+
applyEleanorView(pref);
|
|
10792
|
+
}
|
|
10793
|
+
}).catch(() => {
|
|
10794
|
+
});
|
|
10738
10795
|
optPreview?.addEventListener("change", () => {
|
|
10739
10796
|
const main = document.querySelector(".main-area");
|
|
10740
10797
|
if (optPreview.checked) {
|