Commit Graph
759 Commits
Author SHA1 Message Date
Linus Rath 08f25506d4 Merge branch 'feat/org-teaminbox' into feat/org-features 2026-10-28 08:26:48 +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 9304557819 fix: look up another signed-in account for the external mail checks only when an admin turned them on 2026-10-28 08:07:55 +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
Linus Rath 795faceee7 Merge branch 'feat/org-thirdparty' into feat/org-features 2026-10-28 05:51:22 +01:00
Linus Rath 00ea203f4f refactor: describe the sending identity and account once for every send check 2026-10-28 05:50:17 +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 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 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 1202a13720 fix: judge external mail by the message's own account and the sending account in several-account setups 2026-10-28 05:11:24 +01:00
Linus Rath 60167f752f fix: label mail as External when any sender is outside or has no domain, and show the domain on a tap 2026-10-28 05:09:35 +01:00
Linus Rath 836dcba66e fix: don't count senders whose images the user allowed as contacts for the external recipient confirm 2026-10-28 05:09:03 +01:00
Linus Rath 2ace501871 Merge branch 'feat/org-features' into feat/org-signatures 2026-10-28 04:51:22 +01:00
Linus Rath d128503db5 fix: use the organisation policy of the account a message is sent from 2026-10-28 04:32:39 +01:00
Linus Rath b756111097 fix: add the disclaimer below plugin footers and before a plugin signs or encrypts the message 2026-10-28 04:25:25 +01:00
Linus Rath 7bbfe61783 fix: keep keys pressed in the external recipient confirm away from the mail shortcuts 2026-10-28 04:18:11 +01:00
Linus Rath 490818adee fix: keep signature plugins from changing a locked organisation signature 2026-10-28 04:18:01 +01:00
Linus Rath 73c12d03eb fix: ask about every external recipient but the identity's own Bcc, trust only the identity's From, and queue a second question 2026-10-28 04:15:12 +01:00
Linus Rath da5d7baf51 fix: swap the signature in an open composer when the organisation policy or the user's details change 2026-10-28 04:12:15 +01:00
Linus Rath ecbbe137c4 fix: wait for sends and keep quick replies as drafts before an automatic sign-out 2026-10-28 04:06:05 +01:00
Linus Rath b945a789f9 fix: match internationalised domains in either form and name the domains an admin typed wrong 2026-10-28 04:05:46 +01:00
Linus Rath 3fbd5a7818 fix: check the signature and disclaimer in each part on its own so neither goes out twice 2026-10-28 04:00:25 +01:00
Linus Rath 65e83e4b0d fix: show the session warning above every overlay and count the server's sign-in time 2026-10-28 03:53:56 +01:00
Linus Rath f9a04126d4 fix: keep a quick reply's text when the user goes back instead of sending 2026-10-28 03:47:40 +01:00
Linus Rath 0154e24ffc feat: add an admin disclaimer to every sent message 2026-10-28 03:17:03 +01:00
Linus Rath 65e3d0d2d4 feat: let admins set an organisation signature with user details per domain or group #908
Admins write an HTML and a plain-text signature with placeholders on
Organisation > Signatures, per scope. Users fill in the details it asks
for once, under Settings > Account. Without a lock it is the default for
addresses without a signature of their own; locked or hidden, it
replaces every signature.

- `lib/org-signature.ts` fills the templates: values escaped, lines whose
  placeholders are all empty dropped
- the composer applies it right before the plugin signature, so new mail,
  replies, forwards, re-opened drafts, plain text and identity swaps all
  take it the way they take an identity signature; quick reply too
- a send finaliser puts a locked signature back once when it was deleted
- the identity editor shows the filled-in signature read-only with "Set
  by your organisation" when locked, and no editor when hidden
- `signatureDetails` is a synced setting
2026-10-28 02:23:55 +01:00
Linus Rath 2855ca0010 feat: confirm before sending to recipients outside the organisation 2026-10-28 01:59:13 +01:00
Linus Rath 79c697a935 feat: let an automatic sign-out save open and minimised drafts first 2026-10-28 01:55:15 +01:00
Linus Rath b504e39b63 feat: label mail from outside the organisation 2026-10-28 01:53:39 +01:00
Linus Rath 42f52ab066 refactor: send composer and quick reply mail through one send path 2026-10-28 01:08:56 +01:00
Linus Rath 7025548ba1 fix: drop the composer footer labels when the composer itself is narrow #1375 2026-10-27 23:27:51 +01:00
Linus Rath 87817f545f fix: stop flagging invitations from users on your own domains as unverified #1374 2026-10-27 23:26:14 +01:00
Linus Rath ec295ad59f Merge pull request #1384 from VasilisNtovolos/fix/bulk-delete-partial-results
fix: reconcile confirmed permanent bulk deletions
2026-10-27 23:14:11 +01:00
Linus Rath be5fc12622 feat: let each translation list its own placeholder fill-in words 2026-10-27 23:03:41 +01:00
Linus Rath 011ff0e93a feat: warn before sending a message with unfilled placeholders 2026-10-27 22:30:33 +01:00
VasilisNtovolos ac99c68ef3 fix: reconcile confirmed permanent bulk deletions 2026-10-27 14:51:38 +02:00
Linus Rath 9de2efb722 fix: open a shared or group account's message from its link instead of the own message with the same id #1351 2026-10-26 20:01:11 +01:00
Linus Rath 2f8b4863ff Merge pull request #1338 from HOLOEYE-JZ/feat/plugin-search-results 2026-10-26 19:32:56 +01:00
Linus Rath edba184bc0 fix: keep an Outlook-style reply from loading the quoted message's remote images 2026-10-26 19:30:18 +01:00
Linus Rath 12ee24a81a Merge pull request #1355 from maxhaomh/fix/outlook-quote-lines 2026-10-26 19:28:56 +01:00
Linus Rath e99cce05fe Merge pull request #1370 from maxhaomh/feat/disable-quick-reply 2026-10-26 19:24:49 +01:00
Linus Rath 7677b87c5e Merge pull request #1373 from motofix/fix/1371-download-name-slash 2026-10-26 19:23:56 +01:00
Julien Béti 460343d86d fix: show inline images whose part name is a path #1371 2026-10-26 18:34:57 +01:00
Max Hao 7216089629 feat: add quick reply feature with toggle in settings and tests 2026-10-26 11:40:47 -04:00
Linus Rath ceaa9cea39 fix: highlight only the open message in lists that mix accounts, not another account's message with the same id 2026-10-26 16:11:52 +01:00
Linus Rath 0b917d6262 fix: mark the replied, forwarded or receipted message as answered in its own account, not another account's message with the same id 2026-10-26 16:11:52 +01:00
Linus Rath f0392a6705 fix: check a meeting reply's sender against the attendee who answers, not the organizer 2026-10-26 15:15:58 +01:00
Linus Rath 8c9cf8e63e test: check draft account and threading headers in createDraft's options after the merge 2026-10-26 12:26:57 +01:00
Linus Rath b038c82dcc fix: only offer to apply a counter proposal sent by one of the meeting's participants 2026-10-26 12:25:31 +01:00