Skip to content

feat(mail): implement Reply All functionality#103

Open
64johnlee wants to merge 33 commits into
RetroShare:masterfrom
64johnlee:feat/reply-all
Open

feat(mail): implement Reply All functionality#103
64johnlee wants to merge 33 commits into
RetroShare:masterfrom
64johnlee:feat/reply-all

Conversation

@64johnlee
Copy link
Copy Markdown

Summary

Implement Reply All functionality for the Mail UI (#69).

Changes

  • Added Reply All button in MessageView that pre-fills To field with original sender and CC field with all original CC recipients
  • Forward button is wired up (placeholder action for now)
  • Pass reply context via pendingReplyContext global to bridge MessageView to mail_resolver to compose
  • Pre-fill CC with original message CC list when using Reply All
  • Include CC info in the quoted original message header

Files changed

  • webui-src/app/mail/mail_util.js - global pending context + Reply All button
  • webui-src/app/mail/mail_resolver.js - pass pendingCtx to compose
  • webui-src/app/mail/mail_compose.js - handle replyall msgType, pre-fill CC

64johnlee and others added 30 commits May 3, 2026 20:34
- Added Reply All button in MessageView
- Pass reply context (to+cc lists) via pendingReplyContext global
- Pre-fill CC field with original message's CC recipients
- Include CC info in the quoted original message header
- Handle both 'reply' and 'replyall' msgTypes in compose
- Wire up Forward button in MessageView to pass 'forward' msgType
- Compose: clear recipients (To/CC/BCC) since user will choose new ones
- Set subject with 'Fwd: ' prefix
- Quote original message with '-----Forwarded Message-----' header
- Store mailBody in pendingReplyContext for forward
- Add dark mode CSS styles for mail UI (sidebar, tables, inputs, widgets)
- Add toggle button at bottom of sidebar (persisted in localStorage)
- Default to dark mode on first load (no preference saved)
- Dark mode applies to tab-content, sidebar, tables, inputs, buttons, widgets
- Add avatar column to mail inbox table (User icon header)
- Use existing UserAvatar component with fromUserInfo.mAvatar
- Show first letter of nickname as fallback for avatar
- Avatar displayed as first column before star column
- Add markAsSpam() function using /rsMail/setMessageSpam API
- Add confirmMarkSpam() confirmation dialog
- Add 'Spam' button next to Reply/Forward buttons
- Uses existing widget.popupMessage pattern
…button

- All mail views now show max 50 messages initially
- 'Load More' button appears when more messages available
- Each click loads 50 more messages
- Works across all inbox/sent/spam/etc views via unified template
…stence

- Add 'View Mode' button in top-heading area
- Cycles between 'Side' (split horizontal) and 'Below' (stacked vertical)
- Persisted in localStorage under 'mailViewMode'
- Uses CSS data-view-mode attribute on #mailMainContent
- Side = 50/50 split, Below = full width stacked
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant