Commit Graph
363 Commits
Author SHA1 Message Date
Linus Rath 6559b34135 fix: keep Mountain View's row actions, checkbox and star on the subject line when attachment chips make the row taller 2026-10-28 19:53:33 +01:00
Linus Rath 8916a4ef75 fix: keep the search clear button inside the field and move filter, sort and refresh out of the crowded list header 2026-10-28 19:26:44 +01:00
Linus Rath 4d870c8409 Merge pull request #1394 from lucamzanon/fix/send-waits-for-draft-saves 2026-10-28 17:02:22 +01:00
Linus Rath 96797597c5 Merge branch 'main' into feat/org-features 2026-10-28 15:14:34 +01:00
Linus Rath 7271c87844 fix: let plain-text messages in the phone conversation take their own text direction 2026-10-28 13:09:30 +01:00
Linus Rath 2bb63f648b fix: keep the phone conversation's reply buttons readable and count its messages with each language's plural forms 2026-10-28 12:46:18 +01:00
Linus Rath 8fb4e51dc5 fix: end mail menu items in an ellipsis only where they open a dialog, drop the key hint and say Report spam on the reader button in every language 2026-10-28 12:42:22 +01:00
Linus Rath 0532fb2a47 fix: let senders, subjects and previews in the list and reader take their own text direction, so English text in Arabic is cut at its end 2026-10-28 11:06:18 +01:00
Linus Rath 23be243dba fix: name the reader's Reply, Reply all, Forward and Star without key hints, keeping the hint in the tooltip 2026-10-28 10:56:25 +01:00
Linus Rath 3700ec432c fix: ask Delete this email permanently? and Delete these emails? in the delete confirms 2026-10-28 10:54:16 +01:00
Linus Rath c60cc702f7 fix: open Save to Files with My files selected so Save here works right away 2026-10-28 10:45:12 +01:00
Linus Rath 489a2b2f5f test: give the thread row test's auth store the state the plugin actions read 2026-10-28 10:20:15 +01:00
Linus Rath 60b5a91a87 fix: give the phone conversation header Move and a More menu with the message's other actions, and keep a long subject to two lines 2026-10-28 10:20:11 +01:00
Linus Rath 917b313d5d fix: show a message row's quick actions when the row gets the keyboard focus 2026-10-28 10:11:15 +01:00
Linus Rath 135ed4c4fc fix: let Escape in the Insert link dialog close only the dialog, not the composer 2026-10-28 10:07:39 +01:00
Linus Rath 5d90a850bd Merge branch 'feat/org-recovery' into feat/org-features
# Conflicts:
#	components/email/email-list.tsx
2026-10-28 09:17:56 +01:00
Linus Rath 272083399c Merge branch 'feat/org-tags' into feat/org-features
# Conflicts:
#	lib/admin/restriction-keys.ts
#	lib/jmap/client.ts
2026-10-28 09:15:17 +01:00
Linus Rath f1a666777b Merge branch 'feat/org-features' into feat/org-recovery 2026-10-28 09:08:49 +01:00
Linus Rath 4d846cfc91 fix: read the whole deleted items archive newest first and only for the account shown #1319
Stalwart's x:ArchivedItem/query without calculateTotal scans ids
ascending, stops at 5000 and only then reverses them, so the newest
items of a large archive never showed, and admin accounts got every
account's items. The review of the branch also found gaps around
account switches, restores and focus.

- Read the archive in pages of 500 with calculateTotal, newest first,
  stop at a whole page older than the days limit, and offer
  "Show older" after 2000 items; detection asks for one item.
- Send the accountId filter and fall back without it on
  unsupportedFilter; keep only items of the account, never one without
  an account id.
- Ask nothing until config and policy are loaded and the policy is the
  current account's; the later check after a refusal is forced.
- Show the Trash link only when the archive holds a message inside the
  days limit; the Settings page shows whenever the server has the
  feature and says that archiving must be on in Stalwart.
- Restore: notFound leaves the list with a note, forbidden hides the
  page, results for another account are dropped, the button keeps focus.
- Forget what servers said at a full sign-out.
2026-10-28 09:08:44 +01:00
Linus Rath 7f751e7de2 fix: offer the tags of the selection's account in the context menu, like the toolbar 2026-10-28 08:58:19 +01:00
Linus Rath e0586c1012 test: expect the Undo receipts the Mountain View Move passes 2026-10-28 08:24:16 +01:00
Linus Rath 23f67a5e72 fix: keep plugin chips named by their filter, draw the team icons at once and pass attributes to icons still loading 2026-10-28 08:16:52 +01:00
Linus Rath 42b694fb2c feat: save attachments of shared and group mailboxes to Files by copying the blob on the server 2026-10-28 08:16:47 +01:00
Linus Rath f60ddf3f95 fix: give a message the same actions in its row menu, the reader's ⋮ and the phone panel, Print, View source, Export and Pin included, and one menu look for Mail's ⋮, Move, Tag and composer menus 2026-10-28 07:42:24 +01:00
Linus Rath 61d4e02e38 test: keep the Trash link out of a shared Trash without an account id 2026-10-28 07:39:00 +01:00
Linus Rath ba6e6af014 feat: recover deleted items from Stalwart's archive #1319 2026-10-28 07:27:47 +01:00
Linus Rath 30a863c79d fix: put the template, placeholder and composer dialogs on the shared dialog: close X at the end, Escape, outside click, and a discard prompt for typed changes 2026-10-28 07:13:34 +01:00
Linus Rath e2908676ec fix: give menu rows, the phone More panel's close and the subject star a 44px touch target 2026-10-28 07:00:24 +01:00
Linus Rath 92815cc0ab fix: keep opening a message as cheap as before: mount Mail's new dialogs, the selection bar and the folder options button only when they show 2026-10-28 06:48:00 +01:00
Linus Rath a69d7eee33 feat: let plugins work with team mailboxes: list filters, row badge icons, account info and message conditions
What the team inbox plugin needs, kept general for other plugins:

- `api.ui.setListFilters`: keyword filters drawn as chips in the list
  header of the folders they apply to (by account kind and folder
  role). A chip the user turns on is ANDed into the folder's query and
  comes off with one click; a keyword change a filter tests loads the
  list again (ui:message-list).
- Actions get `accounts`, `hasKeyword` and `notKeyword`, so a button
  shows only on messages of group accounts, or of a keyword state; the
  click of message-row-actions and reader-actions carries the message's
  `accountId`.
- `api.email.updateKeywords`: several keywords in one change, through
  the list for a listed message (email:write).
- `api.user.getSelf`, `getMailAccounts` and `findPeople`: the user's own
  account id (Stalwart's principal id), which accounts are group
  accounts, and people from the directory (account:read).
- `api.accountData`: a plugin's own entry in a mail account's shared
  Inbox metadata on Stalwart 1.0 (email:read / email:write).
- Row badges take an `icon`.
2026-10-28 06:39:57 +01:00
lucamzanon ce6ce0257f fix(compose): a send no longer races the autosave armed during an in-flight save
Send waited for a save already on the server, then flushed a pending
autosave only if its timer was still armed. When the save took longer
than the 2 s debounce, the timer fired during that wait and its save ran
beside the send: the send destroyed a version that save had already
replaced (a "post-send cleanup failed" warning) and the version it
created stayed in Drafts. Cancel the timer before awaiting and queue the
flush behind the save in flight.
2026-10-28 06:30:27 +01:00
Linus Rath de49281334 fix: offer the message and conversation links in the reader's menus too, and drop the keyboard shortcuts entry from the phone panel 2026-10-28 06:23:22 +01:00
Linus Rath 19676a14fd feat: make a new tag from the tag picker and open the template manager from the template picker 2026-10-28 06:18:53 +01:00
Linus Rath 29fcd649dd fix: tidy the reader header and toolbar: commas after names, a Cc "+N" that opens the list, labels that don't wrap, and room under the list for the Compose button 2026-10-28 06:14:41 +01:00
Linus Rath 008d5797e4 fix: pick the folder for Save to Files with the Files app's folder picker 2026-10-28 06:11:18 +01:00
Linus Rath 446789b4e7 fix: give the empty mail list a next step: Clear search after a search, Compose in Drafts 2026-10-28 05:57:19 +01:00
Linus Rath 633683ebfc fix: let a swipe archive or delete a conversation's row on the phone, as it does a single message's 2026-10-28 05:52:37 +01:00
Linus Rath 795faceee7 Merge branch 'feat/org-thirdparty' into feat/org-features 2026-10-28 05:51:22 +01:00
Linus Rath 29889aa529 fix: colour Mail's row actions, Delete buttons and save status from the theme instead of fixed hues 2026-10-28 05:50:25 +01:00
Linus Rath e5ef5ee9bf fix: use the same icons for the same actions in Mail: Refresh, Back, Edit, Compose, More and the amber star 2026-10-28 05:48:50 +01:00
Linus Rath 687cd89346 Merge branch 'feat/org-external' into feat/org-features
# Conflicts:
#	lib/outgoing/quick-reply.ts
#	lib/outgoing/send-pipeline.ts
2026-10-28 05:46:11 +01:00
Linus Rath c736ab1f3c fix: use one word per action across Mail: Report spam, Not spam, Mark as read, Reply all, Remove for a recipient, Filters 2026-10-28 05:45:50 +01:00
Linus Rath b0eb9fcfe1 fix: say the organisation blocks remote content instead of offering to load it with no third-party traffic #903 2026-10-28 05:38:39 +01:00
Linus Rath 656cb26ae2 feat: save an attachment to Files from the message 2026-10-28 05:34:34 +01:00
Linus Rath 9f230ca8fc fix: keep a quick reply as a draft when an automatic sign-out comes while the external recipient question is open 2026-10-28 05:23:25 +01:00
Linus Rath 823da8c810 Merge branch 'feat/org-features' into feat/org-external
# Conflicts:
#	components/email/email-viewer.tsx
#	components/mail/mail-app.tsx
2026-10-28 05:19:21 +01:00
Linus Rath 7166c5f112 fix: translate the last English words in Mail: Cc, Unknown, (No subject), Contact added, Copy and the move and connection messages 2026-10-28 05:16:30 +01:00
Linus Rath d17277fab2 fix: point Mail's arrows, indents and panels the right way in right-to-left languages, and keep English subjects and sizes readable there 2026-10-28 05:16:29 +01:00
Linus Rath b9ecf7eeea fix: add the folder's actions to the mail list header, and Select all, Refresh and folder actions to the phone's menu without a keyboard hint in its search 2026-10-28 05:16:09 +01:00
Linus Rath e3f1ccce75 feat: add a Sort menu to the mail list header 2026-10-28 05:16:08 +01:00