Linus Rath
8c38d44448
Merge branch 'main' of https://github.com/bulwarkmail/webmail
2026-10-28 18:06:09 +01:00
Linus Rath
d10d6b60ce
fix: tell admins the OAuth setup needs a webmail sign-in and disable it until there is one
2026-10-28 17:40:26 +01:00
Linus Rath
90ec6748ac
fix: keep the translations out of every page of the Lite export
2026-10-28 17:16:35 +01:00
Linus Rath
8108249a35
Merge pull request #1406 from HOLOEYE-JZ/feat/plugin-ui-navigate
...
# Conflicts:
# app/(main)/[locale]/layout.tsx
2026-10-28 17:02:42 +01:00
Linus Rath
4421c3ce7e
fix: spin refresh icons the way their arrows point
2026-10-28 17:00:50 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Jacob Zeitz
ba45d0f8b9
feat(plugins): api.ui.openPage moves the tab to one of the plugin's own pages
2026-10-28 13:50:12 +01:00
Linus Rath
a2877173a1
fix: drop the admin save bar when a field is put back to its saved value, empty included
2026-10-28 12:52:23 +01:00
Linus Rath
326aac46b8
fix: report an admin branding upload without "successfully"
2026-10-28 10:52:40 +01:00
Linus Rath
1934584eb6
fix: show short, accurate placeholders with a tooltip on the admin branding fields of a domain
2026-10-28 10:26:32 +01:00
Linus Rath
e3fd576543
fix: hide the next heartbeat and consent date in admin usage stats while heartbeats are off
2026-10-28 10:24:34 +01:00
Linus Rath
62ab48aee4
fix: ask "discard changes?" with keep editing and discard in settings editors and the admin pages, as in calendar and contacts
2026-10-28 10:19:10 +01:00
Linus Rath
b5e92ba176
Merge branch 'feat/org-features' into feat/org-templates
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 07:10:25 +01:00
Linus Rath
87e41f0403
feat: share team templates in a group mailbox
2026-10-28 06:24:46 +01:00
Linus Rath
aa8dfb783b
fix: show the variable, URL and path in the setup wizard texts as code
2026-10-28 06:20:40 +01:00
Linus Rath
47c47b4f08
feat: keep personal templates in the account on Stalwart 1.0
2026-10-28 06:13:47 +01:00
Linus Rath
57065d7ef2
feat: show an organisation template library from the admin
2026-10-28 05:53:50 +01:00
Linus Rath
795faceee7
Merge branch 'feat/org-thirdparty' into feat/org-features
2026-10-28 05:51:22 +01:00
Linus Rath
a06c1531a5
feat: show the setup wizard in the browser's language, translated into all 29 languages
2026-10-28 05:49:37 +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
9e809a31db
Merge branch 'feat/org-features' into feat/org-thirdparty
2026-10-28 05:27:58 +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
2ace501871
Merge branch 'feat/org-features' into feat/org-signatures
2026-10-28 04:51:22 +01:00
Linus Rath
6dbaa0fd30
Merge branch 'main' into ux/settings-admin
2026-10-28 04:50:27 +01:00
Linus Rath
5335c409a7
fix: translate the page a connector link lands on when it can't be opened
2026-10-28 04:37:46 +01:00
Linus Rath
89f0cd7e92
fix: say that {company} takes the branding of the web address Bulwark is opened on
2026-10-28 04:37:24 +01:00
Linus Rath
1a747ac9dd
feat: limit the page's CSP to the configured hosts with no third-party traffic #903
2026-10-28 04:30:41 +01:00
Linus Rath
031d94635c
refactor: keep the outgoing host descriptions out of the browser bundle and scan every URL form #903
2026-10-28 04:30:23 +01:00
Linus Rath
c9975eef3f
fix: report admin results in the app's toasts instead of a banner under the page header
2026-10-28 04:05:51 +01:00
Linus Rath
51b678dc19
fix: let every admin switch on a page with a save bar wait for Save, plugins, themes and telemetry included
2026-10-28 03:59:44 +01:00
Linus Rath
5d013f7669
fix: give Calendar, Contacts, Files and Settings their own error boundary and show one error fallback with Try again everywhere
2026-10-28 03:56:04 +01:00
Linus Rath
f4cade224c
fix: ask in the app's own dialogs instead of browser confirm boxes in the admin panel
2026-10-28 03:54:36 +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
9ee767f576
fix: show a translated 404 to a signed-in user who mistypes a URL instead of the login page
2026-10-28 03:52:40 +01:00
Linus Rath
5ab27a996d
fix: ask before browser Back or the back gesture leaves an admin page with unsaved changes
2026-10-28 03:50:06 +01:00
Linus Rath
defe4e93f3
fix: bind the sign-in time to the refresh token and count unstamped sessions from a fixed time
2026-10-28 03:42:19 +01:00
Linus Rath
b5dcb04c53
fix: mirror the login page's theme button and password toggle, and the rail badges, in right-to-left languages
2026-10-28 03:36:01 +01:00
Linus Rath
57c283e730
fix: translate the login page's subtitle, theme menu and version details, and open the version details from the keyboard
2026-10-28 03:35:12 +01:00
Linus Rath
fd3e66e64b
fix: ask for a fresh 2FA code in every app, not only in Mail, and translate the prompt
2026-10-28 03:27:03 +01:00
Linus Rath
0154e24ffc
feat: add an admin disclaimer to every sent message
2026-10-28 03:17:03 +01:00
Linus Rath
cefb20db4e
test: give the plugin proxy route test the config reader the mode needs #903
2026-10-28 03:10:14 +01:00
Linus Rath
295c0d6c49
fix: show menus and dialogs at once with reduced motion on, so they take focus
2026-10-28 02:31:58 +01:00
Linus Rath
6e5d8faec6
feat: refuse to restore or renew sessions older than the admin-set maximum length
2026-10-28 02:30:32 +01:00
Linus Rath
92c9110f3c
feat: show the third-party traffic switch and what stays reachable in Organisation > Security #903
2026-10-28 02:24:13 +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
553f1e9149
feat: add a switch that stops all third-party traffic #903
2026-10-28 02:19:06 +01:00
Linus Rath
45cc6988e0
feat: sign out after an admin-set idle time or session length, with a warning first
2026-10-28 02:18:07 +01:00
Linus Rath
2855ca0010
feat: confirm before sending to recipients outside the organisation
2026-10-28 01:59:13 +01:00
Linus Rath
a4d8192f9c
fix: point the reply and forward arrows the right way in right-to-left languages
2026-10-28 01:49:22 +01:00
Linus Rath
03304a3cdc
fix: show toasts above the phone's bottom bars, newest at the bottom, and let a swipe dismiss them
2026-10-28 01:48:36 +01:00