Linus Rath
48c8d37e37
fix: hide subscribe to calendar in lite, which can't fetch feeds
2026-10-31 17:52:28 +01:00
Linus Rath
f11ddf82dd
fix: tell banner plugins when an admin opened the mailbox through impersonation
2026-10-31 17:48:29 +01:00
Linus Rath
961c176401
Merge remote-tracking branch 'origin/main' into feat/audience-shots
2026-10-31 17:06:43 +01:00
Linus Rath
ee53eb8d2c
test: add a flight booking with a card to the demo
2026-10-31 16:58:40 +01:00
Linus Rath
9d529ca98f
feat: reply from the address a message was delivered to when to, cc and bcc have no match #1353
2026-10-31 16:55:10 +01:00
Linus Rath
63424852ec
chore: refresh the readme and install screenshots for 1.19.1
2026-10-31 16:41:02 +01:00
Linus Rath
e68036e7b0
fix: line up the select-all checkbox with the row checkboxes in mountain view #1473
2026-10-31 16:31:18 +01:00
Linus Rath
e128515156
fix: show the real total of the unified inbox in mountain view instead of the loaded count #1471
2026-10-31 16:31:17 +01:00
Linus Rath
663a875972
fix: give the folders their own heading under the unified mailbox in mountain view #1470
2026-10-31 16:31:16 +01:00
Linus Rath
ea604ab8a1
fix: keep the open folder regular weight in mountain view so bold only means unread #1469
2026-10-31 16:31:15 +01:00
Linus Rath
e78cc59fb4
fix: add the vietnamese strings for the directory and month view settings
2026-10-31 16:26:37 +01:00
Linus Rath
7341e981c3
fix: limit how often a plugin can open a message in the reader #1466
2026-10-31 16:25:07 +01:00
Linus Rath
b8223a4492
Merge pull request #1466 from HOLOEYE-JZ/feat/plugin-open-email
...
feat(plugins): api.ui.openEmail opens a message in the reader
2026-10-31 16:25:05 +01:00
Linus Rath
c09be1cdd3
Merge pull request #1456 from HOLOEYE-JZ/feat/plugin-frame-activity
...
feat(plugins): input in a plugin frame counts as activity for the idle sign-out
2026-10-31 16:25:03 +01:00
Linus Rath
e5ed50dc92
Merge pull request #1467 from HOLOEYE-JZ/feat/plugin-hooks-account-and-composer
...
feat(plugins): star and after-send hooks name the mail's account
2026-10-31 16:25:00 +01:00
Linus Rath
258dc5e54f
Merge pull request #1454 from VasilisNtovolos/fix/save-draft-pending-attachments
...
fix: wait for attachment uploads before saving and closing drafts
2026-10-31 16:24:58 +01:00
Linus Rath
2ceeef3fb9
Merge pull request #1464 from VasilisNtovolos/fix/xhr-upload-inactivity-timeout
...
fix: time out stalled XHR uploads after inactivity
2026-10-31 16:24:56 +01:00
Linus Rath
4c53609b1e
Merge pull request #1465 from HOLOEYE-JZ/fix/tasks-shared-account-without-calendars
...
fix(tasks): skip a shared account without calendar access when listing tasks
2026-10-31 16:24:54 +01:00
Linus Rath
1e462fc67e
Merge pull request #1436 from shukiv/fix/impersonation-expired-app-passwords
...
fix: let a mailbox be opened through the handoff more than five times
2026-10-31 16:24:52 +01:00
Linus Rath
608d23bc14
Merge pull request #1446 from robertdoneill/fix/command-palette-focus-outline
...
fix: keep the command palette field's focus outline inside the dialog
2026-10-31 16:24:50 +01:00
Linus Rath
2daffe1364
fix: complete the vietnamese strings and register them for plugin controls #1448
2026-10-31 16:24:49 +01:00
Linus Rath
341b84fe19
Merge pull request #1448 from vietnamvps/add-vietnamese
...
feat(i18n): add Vietnamese language support
2026-10-31 16:24:47 +01:00
Linus Rath
bc6fee7556
feat: let timed events show as coloured text or a dot in the month view #1449
2026-10-31 16:23:00 +01:00
Linus Rath
6b94f96e83
fix: redirect the bare base path of a sub-path install to the sign-in page #1455
2026-10-31 16:22:58 +01:00
Linus Rath
d3fecae85f
feat: hide the contacts directory when the server refuses it, and let users or admins turn it off #1457
2026-10-31 16:22:24 +01:00
Linus Rath
6c5a727a59
fix: let an identity be saved without a display name #1462
2026-10-31 16:22:22 +01:00
Linus Rath
d381144c99
feat: put reply and reply all at the top of the open message on the phone in mountain view #1475
2026-10-31 16:21:40 +01:00
Linus Rath
3b4a0c4c8e
feat: fold the quoted history of iphone mail and outlook replies behind the ••• toggle #1476
2026-10-31 16:21:37 +01:00
Linus Rath
7c88fb8c5b
fix: shrink the mail body to its content when it gets shorter after opening #1474
2026-10-31 16:21:35 +01:00
Linus Rath
c13b87c0e8
fix: keep the undo toast off the header on phones #1472
2026-10-31 16:15:58 +01:00
Linus Rath
a0da9eb6c2
fix: show the results when searching with a message open in mountain view #1468
2026-10-31 16:15:57 +01:00
Linus Rath
3cb3a8d33a
fix: keep pasted images inside the message body for recipients #1451
2026-10-31 16:14:49 +01:00
Linus Rath
5931cd1678
feat: send an oauth resource indicator when one is configured #1461
2026-10-31 16:14:35 +01:00
Linus Rath
8a4d9e36c9
fix: hide the account dot in the unified view with only one account
2026-10-31 15:57:34 +01:00
Linus Rath
3bdbdb1364
docs: move the mobile hand-off contract to the website
2026-10-31 14:32:39 +01:00
Linus Rath
c7eb483202
test: add an e-invoice mail to the demo
2026-10-31 14:17:11 +01:00
VasilisNtovolos
2e8a73ffd2
fix: time out stalled XHR uploads after inactivity
2026-10-31 15:16:17 +02:00
Jacob Zeitz
d5cd3c6e40
feat(plugins): star and after-send hooks name the mail's account
...
Message ids repeat across accounts, so a hook payload naming only an
emailId could not tell a plugin which mailbox the message lies in when
it is a shared or group account's.
onBeforeEmailStarToggle and onEmailStarToggle now carry accountId when
the starred message is not in the user's own account, as the
message-row-actions click context does. Every star (the row's button,
the reader's star, the key, the menu) goes through toggleStar, one
message at a time, so one accountId names it; the account is resolved
before the plugins are asked. An own message's payload is unchanged.
onAfterEmailSend now carries accountId, the JMAP account the sent
message lies in (a mail sent from a shared or group identity lies in
that account), so api.email.get finds it. sendEmail returns that account
as emailAccountId, the S/MIME send too. The hook also carries
composerId, the id the sending composer's slots and actions gave
plugins, so a plugin can act on what the user chose in that composer.
2026-10-31 14:15:06 +01:00
Jacob Zeitz
54ad6390b3
feat(plugins): api.ui.openEmail opens a message in the reader
...
A plugin opens a message as a click on a list row or on a search result
entry naming one does, also a message of a shared or group account,
reached through the login that reads it. On the mail page it opens in
place, in the Pro shell in an email tab as a message link does there;
elsewhere the tab loads the message's link, at most five times a minute.
A message no login reads, or one its account does not have, is refused
with an error the plugin sees, as is one the mail page could not open.
Needs email:read.
2026-10-31 14:14:48 +01:00
Jacob Zeitz
65f97dc96b
fix(tasks): skip a shared account without calendar access when listing tasks
...
A shared account the calendar fan-out probes on suspicion may list the
calendars capability and still refuse CalendarEvent/query (Stalwart 1.0
answers accountNotSupportedByMethod for a share that grants no calendar
access). queryCalendarEvents remembered such an account and skipped it
from then on, but getCalendarTasks failed as a whole on it, so the task
list and the plugin task API stayed empty after a reload until the
calendar page had run once. Reading an account's tasks now takes that
refusal as no tasks and remembers the account the same way, through one
helper both share; any other failure still fails the read.
2026-10-31 14:14:48 +01:00
Linus Rath
f74ff49f58
feat: give the mobile app its organisation policy for its access token
2026-10-31 14:10:53 +01:00
Linus Rath
523e5b8981
test: add an s/mime signed message to the demo
2026-10-31 14:08:48 +01:00
Linus Rath
fb3ba0275a
feat: hand the mobile app a one-time code instead of the sign-in in its link
2026-10-31 14:06:44 +01:00
Linus Rath
eb76c7c884
test: assign support mail for the team inbox in the demo
2026-10-31 14:01:53 +01:00
Linus Rath
5add641297
feat: give the demo client shared metadata for tags and assignments
2026-10-31 13:58:57 +01:00
Linus Rath
7c6addb2a5
test: keep the demo out-of-office reply off but filled in
2026-10-31 13:54:28 +01:00
Linus Rath
4d4ae5c28f
feat: give the demo client archived items to recover
2026-10-31 13:50:59 +01:00
Linus Rath
1c9bac4244
feat: give the demo client free/busy
2026-10-31 13:47:32 +01:00
Linus Rath
222abff831
test: share a colleague's calendar in the demo
2026-10-31 13:35:49 +01:00
Linus Rath
dae45e1203
feat: give the demo client principals and sharing
2026-10-31 13:32:02 +01:00