Commit Graph
1247 Commits
Author SHA1 Message Date
Linus Rath 8ef7ec022f fix: deliver a plugin OAuth callback only to the plugin that started the flow 2026-10-14 03:04:17 +02:00
Linus Rath fe4f809092 fix: keep a plugin side panel from squeezing the message too narrow to read 2026-10-14 03:00:46 +02:00
Linus Rath 3bfc0e69d0 fix: check attachments a plugin adds to the composer and keep callbacks out of shouldShow 2026-10-14 02:58:47 +02:00
Linus Rath 03e9846758 fix: stop remounting message-details plugin slots on every render 2026-10-14 02:56:15 +02:00
Linus Rath 2adb1e2b12 fix: size toolbar plugin slots to their content and give composer plugin buttons their own row 2026-10-14 02:53:46 +02:00
Linus Rath f048db7b52 fix: count each plugin hook failure once and keep a plugin that kept failing turned off 2026-10-14 02:33:45 +02:00
Linus Rath 8f70951555 fix: give plugins their default settings and apply setting changes without a reload 2026-10-14 02:21:45 +02:00
Linus Rath ff1d1f399d fix: limit plugin dialogs to one at a time, name the plugin in each and offer to turn it off 2026-10-14 02:15:45 +02:00
Linus Rath be3debdcb4 fix: never send a message when a plugin that checks it before sending fails or does not answer 2026-10-14 02:11:59 +02:00
Linus Rath e720be7e17 feat: let users install their own plugins, with admin review of the actual code
The admin page offered "User Plugin Uploads" and "Require Admin
Approval", but nothing in Settings used them: there was no upload, no
uninstall and no way to ask for approval, and the admin had no list of
requests. The approval code that existed pinned a hash of the code only
and showed the admin a manifest the browser sent, never the code.

Now:
- Settings > Plugins has an install button (when uploads are allowed),
  a remove button for the user's own plugins, and lists in plain
  language what each plugin may do, high-risk items first
- an install sends the ZIP to the server, which reads the manifest and
  code itself and pins the request to a hash of both
- the admin Plugins tab lists requests with the code and approves or
  denies them; a user may have 10 open requests
- a user plugin is checked again on every start, so a revoked approval
  or turning user plugins off takes effect
- the consent dialog and the plugin settings are translated, use the
  theme colours, and show the sites a plugin may send data to
2026-10-14 02:03:26 +02:00
Linus Rath c45533646e fix: give slot plugins the message, event or contact only with the matching read permission 2026-10-14 01:31:30 +02:00
Linus Rath 67a36c59d9 fix: keep the contact name readable when the detail pane is narrow 2026-10-14 00:40:18 +02:00
Linus Rath 3138c2bd04 fix: stop dropped files from inserting their path into the message body 2026-10-13 16:58:19 +02:00
Linus Rath e0f60c0946 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-13 15:58:52 +02:00
Linus Rath c878e51fce fix: clear a calendar's default reminders with an empty list instead of null #1209 2026-10-13 15:56:10 +02:00
Linus Rath 82450f3345 feat: apply the current calendar defaults when an event switches back to them #1209 2026-10-13 15:56:10 +02:00
Linus Rath 3e202e73fd feat: list every reminder and the calendar defaults in the event popover #1209 2026-10-13 15:56:10 +02:00
Linus Rath 1730d7bab4 feat: set default reminders for each calendar in calendar management #1209 2026-10-13 15:56:10 +02:00
Linus Rath 8181f5ba0c feat: start new events on the calendar's default reminders #1209 2026-10-13 15:56:10 +02:00
Linus Rath 4e983e3e4e feat: choose notification or email for each event reminder #1209 2026-10-13 15:56:09 +02:00
Linus Rath 3788446271 feat: let users hide shared mail accounts from the sidebar #1228 2026-10-13 15:55:54 +02:00
Linus Rath e09676126b feat: keep the selection while reading a message in mountain view #1231 2026-10-13 15:40:13 +02:00
Linus Rath 9cae33e3cb feat: keep the mountain view compose window open while reading other mail #1229 2026-10-13 15:25:56 +02:00
Linus Rath 693d9613c0 feat: let users turn off the prompt before deleting several messages #1225 2026-10-13 15:16:05 +02:00
Linus Rath 435c1e0929 fix: select the rows shown between the two ends on shift-click #1230 2026-10-13 15:02:21 +02:00
Linus Rath 25cbbf8c10 fix: restore the full screen height when the iOS app resumes #1226 2026-10-13 14:53:23 +02:00
Linus Rath 8daa316c18 fix: show a mountain view message together with its conversation #1223 2026-10-13 14:48:58 +02:00
Linus Rath 6f281ef10a fix: open mountain view threads as a conversation on the phone #1224 2026-10-13 14:35:12 +02:00
Linus Rath ddab7c781f feat: open several messages of a conversation at once in mountain view #1222 2026-10-13 14:24:47 +02:00
Linus Rath 94095cf86a fix: paste a cell range as a table instead of an image #1233 2026-10-13 13:57:30 +02:00
Linus Rath 4d733aa598 chore: remove unused exports and the dead plugin error boundary 2026-10-13 13:36:51 +02:00
Linus Rath c587ad459e fix: keep the dark body backdrop full width in Mountain View and show Gmail's help button 2026-10-12 02:00:02 +02:00
Linus Rath 66122ae652 feat: order Mountain View's bulk actions like Gmail's and search the Move to menu 2026-10-12 01:54:15 +02:00
Linus Rath 0a82835626 feat: lay out Mountain View's account card like Gmail's 2026-10-12 01:53:19 +02:00
Linus Rath 5efe718cf0 feat: order Mountain View's message menu like Gmail's and add Find emails from 2026-10-12 01:45:35 +02:00
Linus Rath 986daef90b feat: add Gmail's side panel with calendar, tasks and contacts to Mountain View 2026-10-12 01:40:30 +02:00
Linus Rath cedac10c29 feat: use Gmail's advanced search form in Mountain View 2026-10-12 01:34:02 +02:00
Linus Rath 78e68e8886 feat: write Mountain View replies in place under the conversation 2026-10-12 01:29:55 +02:00
Linus Rath c652fec371 feat: give Mountain View's compose window Gmail's title bar and bottom bar 2026-10-12 01:26:03 +02:00
Linus Rath 943a92bd42 feat: show the whole conversation around the open message in Mountain View 2026-10-12 01:16:15 +02:00
Linus Rath 1980de68c8 feat: give Mountain View's open message Gmail's toolbar, pager and header 2026-10-12 01:10:10 +02:00
Linus Rath 20b52a060f feat: draw Mountain View's message rows like Gmail's 2026-10-12 01:01:09 +02:00
Linus Rath cf558e7e9f feat: lay out Mountain View's navigation like Gmail's, with a Labels section 2026-10-12 00:46:48 +02:00
Linus Rath ae151cec25 feat: set Mountain View's content on a rounded card over a tinted canvas 2026-10-12 00:37:59 +02:00
Linus Rath 864d2a85e6 test: stub elementFromPoint for the mousedown in the mention tests 2026-10-11 21:27:06 +02:00
Linus Rath 517cd019a8 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-11 21:16:27 +02:00
Linus Rath 866312129b test: click into the body before typing in the mention tests 2026-10-11 21:15:14 +02:00
Linus Rath 11cf2415d6 Merge pull request #1210 from lucamzanon/fix/mv-collapsed-rail
fix(mountain-view): let the collapsed rail fill its 72px column
2026-10-11 21:09:30 +02:00
Linus Rath 1ed7ec0327 Merge pull request #1213 from shukiv/fix/draft-body-from-body-parts
fix: take a re-opened draft's body from its body parts only
2026-10-11 21:03:18 +02:00
Linus Rath 968c351d4d Merge pull request #1212 from shukiv/fix/composer-attachment-list-scroll
fix: scroll the attachment list instead of burying the send button
2026-10-11 21:03:14 +02:00