Linus Rath
785c19fe8c
fix: show the version footer in the settings sidebar only with advanced settings on
2026-10-28 19:57:01 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Linus Rath
6724b04701
fix: put address book actions in settings behind a ⋮ menu on the phone, like calendars
2026-10-28 13:02:19 +01:00
Linus Rath
f441f3e6d1
fix: show calendar, subscription and account addresses in settings left to right in arabic
2026-10-28 12:58:10 +01:00
Linus Rath
b957bbcd8a
fix: fit settings > calendar to touch screens and hide import and subscribe in the demo
2026-10-28 12:56:51 +01:00
Linus Rath
5be162d604
fix: name the calendar, contacts and files settings pages apart from the apps in the command palette
2026-10-28 12:54:34 +01:00
Linus Rath
9bb94ebf62
fix: offer "go to <page>" for every settings page in the command palette, found by the settings search words
2026-10-28 10:51:01 +01:00
Linus Rath
5abc4a5334
fix: make the tag and address book row buttons and New tag full-size buttons with a touch hit area, and name each tag button after its tag
2026-10-28 10:44:18 +01:00
Linus Rath
8b2b77c349
fix: put the calendar row actions behind a ⋮ menu on the phone so names and the default badge fit, and make the row icons full-size named buttons
2026-10-28 10:41:08 +01:00
Linus Rath
161c9d1de3
fix: ask "delete address book?" with a question mark, like the other delete prompts
2026-10-28 10:23:16 +01:00
Linus Rath
41b0afff4b
test: expect the organisation lock note on a theme mode the admin locked
2026-10-28 10:20:15 +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
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
33ca8efb0f
fix: keep shared tags safe when members edit at once or the server fails
...
The first version wrote the whole tag list on every change, guessed a
group when the server wouldn't say, and treated a failed read like a
server without metadata. Now:
- Definitions are a map by tag id under `tags`, and each change patches
one tag (`metadata/org.bulwarkmail.tags/tags/<id>`), so two members
adding tags at once both keep theirs. Fields and colors this version
doesn't know survive. The `{ list }` and bare-array shapes are still
read and converted by the first save.
- Shared tags appear only for confirmed group principals. A failed
principal lookup keeps the user's own tags and asks again later.
- "No metadata advertised" (0.16) and "the read failed" are separate.
A failed read keeps the last good tags; a failed save keeps the change,
says so, and sends it with the next good read after the client's
pause.
- Push reloads wait for 5 s of quiet and skip the echo of our own save;
a returning tab reloads definitions only, and the scan for unnamed tags
runs once per sign-in and then at most every 30 minutes.
- The editor names its buttons after the tag, shows the delete warning
and 44 px buttons on phones, returns focus to the edit button, and
asks for Inbox rights only for confirmed groups.
2026-10-28 08:58:11 +01:00
Linus Rath
7f06ed7637
Merge branch 'feat/org-features' into feat/org-tags
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 08:14:39 +01:00
Linus Rath
ba6e6af014
feat: recover deleted items from Stalwart's archive #1319
2026-10-28 07:27:47 +01:00
Linus Rath
b049b6f470
feat: share tag names and colours in group mailboxes #1310
2026-10-28 06:43:46 +01:00
Linus Rath
82918fc7d7
Merge branch 'feat/org-features' into feat/org-delegates
...
# Conflicts:
# lib/admin/restriction-keys.ts
2026-10-28 06:30:09 +01:00
Linus Rath
f0539a33f6
feat: let admins limit every share dialog to read access with sharingRights
2026-10-28 06:27:49 +01:00
Linus Rath
d61511bdc1
Merge branch 'main' into ux/settings-admin
...
# Conflicts:
# components/settings/address-book-management-settings.tsx
2026-10-28 06:02:59 +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
f5f536f7c9
fix: one kind of button in the Files selection bar, a closable details panel on tablets, and a share dialog that takes the focus
2026-10-28 05:29:23 +01:00
Linus Rath
50620c2bdc
fix: use sentence case and one verb per action in Settings: New for creating, Save for saving
2026-10-28 05:18:32 +01:00
Linus Rath
7cb7aaff52
fix: give settings switches, jump chips, selects and search results a 44px touch target on the phone
2026-10-28 04:58:07 +01:00
Linus Rath
d0134c3f46
fix: name every icon button and switch in Settings for what it does
2026-10-28 04:50:27 +01:00
Linus Rath
ab3addefc3
fix: show the focus ring on the About card in the settings sidebar and name it by what it shows
2026-10-28 04:42:36 +01:00
Linus Rath
b45c914cf2
fix: give each settings page an h1 with its name on the desktop
2026-10-28 04:40:48 +01:00
Linus Rath
867ee3e828
fix: drop the Learn more button next to sub-addressing that opened the identity manager
2026-10-28 04:37:55 +01:00
Linus Rath
c833e24471
fix: cancel editing a tag with Escape
2026-10-28 04:35:41 +01:00
Linus Rath
b54d57065c
fix: name the settings jump chips after their section without gluing on the Advanced badge
2026-10-28 04:33:42 +01:00
Linus Rath
3e1024957f
fix: let every settings search result land on its row, match every word of a query, and turn on Advanced only for advanced rows
2026-10-28 04:31:53 +01:00
Linus Rath
a9c89ae7a2
fix: fail closed while the third-party switch is unknown or set as a string #903
2026-10-28 04:30:32 +01:00
Linus Rath
286c1bd7c9
fix: show the tag, calendar and address book row actions on touch screens and on keyboard focus
2026-10-28 04:13:01 +01:00
Linus Rath
c6f902dc32
feat: delete address books and contact categories from Settings
2026-10-28 04:11:23 +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
714d2b84da
fix: confirm resetting settings in a dialog and report backup results in toasts instead of alerts
2026-10-28 03:44:47 +01:00
Linus Rath
b30c2764f0
fix: confirm deleting folders, calendars, credentials and other things that can't come back in one dialog
2026-10-28 03:41:53 +01:00
Linus Rath
d70bf4ae74
fix: delete tags and filter rules at once with an Undo toast
2026-10-28 03:32:48 +01:00
Linus Rath
9d3ae2203f
fix: ask before the identity, filter rule and Sieve editors drop unsaved changes, and dim the whole window behind them
2026-10-28 03:18:52 +01:00
Linus Rath
5dded2243a
fix: save out of office changes as you make them, with date errors shown under the fields
2026-10-28 03:09:29 +01:00
Linus Rath
0f1d226d4c
fix: show folder names in the phone folder settings and move the row actions into a menu
2026-10-28 02:43:29 +01:00
Linus Rath
dc0fe7d980
fix: open the settings page a link names on the phone instead of the settings list
2026-10-28 02:33:09 +01:00
Linus Rath
6e97ca574d
fix: make switches that are off visible against the page
2026-10-28 01:50:56 +01:00
Linus Rath
0738f6f999
feat: say "Set by your organisation" next to settings an admin locked
2026-10-28 00:29:03 +01:00
Linus Rath
7da326b86e
fix: keep the server's path in the fallback CalDAV address
2026-10-26 15:15:58 +01:00
Linus Rath
cf2c27157d
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# components/contacts/contacts-app.tsx
# components/email/__tests__/composer-discard.test.tsx
# components/email/calendar-invitation-banner.tsx
# components/email/email-composer.tsx
# components/mail/mail-app.tsx
# components/pro/pro-compose-tab-body.tsx
# components/pro/pro-email-tab-body.tsx
# components/ui/__tests__/avatar.test.tsx
# components/ui/avatar.tsx
# hooks/use-mailbox-drop.ts
# lib/__tests__/calendar-alerts.test.ts
# lib/__tests__/jmap-calendar-tasks.test.ts
# lib/__tests__/jmap-send-threading.test.ts
# lib/demo/demo-client.ts
# lib/demo/fixtures/calendars.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/web-push.ts
# stores/__tests__/contact-store.test.ts
# stores/__tests__/email-store-thread-key.test.ts
# stores/calendar-store.ts
# stores/contact-store.ts
# stores/email-store.ts
2026-10-26 10:14:12 +01:00
Linus Rath
31f4a4b4b3
feat: show one row of themes with a show all button
2026-10-19 20:49:24 +02:00
Linus Rath
401d49471e
feat: let settings links name a section and add a jump row to each page
2026-10-19 18:14:01 +02:00
Linus Rath
a615f96876
refactor: regroup the settings sidebar into mail and apps with plugin pages under add-ons
2026-10-19 18:07:48 +02:00
Linus Rath
d86aa1d12b
refactor: group security into sign-in, other apps and devices, and encryption
2026-10-19 17:46:42 +02:00