Commit Graph
6 Commits
Author SHA1 Message Date
Linus Rath 91b237330e Merge branch 'feat/desktop-offline' into feat/do-ux-settings-fixes
# Conflicts:
#	components/settings/desktop-os-settings.tsx
#	components/settings/notification-settings.tsx
#	components/settings/protocol-handler-settings.tsx
2026-11-04 08:35:53 +01:00
Linus Rath b3c9d99df7 fix: make the General and Notifications settings say what they do
The usability pass of 2026-11-04 found the General and Notifications
pages hard to read, and the desktop app showing browser-only rows.

- Time zone: a searchable list by city and offset, common zones
  first, with today's city names (Kolkata, Kyiv, Ho Chi Minh City).
  The stored value stays the IANA id the runtime knows.
- First day of the week: "First day of the week in calendars".
- Desktop app: no browser link handlers (the app has its own "Default
  mail app" row), no usage info on General (it moves to Privacy),
  time zone and app lock texts without the browser and tabs.
- Taskbar flashing and quiet hours move to Notifications.
- "Windows" is now "App windows".
- Notifications: "Sound for new mail", "Sound for reminders", a
  "Sound" section with a "Tone" row, "Notifications when Bulwark is
  closed" with "Turn on for this device", a short badge description.
- Link handlers: "Open email links in Bulwark" with "Use Bulwark for
  email links", no "Technically" sentence.
- App lock: "The PIN stays on this device.", the protection text
  behind "What does this protect?", "1 hour" and "4 hours", one line
  in the PIN dialog instead of repeating its title.
- Usage info names "the app's version numbers", as the desktop's
  first run does, instead of the Node version.

Test changes: the telemetry wording test looked for "Node version",
which the text no longer names; the search-anchor test now fills in
{appName} before comparing, as the search index does, because row
labels name the app.
2026-11-04 07:30:54 +01:00
Linus Rath 364fc516dc fix: hide the browser's link handlers in the desktop app and call its window settings App windows 2026-11-04 06:29:25 +01:00
ghoztyandClaude Opus 5.5 30f51e5ca4 feat: name the app with the configured APP_NAME in user-facing strings
Some user-facing strings still said "Bulwark" on a deployment with its own
APP_NAME: Settings > General > Default apps (protocol handlers), the "Open
Bulwark" notification, the rate-limit banner and toast, the plugin connect
dialog, one plugin permission text and the connector page.

These strings now take an {appName} placeholder, filled by productName():
the configured APP_NAME, or "Bulwark" when it is unset or the default
"Webmail" (the same rule as the TOTP issuer and the About card, #1160).
A stock install reads as before.

The settings search (the settings page and api.app.searchSettings) indexes
these texts with the name filled in, so "bulwark" or the configured name
finds Default apps and no result carries the raw placeholder.

Locales: the 13 keys in every locale that has "Bulwark" in them. Languages
that inflect the name (cs, et, hu, ko, ro, sk, tr) use a neutral form such
as "{appName} uygulamasında" instead of a declined "Bulwark'ta"; a native
check of those is welcome.

Not changed on purpose: the mobile app, push relay, Lite, demo and admin
texts, which speak about Bulwark itself.

Closes #1314

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 04:14:54 +03:00
Linus Rath a591ae0683 refactor: merge language, default apps and the tour into a general page 2026-10-19 17:51:26 +02:00
Lucas Gaitzsch 3f444a8912 Feature/protocol handlers
* Added account selection for protocol links when multiple connected accounts are available, including mailto: links
* Added support for handling mailto: links in an already-open PWA/session instead of always opening a new tab
* Added webcal: protocol handling for calendar links
* Added account selection for webcal: links when multiple calendar-capable accounts are connected
* Added an import-or-subscribe choice for detected webcal calendars
* Added protocol handler settings for registering mail and calendar handlers and choosing the open mode
* Added service worker/session coordination for passing protocol requests between browser/PWA contexts
* Added tests and translations for the new protocol handler flows
2026-05-12 20:49:05 +02:00