Commit Graph
2865 Commits
Author SHA1 Message Date
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 a0165cdcd5 fix: open the Files ⋮ menus beside their button, above it when there is no room below, never over it 2026-11-04 13:36:13 +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 6a2bedc442 fix: name Ctrl+N and Ctrl+K in the desktop app's welcome tips instead of single keys 2026-11-04 13:10:26 +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 fd647f4535 fix: name the default address book "Contacts" in the contact import picker too 2026-11-04 12:57:19 +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 2efbaed728 fix: give quick compose's Move to the main window an arrow going in, not the exit full screen arrows 2026-11-04 12:54:21 +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 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 68bdaaac33 fix: hold the offline notice until the welcome tips are closed, also when they show in the reading pane 2026-11-04 12:41:37 +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 f2ff51a7d5 Merge branch 'feat/do-ux-p2-settings-misc' into feat/do-ux-p2-settings-fix 2026-11-04 12:39:55 +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 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 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
Linus Rath efdec45f52 fix: let the calendar buttons in settings wrap instead of running past the edge 2026-11-04 12:04:33 +01:00
Linus Rath 4333cc4080 fix: find time zones by abbreviation and list the exact offset first 2026-11-04 12:04:32 +01:00
Linus Rath 17350c45ca fix: give the out-of-office reply a short toolbar and date fields that say what empty means 2026-11-04 12:04:06 +01:00
Linus Rath 760a400074 feat: turn out of office off from the banner in the mail sidebar 2026-11-04 12:04:03 +01:00
Linus Rath 39e43de51e fix: offer to apply a filter rule to the Inbox from its dialog, not a passing toast 2026-11-04 12:04:01 +01:00
Linus Rath 3be99a4bf7 fix: count an event's length on its own clock across a daylight-saving switch 2026-11-04 12:01:27 +01:00
Linus Rath c50726a15a fix: run Message > Move to… on every selected message, and offer no Reply or Forward with several selected 2026-11-04 11:51:45 +01:00
Linus Rath 4f1b628f04 fix: keep the found server on Change, focus the field that needs input, and make Sign in the main button once a password is typed 2026-11-04 11:40:59 +01:00
Linus Rath d6eacc3512 fix: put new tasks in your own list, not a colleague's shared one 2026-11-04 11:38:04 +01:00
Linus Rath be57f23bf6 fix: say when merging contacts left a card behind, and don't let Undo copy it 2026-11-04 11:36:52 +01:00
Linus Rath bdf25e4183 fix: keep a contact's PO box or text-only address when another address is edited 2026-11-04 11:34:51 +01:00
Linus Rath 1eaae8ec30 fix: keep another account's event in that account when it's edited or deleted 2026-11-04 11:33:37 +01:00
Linus Rath 757dbdc1e5 test: open calendar delete and clear from the row's ⋮ in the settings tests
The settings pass tested the hover icons for delete, clear and edit;
pim-20 replaced them with one Edit… button and a ⋮ menu, so the tests
now go through those.
2026-11-04 11:29:54 +01:00
Linus Rath 4e662d8a60 fix: give "Show the app" a key the composer doesn't use, and refuse the app's own keys for global shortcuts 2026-11-04 11:29:34 +01:00
Linus Rath a415db9bac Merge branch 'feat/desktop-offline' into feat/do-ux-pim-fixes
# Conflicts:
#	stores/settings-store.ts
2026-11-04 11:10:15 +01:00
Linus Rath b8e9d76f0e Merge branch 'feat/do-ux-pim-menu' into feat/do-ux-pim-fixes 2026-11-04 11:09:47 +01:00
Linus Rath c08e9e56fb Merge branch 'feat/do-ux-pim-files' into feat/do-ux-pim-fixes 2026-11-04 11:09:45 +01:00
Linus Rath 71abb5216f Merge branch 'feat/do-ux-pim-cimport' into feat/do-ux-pim-fixes
# Conflicts:
#	components/contacts/contact-list.tsx
#	components/contacts/contacts-app.tsx
2026-11-04 11:09:40 +01:00
Linus Rath 2cb70d475e Merge branch 'feat/do-ux-pim-contact' into feat/do-ux-pim-fixes 2026-11-04 11:09:24 +01:00
Linus Rath e25d3e1e56 fix: keep a contact's address as stored when other fields change, and lay addresses out by country 2026-11-04 11:06:40 +01:00
Linus Rath f39f10d593 fix: mark the contact a menu is for, and no member on a group's page 2026-11-04 11:05:37 +01:00
Linus Rath 3df3b800f8 fix: wrap a long contact name to two lines with the full name on hover 2026-11-04 11:04:28 +01:00
Linus Rath 08767b3b77 fix: leave the app's own Trusted Senders book out of the Contacts sidebar 2026-11-04 11:03:34 +01:00
Linus Rath b04292ff4d feat: merge duplicate contacts and list possible duplicates
The contact menus offered "Duplicate", which made more copies. They now
offer "Merge with…", the selection bar has "Merge…" for two or more
contacts, and a "Possible duplicates (n)" line over the list opens a view
that groups cards with the same name, email address or phone. The test
that expected "Duplicate" in both menus now expects "Merge with…", and
the test for a failed duplicate became tests for merging.
2026-11-04 11:02:52 +01:00
Linus Rath 629ba34419 fix: put rarely used contact fields under More fields and mark dialog items with …
The contacts-app tests now click the new Import contacts… label (key import_menu) instead of import.title.
2026-11-04 11:02:17 +01:00
Linus Rath e5dc1dd247 feat: ask Replace, Keep both or Skip when an upload's name exists in Files
An upload over a name that is taken in the target folder used to add
"name (1)" without a word. Every upload path (picker, drag and drop, the
drop overlay, folder upload) now asks per name, with "Do this for all n
conflicts" when there are several:
- Replace gives the existing node the new blob, so it keeps its id,
  shares and links; for a folder it merges into the existing one and
  replaces files of the same name.
- Keep both numbers the new one, as before.
- Skip leaves it out; Cancel stops the whole upload.

Also in Files:
- A file with no preview and no office editor opens a pane with its
  icon, size and Download instead of downloading at once, and in the
  desktop app also Open in default app (the attachment Edit path). The
  item menu gets Open for such files, and Open in default app in the
  desktop app.
- Enter opens the row Tab put the focus on.
- After sharing with someone new, a toast offers Send a message, which
  opens the composer to them with a link to the file.
- The empty folder's buttons read Upload files... and New folder..., as
  the menus do.
2026-11-04 11:01:25 +01:00
Linus Rath fae888728b fix: hide the line of the week scrolled under the month header at 150 % 2026-11-04 11:00:58 +01:00
Linus Rath e120a28817 fix: open files on double-click so the preview stays open, and cut long names in the middle
A file's name in the list was a link that opened it on the first click,
so the second click of a double-click landed on the preview's backdrop
and closed it again. Names are plain text now in list and grid view: a
click selects, a double-click or Enter opens, a tap opens on touch. A
backdrop click in the first 400 ms after a preview opens is ignored.

Grid tiles cut long names in the middle and keep the end and the
extension (IMG_20250...1003.png), with the full name as the tooltip.

Two tests change: the shared-folders test clicked a name to open it,
and the image preview test closed it on a click right after opening;
both now follow the new behaviour.
2026-11-04 10:57:59 +01:00
Linus Rath 0c6782e004 fix: show every week of the month on one screen, with +n more for full days 2026-11-04 10:57:58 +01:00