Commit Graph
2595 Commits
Author SHA1 Message Date
Linus Rath 14f388ee8a Merge branch 'feat/desktop-offline' into feat/do-links-verify 2026-11-04 15:59:40 +01:00
Linus Rath d6d8f638f8 fix: open mail links that carry a stray percent sign 2026-11-04 15:59:22 +01:00
Linus Rath d3168b33c1 fix: leave a file's preview open while its import opens, so the move to contacts or calendar holds 2026-11-04 15:19:08 +01:00
Linus Rath 22edfecddf fix: go to the contacts or calendar import from a file's preview instead of staying in Files 2026-11-04 15:05:01 +01:00
Linus Rath e5568ba23b Merge branch 'feat/desktop-offline' into feat/do-ux-p2-pim-fix 2026-11-04 14:07:47 +01:00
Linus Rath 74ce0d2587 Merge branch 'feat/do-ux-p2-pim-cm' into feat/do-ux-p2-pim-fix
# Conflicts:
#	components/files/files-sidebar.tsx
2026-11-04 14:07:43 +01:00
Linus Rath 6a88bb90fa Merge branch 'feat/do-ux-p2-pim-files' into feat/do-ux-p2-pim-fix 2026-11-04 14:07:26 +01:00
Linus Rath cd2c017918 Merge branch 'feat/do-ux-p2-pim-calx' into feat/do-ux-p2-pim-fix 2026-11-04 14:07:24 +01:00
Linus Rath 9d186e4af5 fix: say that a series invitation repeats, answer the whole series, and name the weeks declined on their own 2026-11-04 14:03:08 +01:00
Linus Rath 77986dddc9 fix: mark a repeated address within an imported file as a duplicate, and end the contact import with a toast that shows them 2026-11-04 13:59:29 +01:00
Linus Rath a39aacc444 fix: take dropped files whose items carry no file system entry 2026-11-04 13:58:34 +01:00
Linus Rath 179d3994bb feat: refresh Calendar, Contacts and Files with F9 in the desktop app, and move through the calendar from Go 2026-11-04 13:57:46 +01:00
Linus Rath 546b76b47e feat: open saved messages from Files, offer their imports there, take drops on a folder row, and step through files without a preview 2026-11-04 13:56:15 +01:00
Linus Rath 81f8bf6d60 feat: save a document edited in its program back into Files, and ask Keep both or Replace when it changed there meanwhile 2026-11-04 13:56:15 +01:00
Linus Rath b70ab8a50c feat: upload files dropped on the Files screen without asking, and add several .ics or .vcf in one import 2026-11-04 13:56:09 +01:00
Linus Rath 109866dd4c fix: tell two accounts' calendars apart, keep events out of task lists, and start new events in the account on screen
Calendar, task list and address book choosers are grouped under each
account's address, the sidebar and Settings head each account by its
address, and a second account's default calendar gets a colour of its
own. Events can no longer go into a task list from the editor, quick
create or import; the task editor's "List" offers task lists only. New
events preselect the active account's last-used or default calendar,
and the event menu has "Copy to <address>" for the other account.

Two task editor tests change their fixtures and label: the select now
lists task lists only and is labelled "List", so plain calendars no
longer appear in it (pim-p2-13).
2026-11-04 13:48:47 +01:00
Linus Rath 0bd55c0f80 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix 2026-11-04 13:47:12 +01:00
Linus Rath 1b7b689662 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix
# Conflicts:
#	components/ui/first-start-notice.tsx
2026-11-04 13:46:47 +01:00
Linus Rath 5bb9887961 test: load the OS command handler once before the launch tests, so a busy machine doesn't time the first one out 2026-11-04 13:43:27 +01:00
Linus Rath b588954ea4 feat: pick an event's time zone by city with search, and open Duplicate as an unsaved copy at the same time
The editor's time zone test now picks a zone through the searchable picker instead of a select's change event, since the select is gone.
2026-11-04 13:42:36 +01:00
Linus Rath 6975f96a4b Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix
# Conflicts:
#	components/email/email-viewer.tsx
#	components/email/thread-conversation-view.tsx
#	components/mail/mail-app.tsx
#	components/ui/toast.tsx
#	lib/keyboard-shortcuts/mail.ts
#	lib/window-controls-overlay.ts
2026-11-04 13:37:49 +01:00
Linus Rath 09335c76c5 Merge branch 'feat/do-ux-p2-settings-fix' into feat/desktop-offline
# Conflicts:
#	components/settings/__tests__/notification-settings.test.tsx
2026-11-04 13:32:16 +01:00
Linus Rath 0f2fa7bafe Merge branch 'feat/do-ux-p2-compose-fix' into feat/desktop-offline 2026-11-04 13:28:56 +01:00
Linus Rath 49286649dd Merge branch 'feat/do-ux-p2-settings-fix' into feat/do-ux-p2-pim-fix
# Conflicts:
#	components/settings/__tests__/notification-settings.test.tsx
2026-11-04 13:27:06 +01:00
Linus Rath 816e4dc24e fix: measure the window controls again after a resize, so the desktop toolbar keeps its buttons at 800 px 2026-11-04 13:22:00 +01:00
Linus Rath 6ec867b4e0 fix: count a pop-out's undo send from the delay the user picked 2026-11-04 13:16:44 +01:00
Linus Rath 063d9c9c47 fix: drop the scheduled mark from a reply in the conversation once it has gone out 2026-11-04 13:10:38 +01:00
Linus Rath 0b16295b45 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-desktop-fix 2026-11-04 13:07:35 +01:00
Linus Rath 19034489a6 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix 2026-11-04 12:57:11 +01:00
Linus Rath b1ae1cc8c5 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-settings-fix
# Conflicts:
#	components/calendar/event-modal.tsx
#	components/calendar/task-list-view.tsx
#	components/calendar/task-modal.tsx
#	components/email/calendar-invitation-banner.tsx
2026-11-04 12:56:40 +01:00
Linus Rath c657c4c5ba fix: keep unfolded messages readable when the conversation is read again after a send 2026-11-04 12:55:41 +01:00
Linus Rath 60c7efad10 fix: call the default calendar and address book "Calendar" and "Contacts" everywhere, as Settings does
Stalwart names them "Stalwart Calendar (<address>)" and "Stalwart
Address Book (<address>)". Settings already showed plain names; the
sidebars, pickers, the event and task editors, invitations, print and
confirm texts now use the same helper. A colleague's shared default keeps
whose it is. Two test fixtures used Stalwart's default name for a long or
own book name and now use a name the user chose, since a default name is
no longer shown as is.
2026-11-04 12:51:03 +01:00
Linus Rath 07b6cae9e8 fix: call the unread count the taskbar icon's in the desktop app, and write "Not sent:" with a colon 2026-11-04 12:50:52 +01:00
Linus Rath 7186f89de7 test: check the desktop menus get File > Unlock in the app's language 2026-11-04 12:44:04 +01:00
Linus Rath b7686552a3 fix: translate File > Unlock in the desktop app's menus 2026-11-04 12:43:18 +01:00
Linus Rath 98f814fced fix: open a mail link from another program from the default account with no question, and drop "protocol link" from the account picker 2026-11-04 12:42:30 +01:00
Linus Rath efd5b70d53 Merge branch 'feat/desktop-offline' into feat/do-ux-p2-compose-fix 2026-11-04 12:41:13 +01:00
Linus Rath 1417c38a20 Merge branch 'feat/do-ux-p2-compose-send2' into feat/do-ux-p2-compose-fix 2026-11-04 12:41:03 +01:00
Linus Rath 358ba58b39 Merge branch 'feat/do-ux-p2-compose-drafts' into feat/do-ux-p2-compose-fix 2026-11-04 12:40:56 +01:00
Linus Rath badbd616df Merge branch 'feat/do-ux-p2-settings-search' into feat/do-ux-p2-settings-fix 2026-11-04 12:39:59 +01:00
Linus Rath 641489775b Merge branch 'feat/do-ux-p2-settings-ident' into feat/do-ux-p2-settings-fix 2026-11-04 12:39:57 +01:00
Linus Rath 01f2860613 feat: edit each address's signature right on the Composing settings page 2026-11-04 12:39:11 +01:00
Linus Rath 3a2be9a7d4 fix: edit the name recipients see on the Account page and stop cutting account addresses
Settings > Account had a "Display name" that edited Stalwart's account
description, while mail went out with the identity's name, so changing
it changed nothing people saw. The page now shows "Your name", the
primary address's name, and saves it to that identity. The account
switcher and avatars take the same name; the principal description is
only used for an account without an identity name. The address editor
calls the field "Your name" too, and "identities" are "addresses" in
the Account section and its dialog, said once instead of twice.

Logged-in accounts show the server only for an account in trouble or
one sharing its address with another, with no drag hint or arrows for a
single account. The switcher wraps addresses instead of cutting them and
has no remove button per row; an account you're not in is removed from
Settings > Account.

Changed tests: auth-store-display-name now expects the identity name to
win over the principal; account-switcher-remove expects no remove
button on the rows; settings-editors-unsaved uses the renamed "Add
address" button and the "Your name" label, which has no placeholder.
2026-11-04 12:38:38 +01:00
Linus Rath 4b426e1469 fix: find the desktop app's own settings in search, and drop browser words from its pages
Settings search knew none of the desktop app's rows, short words matched
a dozen descriptions, and the app's Notifications, Privacy and Backup
pages talked about websites, browsers and Safari.

- Search indexes the app's rows when its bridge is there (tray, start at
  sign-in, menu bar, quiet hours, taskbar, default mail app, updates,
  developer tools, usage info, crash reports) with translated synonyms,
  and the browser-only push rows only in a browser. New synonyms for
  threads, block images, dark mode, timezone, reading pane, week start,
  empty trash and quiet hours. A single word of up to five letters looks
  only in names and synonyms, so "about" finds About.
- In the app, Notifications has no push relay section; one row says the
  app tells about new mail while it runs, with a link to General. Its
  taskbar and quiet hours section is "On this computer". Privacy has no
  relay link there, Backup says "other devices".
- In a browser that can't push, two sentences, and the home screen hint
  only on iPhone and iPad.
- Several accounts get one notification switch each instead of a
  checklist with "Enable for selected" and "Disable for selected".
- Developer tools show only with advanced settings on.
- "Two-step sign-in" heads its section, "Pictures from company websites"
  replaces "Sender favicons", the Privacy relay link no longer points to
  a hidden choice, Offline warns about disk encryption once, and the
  reset confirm says what stays and whether other devices change. A
  reset keeps the choice to sync settings.

Changed assertions: account-security-signin looks for the heading by its
new name, settings-search expects the renamed rows, multi-account-push
tests the switches that replace the checklist.
2026-11-04 12:38:35 +01:00
Linus Rath 90e959a092 fix: show a sent reply in the open conversation at once, keep it out of Sent and Scheduled during Undo, and bring an undone reply back where it was written 2026-11-04 12:35:50 +01:00
Linus Rath d03d4a0b78 fix: show whole rows of attachments and keep uploading files in their place
The attachment order test now expects uploading files where they were
added: moved to the front, a big upload jumped out of sight once done.
2026-11-04 12:33:28 +01:00
Linus Rath 03ea1ab1aa fix: open files sent from Explorer's Send to and Open with in a compose window, leaving the main window where it is 2026-11-04 12:32:54 +01:00
Linus Rath df62335545 feat: name the desktop app's windows in the Window menu by folder and account, subject or New message 2026-11-04 12:25:33 +01:00
Linus Rath 801aa51b24 fix: discard a draft with the bin at once and offer Undo
The bin no longer asks "Discard draft?". The discard tests now expect no
question: the first one checks the late delete and the Undo instead of
the dialog, and the upload test that cancelled the question is gone,
since there is no question to cancel.
2026-11-04 12:20:42 +01:00
Linus Rath 5e34dc59ab fix: name keys in the app's language in menus, hints and the shortcut help (Strg, Umschalt, Entf in German) 2026-11-04 12:09:08 +01:00