Commit Graph
1229 Commits
Author SHA1 Message Date
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 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
Linus Rath a61a7c503e fix: show the sender's name in the contact popover when the saved contact has none 2026-10-11 21:01:42 +02:00
Linus Rath b1a0c069c6 fix: keep the participant suggestions from being cut off by the event form 2026-10-11 20:55:00 +02:00
Linus Rath 687fde4185 fix: stop Bitwarden filling the participant field and line its suggestions up with the typed text 2026-10-11 20:50:10 +02:00
Linus Rath f382568d1d fix: stop Bitwarden offering logins in the mail search box 2026-10-11 20:49:37 +02:00
Linus Rath 8c7758b2f1 fix: line the recipient suggestions up with the typed text on desktop too 2026-10-11 20:45:52 +02:00
Linus Rath 6ea5526783 fix: stop Bitwarden offering logins in the recipient fields 2026-10-11 20:43:47 +02:00
Linus Rath 62a00f713f fix: widen the recipient suggestions on a phone to the whole row 2026-10-11 20:39:59 +02:00
Linus Rath 90bd575e85 fix: make the formatting buttons easier to hit on a phone 2026-10-11 20:31:56 +02:00
Linus Rath 481fa06ed8 fix: keep Reply All on one line in the conversation view 2026-10-11 20:31:21 +02:00
Linus Rath 8d23cfc888 fix: show the suggested name above its address on a phone 2026-10-11 20:30:43 +02:00
Linus Rath 46a1adbb2d fix: start at the top of the body when tabbing into a new message 2026-10-11 20:26:43 +02:00
Linus Rath e3f0f6cb38 fix: fold the formatting toolbar away on a phone behind a Formatting button 2026-10-11 20:21:47 +02:00
Linus Rath f025b2101d fix: name the composer close and conversation back buttons for screen readers 2026-10-11 20:18:19 +02:00
Linus Rath 4b282e7064 fix: give touch tips in the welcome banner on a phone 2026-10-11 20:09:31 +02:00
Linus Rath 434ab6251e fix: show one Edit button on a draft 2026-10-11 20:07:46 +02:00
Linus Rath f8157a92f4 fix: hide the via badge when it repeats the sender name 2026-10-11 20:07:05 +02:00
Shuki Vaknin 2a45f6099c fix: take a re-opened draft's body from its body parts only
A draft that carried attachments and no message re-opened with the
contents of one of the attachments as its text. Attach a .csv to an
empty draft, save it, re-open it: the editor shows the rows of the csv
as what you had written, and the next save or send makes that the real
message.

Both edit-draft paths built the text body by joining every value in
bodyValues:

    Object.values(draft.bodyValues).map(v => v.value).join('\n')

bodyValues is keyed by part id, and getEmail asks for
fetchAllBodyValues, which per RFC 8621 4.1.4 returns a value for every
text/* part of the message - attachments included. So any attached
.csv, .txt, .log or .md was joined in as body text, and with no html
body to prefer it became the whole message.

Take the body from the parts the server lists as the body instead, and
from nothing else. A draft whose textBody is empty now re-opens empty,
which is what an attachments-only draft is.

The selection lives in lib/email-body-selection.ts beside
getRenderableHtmlBody, which exists because the viewer and the mobile
thread view had already drifted apart once (#489). mail-app and the pro
email tab held character-for-character copies of this join, so the same
drift was already in place.
2026-10-11 18:04:26 +00:00
Shuki Vaknin 58a4041aaa fix: scroll the attachment list instead of burying the send button
Expanding a long attachment list made the composer unusable. With a few
dozen files, "+N" grew the chip row past the bottom of the composer: the
last rows were off-screen, the send toolbar went with them, and nothing
scrolled, so the only way out was to collapse the list again.

The row is a shrink-0 sibling of the body's scroll container, so every
pixel it takes comes out of the composer and out of nothing else, and it
has no scroller of its own. Collapsed that is fine - three chips and a
counter. Expanded, its height is the attachment count.

So bound it when it is expanded and let it scroll itself. 30vh keeps the
toolbar on screen on a laptop and still shows several rows; collapsed
behaviour is untouched, since three chips never needed a cap.

overscroll-contain stops a scroll that reaches the end of the list from
continuing into the message body behind it, which is the usual annoyance
once a small scroller appears next to a large one.
2026-10-11 18:04:26 +00:00