@bobfrankston/rmfmail 1.1.95 → 1.1.97
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/.commitmsg +14 -4
- package/client/app.bundle.js +15 -4
- package/client/app.bundle.js.map +2 -2
- package/client/app.js +10 -1
- package/client/app.js.map +1 -1
- package/client/app.ts +9 -1
- package/client/components/alarms.js +19 -4
- package/client/components/alarms.js.map +1 -1
- package/client/components/alarms.ts +17 -4
- package/client/compose/compose.bundle.js +4 -0
- package/client/compose/compose.bundle.js.map +2 -2
- package/client/lib/rmf-tiny.js +9 -0
- package/docs/rmf-tiny.md +31 -2
- package/npmchanges.md +26 -0
- package/package.json +1 -1
- /package/packages/mailx-imap/{node_modules.npmglobalize-stash-90336 → node_modules.npmglobalize-stash-26080}/.package-lock.json +0 -0
package/.commitmsg
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
Reply scrolls to top; Ctrl+A no longer hijacked in text fields
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
- Reply/forward: setCursor(0) now scrolls the editor viewport to the top
|
|
4
|
+
(editor.getWin().scrollTo(0,0)), so the caret above the quoted block is
|
|
5
|
+
the line you're looking at instead of being left scrolled down inside
|
|
6
|
+
the quote.
|
|
7
|
+
|
|
8
|
+
- Ctrl+A: the message-list select-all guard used `.closest(".message-list,
|
|
9
|
+
.ml-body, body)` — `body` always matches, so Ctrl+A in the search box
|
|
10
|
+
(or any input) selected every message instead of the box's text. Now it
|
|
11
|
+
returns early when focus is in an INPUT/TEXTAREA/SELECT/contenteditable,
|
|
12
|
+
so Ctrl+A selects (and lets you clear) the search field normally.
|
|
13
|
+
|
|
14
|
+
- docs/rmf-tiny.md: marked implemented; added a running "Known TinyMCE
|
|
15
|
+
quirks" log (caret/scroll, link-extend, spellcheck, <p>-to-<br>).
|
package/client/app.bundle.js
CHANGED
|
@@ -4829,6 +4829,13 @@ var alarms_exports = {};
|
|
|
4829
4829
|
__export(alarms_exports, {
|
|
4830
4830
|
startAlarmPoller: () => startAlarmPoller
|
|
4831
4831
|
});
|
|
4832
|
+
function alog(tag, data) {
|
|
4833
|
+
console.log(`[alarm] ${tag}`, data ?? "");
|
|
4834
|
+
try {
|
|
4835
|
+
logClientEvent(`[alarm] ${tag}`, data);
|
|
4836
|
+
} catch {
|
|
4837
|
+
}
|
|
4838
|
+
}
|
|
4832
4839
|
function loadDismissed() {
|
|
4833
4840
|
try {
|
|
4834
4841
|
return JSON.parse(localStorage.getItem(DISMISSED_KEY) || "{}");
|
|
@@ -4903,7 +4910,7 @@ async function collectDueAlarms(now) {
|
|
|
4903
4910
|
}
|
|
4904
4911
|
}
|
|
4905
4912
|
if (pick) {
|
|
4906
|
-
|
|
4913
|
+
alog("fire decision", { key: pick.key, title: ev.title || "", startMs, effective: pick.effective });
|
|
4907
4914
|
items.push({
|
|
4908
4915
|
uuid: pick.key,
|
|
4909
4916
|
kind: "calendar",
|
|
@@ -5176,7 +5183,7 @@ async function firePopupForItem(item) {
|
|
|
5176
5183
|
const m = loadDismissed();
|
|
5177
5184
|
m[item.uuid] = true;
|
|
5178
5185
|
saveDismissed(m);
|
|
5179
|
-
|
|
5186
|
+
alog("dismiss saved", { key: item.uuid, via: r.button });
|
|
5180
5187
|
}
|
|
5181
5188
|
break;
|
|
5182
5189
|
case "Delete":
|
|
@@ -5189,7 +5196,7 @@ async function firePopupForItem(item) {
|
|
|
5189
5196
|
deleteCalendarEvent(item.uuid).catch((e) => console.error(` [alarm] delete failed for ${item.uuid}: ${e?.message || e}`));
|
|
5190
5197
|
break;
|
|
5191
5198
|
default:
|
|
5192
|
-
|
|
5199
|
+
alog("unknown popup result", { button: r.button, form: r.form });
|
|
5193
5200
|
{
|
|
5194
5201
|
const m = loadDismissed();
|
|
5195
5202
|
m[item.uuid] = true;
|
|
@@ -5204,6 +5211,7 @@ function snoozeItem(item, minutes) {
|
|
|
5204
5211
|
map[item.uuid] = now + minutes * 6e4;
|
|
5205
5212
|
saveSnoozed(map);
|
|
5206
5213
|
firedThisSession.delete(item.uuid);
|
|
5214
|
+
alog("snooze saved", { key: item.uuid, minutes, untilMs: map[item.uuid] });
|
|
5207
5215
|
}
|
|
5208
5216
|
async function pollAlarms() {
|
|
5209
5217
|
if (document.hidden)
|
|
@@ -8639,8 +8647,11 @@ document.addEventListener("keydown", (e) => {
|
|
|
8639
8647
|
applyFontSize(next);
|
|
8640
8648
|
}
|
|
8641
8649
|
if (e.ctrlKey && e.key === "a") {
|
|
8650
|
+
const t = e.target;
|
|
8651
|
+
const tag = t?.tagName;
|
|
8652
|
+
if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT" || t?.isContentEditable) return;
|
|
8642
8653
|
const mlBody = document.getElementById("ml-body");
|
|
8643
|
-
if (mlBody
|
|
8654
|
+
if (mlBody) {
|
|
8644
8655
|
e.preventDefault();
|
|
8645
8656
|
mlBody.querySelectorAll(".ml-row").forEach((r) => r.classList.add("selected"));
|
|
8646
8657
|
}
|