Commit Graph
435 Commits
Author SHA1 Message Date
Linus Rath 73a7bb7bcd fix: send the headers plugins add to an outgoing message instead of dropping them 2026-10-31 17:40:20 +01:00
Linus Rath f8805b8d52 fix: keep remote content blocked for trusted senders when the organisation locks it to block 2026-10-31 17:32:24 +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 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 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 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 8a4d9e36c9 fix: hide the account dot in the unified view with only one account 2026-10-31 15:57:34 +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
Linus Rath 4887ed457c fix: stop list toolbar timers from firing after the toolbar is gone 2026-10-31 02:28:55 +01:00
Linus Rath 8a09ba5734 fix: leave a bounce's delivery report out of list chips and forwards 2026-10-31 01:50:03 +01:00
Linus Rath d4682890ab fix: hide the quick actions on the open message once the pointer leaves it 2026-10-31 01:47:00 +01:00
Linus Rath 5f1d03f19c fix: stop the message list from jumping back while scrolling 2026-10-31 01:38:17 +01:00
Linus Rath 8b29254a61 fix: hide reply on drafts and scheduled messages in mountain view conversations #1404 2026-10-31 01:26:58 +01:00
Pasquale 3b4b6b9e77 feat: add reply all to expanded mountain view message headers #1404 2026-10-31 01:23:22 +01:00
Linus Rath dafdda5347 fix: let search results move into the open folder #1452 2026-10-31 01:16:34 +01:00
VasilisNtovolos b6290f85b1 fix: wait for attachment uploads before saving and closing drafts 2026-10-30 14:28:21 +02:00
Linus Rath 859d368a1c feat: offer add to calendar on booking cards 2026-10-30 05:46:11 +01:00
Linus Rath b429f25360 fix: load no product images on conversation cards in plain-text mode 2026-10-30 05:40:16 +01:00
Linus Rath eb1859dbe3 feat: show booking, parcel and order cards in the reader 2026-10-30 05:10:59 +01:00
Linus Rath 392d17ab71 fix: show plugin badges on message rows drawn before the plugin started 2026-10-30 00:23:11 +01:00
Linus Rath ed988a2aae ci: keep the a11y guard out of lint and vitest and mock narrowerThan in attachment tests 2026-10-29 21:08:59 +01:00
Linus Rath c0fb427eec feat: tick a row from anywhere beside its avatar or checkbox #1381 2026-10-29 20:53:52 +01:00
Linus Rath 357b6af3c9 feat: offer to remove a cancelled meeting from the calendar in the cancellation mail #1425 2026-10-29 20:24:27 +01:00
Linus Rath a78d03a18d fix: color attachment icons by file type in the reader like in the list 2026-10-29 20:06:15 +01:00
Linus Rath 5dfc958723 fix: stop a mail's own body overflow from adding a second scrollbar in the reader 2026-10-29 20:06:15 +01:00
Linus Rath e57e922950 feat: make buttons, menu items, rows and switches 44px when large targets is on 2026-10-29 19:38:45 +01:00
Linus Rath f43eb9f41a fix: give chip remove buttons, tree expanders, task circles and month events a 24px target 2026-10-29 19:38:45 +01:00
Linus Rath be423637fc feat: show one column and an optional paged message list in simple mode 2026-10-29 19:14:41 +01:00
Linus Rath 8e201954b4 fix: make the message list one Tab stop that screen readers read row by row
The list was a stack of clickable divs. Screen readers heard nothing when
j or k moved the selection, every row added several Tab stops (Compose
sat 253 Tabs from the top), and a deleted message left the focus on the
page.

The list is now a treegrid named "Messages": one Tab stop, rows named in
one sentence (unread, sender, subject, date, flags, and the preview when
that setting is on), conversations with aria-expanded and their
messages a level down, position and list size on every row. j, k and the
arrows move the focus with the selection, Space ticks a row, Enter opens
it, Shift+F10 or the menu key opens its actions, and after a delete the
focus lands on the next row. With the actions button setting on, each
row shows a button for the same menu, for pointers that can't hover or
right-click.
2026-10-29 18:53:05 +01:00
Linus Rath 6143aaa80d fix: move the focus into the batch tag menu and make the full-screen compose window a dialog 2026-10-29 18:02:59 +01:00
Linus Rath 37a14eca6a fix: name the inbox category tabs in the user's language and tie them to the list 2026-10-29 18:02:57 +01:00
Linus Rath 75b4ec37fb fix: say whether a conversation attachment button previews or downloads, next to the file name 2026-10-29 17:53:59 +01:00
Linus Rath a982c3f235 feat: dim the open message except a band of lines with the reading mask 2026-10-29 17:53:59 +01:00
Linus Rath caed2d313a feat: open a message in a reader view with the app's font, spacing and colours 2026-10-29 17:53:59 +01:00
Linus Rath bb78697981 feat: pause animated images in mail with a play button 2026-10-29 17:53:57 +01:00
Linus Rath 1e929b0a95 feat: read HTML mail as plain text, by default or per message 2026-10-29 17:53:57 +01:00
Linus Rath 8cc0f8f258 feat: keep message lines to about 80 characters with the comfortable reading width 2026-10-29 17:53:56 +01:00
Linus Rath dcc0d600f4 feat: show HTML mail in the app's font, colours and spacing when styles are overridden 2026-10-29 17:53:56 +01:00
Linus Rath 24a13cc1f8 fix: stop animations inside mail when reduce motion is on 2026-10-29 17:53:55 +01:00
Linus Rath 324a0f76b2 fix: leave mail colours to the browser in Windows contrast themes 2026-10-29 17:53:55 +01:00
Linus Rath c07ba1a370 feat: show message bodies at the chosen text size and enlarge text below the minimum 2026-10-29 17:53:55 +01:00
Linus Rath b63038a644 fix: name the file on attachment buttons and say whether a conversation message is expanded 2026-10-29 17:53:54 +01:00
Linus Rath c20b9846b9 fix: name each message frame after its subject and give it the mail's language 2026-10-29 17:53:54 +01:00
Linus Rath 4c1f24947e fix: tell screen readers when a draft is saved and read a failed upload out once 2026-10-29 17:53:50 +01:00
Linus Rath 374ae9c8dc feat: ask before deleting or archiving when the confirm settings are on 2026-10-29 17:53:48 +01:00
Linus Rath e2fc2c750a feat: read toasts out to screen readers, errors assertively 2026-10-29 17:53:44 +01:00
Linus Rath 53cb49d3ce feat: ask for alt text when an image goes into a message
Pasted and dropped images used to get the file name as alt text, and
there was no way to change it. Now a small dialog asks what the image
shows right after it is inserted, with a "Decorative image" option that
writes alt="". An image already in the text can be described from the
toolbar or from the ALT button on the selected image. The plain-text
part of an HTML mail writes described images as "[Image: ...]" and
leaves decorative ones out.

The formatting toolbar now also re-renders when only the selection
changes, so its pressed states and the image button follow the caret.
2026-10-29 17:53:43 +01:00