From f9024d1f77d9f2b616556bd2e71ed1d11822d2df Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Wed, 7 Jan 2026 12:58:44 +1300 Subject: [PATCH 1/8] Chore: Remove webkit warnings about missing template / render functions --- server/ui-src/components/AppBadge.vue | 5 +++++ server/ui-src/components/AppFavicon.vue | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/server/ui-src/components/AppBadge.vue b/server/ui-src/components/AppBadge.vue index 2b4046d..1acf13b 100644 --- a/server/ui-src/components/AppBadge.vue +++ b/server/ui-src/components/AppBadge.vue @@ -53,5 +53,10 @@ export default { navigator.setAppBadge(this.mailboxUnread); }, }, + + render() { + // to remove webkit warnings about missing template or render function + return false; + }, }; diff --git a/server/ui-src/components/AppFavicon.vue b/server/ui-src/components/AppFavicon.vue index 190286d..ed7b044 100644 --- a/server/ui-src/components/AppFavicon.vue +++ b/server/ui-src/components/AppFavicon.vue @@ -112,5 +112,10 @@ export default { this.favicon.href = canvas.toDataURL("image/png"); }, }, + + render() { + // to remove webkit warnings about missing template or render function + return false; + }, }; From f0160c0e2972a48aa2c549be2299a55402d1761c Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 8 Jan 2026 15:49:53 +1300 Subject: [PATCH 2/8] Feature: Allow default mail addresses to be set when releasing message (#594) --- server/ui-src/components/AppSettings.vue | 73 ++++++++++++++++++- .../components/message/MessageRelease.vue | 22 +++++- server/ui-src/stores/mailbox.js | 14 ++++ server/ui-src/views/MessageView.vue | 1 - 4 files changed, 105 insertions(+), 5 deletions(-) diff --git a/server/ui-src/components/AppSettings.vue b/server/ui-src/components/AppSettings.vue index 838be74..4e79903 100644 --- a/server/ui-src/components/AppSettings.vue +++ b/server/ui-src/components/AppSettings.vue @@ -14,6 +14,9 @@ export default { timezones, chaosConfig: false, chaosUpdated: false, + defaultReleaseAddressesOptions: localStorage.getItem("defaultReleaseAddresses") + ? JSON.parse(localStorage.getItem("defaultReleaseAddresses")) + : [], // set with default release addresses }; }, @@ -49,7 +52,9 @@ export default { Tags.init("select.tz"); }); - mailbox.skipConfirmations = !!localStorage.getItem("skip-confirmations"); + mailbox.skipConfirmations = localStorage.getItem("skip-confirmations"); + + Tags.init("select.default-release-addresses"); }, methods: { @@ -98,7 +103,7 @@ export default { + +
+
+ +
+ You can specify the default release "send to" addresses here, which will + automatically fill the field in the message release dialog. This setting is + applicable only to your browser. If left blank, it will default to the original + recipients of the message. +
+ +
Invalid email address
+
+
+
[ad.toLowerCase(), ad])).values()])); - this.addresses = this.allAddresses; + // include default release addresses from mailbox settings + const defaultAddr = mailbox.defaultReleaseAddresses; + for (const i in defaultAddr) { + if (!this.allAddresses.includes(defaultAddr[i])) { + this.allAddresses.push(defaultAddr[i]); + } + } + + if (defaultAddr.length === 0) { + // prefill with all addresses if no default is set + this.addresses = this.allAddresses; + } else { + this.addresses = defaultAddr; + } }, methods: { @@ -140,6 +153,13 @@ export default {
Invalid email address
+
+ Default release addresses can be configured in + + + Settings . +
diff --git a/server/ui-src/stores/mailbox.js b/server/ui-src/stores/mailbox.js index a6973ed..35b3d22 100644 --- a/server/ui-src/stores/mailbox.js +++ b/server/ui-src/stores/mailbox.js @@ -20,6 +20,9 @@ export const mailbox = reactive({ appInfo: {}, // application information uiConfig: {}, // configuration for UI lastMessage: false, // return scrolling + defaultReleaseAddresses: localStorage.getItem("defaultReleaseAddresses") + ? JSON.parse(localStorage.getItem("defaultReleaseAddresses")) + : [], // default release addresses for released messages // settings showTagColors: !localStorage.getItem("hideTagColors"), @@ -82,6 +85,17 @@ watch( }, ); +watch( + () => mailbox.defaultReleaseAddresses, + (v) => { + if (v.length) { + localStorage.setItem("defaultReleaseAddresses", JSON.stringify(v)); + } else { + localStorage.removeItem("defaultReleaseAddresses"); + } + }, +); + watch( () => mailbox.timeZone, (v) => { diff --git a/server/ui-src/views/MessageView.vue b/server/ui-src/views/MessageView.vue index efd2fb9..3783dbf 100644 --- a/server/ui-src/views/MessageView.vue +++ b/server/ui-src/views/MessageView.vue @@ -455,7 +455,6 @@ export default { window.setTimeout(() => { // delay to allow elements to load / focus this.$refs.ReleaseRef.initTags(); - document.querySelector('#ReleaseModal input[role="combobox"]').focus(); }, 500); }, }, From 392904fd238952c15fff89a6724cd45856950f1a Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 8 Jan 2026 15:54:37 +1300 Subject: [PATCH 3/8] Chore: Avoid empty URL query parameter when returning to inbox from message view --- server/ui-src/views/MessageView.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/ui-src/views/MessageView.vue b/server/ui-src/views/MessageView.vue index 3783dbf..09247dc 100644 --- a/server/ui-src/views/MessageView.vue +++ b/server/ui-src/views/MessageView.vue @@ -442,7 +442,11 @@ export default { if (pagination.limit !== pagination.defaultLimit) { p.limit = pagination.limit.toString(); } - this.$router.push("/?" + new URLSearchParams(p).toString()); + if (p.start || p.limit) { + this.$router.push("/?" + new URLSearchParams(p).toString()); + } else { + this.$router.push("/"); + } } }, From c4582889ad782123710dfbe7aa92c2b7d38e5f50 Mon Sep 17 00:00:00 2001 From: Ralph Slooten Date: Thu, 8 Jan 2026 16:20:00 +1300 Subject: [PATCH 4/8] Update default release address wording --- server/ui-src/components/AppSettings.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/ui-src/components/AppSettings.vue b/server/ui-src/components/AppSettings.vue index 4e79903..6333a74 100644 --- a/server/ui-src/components/AppSettings.vue +++ b/server/ui-src/components/AppSettings.vue @@ -269,10 +269,10 @@ export default {
- You can specify the default release "send to" addresses here, which will - automatically fill the field in the message release dialog. This setting is - applicable only to your browser. If left blank, it will default to the original - recipients of the message. + You can designate the default "send to" addresses here, which will automatically + populate the field in the message release dialog. This setting applies only to your + browser. If this field is left empty, it will revert to the original recipients of + the message.