Follow-up from mailbox refactoring
Description
Follow-up from !2580 (merged), !2918 (merged)
Frontend:
-
All attachments are linked to the upload API. Old ones should be linked to the old path. !2871 (merged) -
Allow searching/filtering emails by subject, address, etc -
global const / perhaps mixins for page id -
Links on the dashboard don't make the mailbox open the specified email -
Wrong German translation in mailbox->mailsend_unsuccess: E-Mail konnten
->E-Mail konnte
-
A "answer all" button -
A "back" or "close" button on the top of the mail (so you don't need to scroll way down to get back) -
"Move to" within an email doesn't work (it does in the overview) -
Attachments are not forwarded when forwarding an email -
Do not allow attachments that are too large in the frontend. Show an explanation instead. -
The mailFromAndDate
variable MailboxNewAndAnswer uses concatenated German words which isn't well translatable. The translation text should be a full sentence with placeholders instead. -
If an incoming email was sent to multiple recipients, they are not shown in the frontend. You can only see yourself as a recipient. (https://yunity.slack.com/archives/C04GW9SBV5H/p1695591052671669) -
Mark-as-unread button ( !3266 (merged)): -
⚠ If you open an unread mail, the checkmark-button let's you mark the mail as read rather than as unread. This should be changed. -
⚠ I think you should use the iconseye
andeye-slash
instead of the check mark to make it easier to distinguish the actions.
-
-
You should be able to sort by every column. -
TypeError in selectedMailbox (src/components/Mailbox/MailboxView): Cannot set properties of undefined (setting 'isBusy') https://foodsharing-ev.sentry.io/issues/4554375932/ -
⚠ Emails should be marked as answered with an icon -
If you answer an email and type in a new recipient, the new recipient is being ignored. -
When replying, only the first line of the previous text is marked with a ">". -
Switching the tabs in the address book is slow -
After selecting multiple emails in a mailbox and clicking on a button, e.g. "mark as unread", the emails should be unselected again. -
Text button text "Auswahl löschen" is confusing because it sounds like the emails are deleted. It could instead be "keine markieren" or "Auswahl aufheben". ( !3108 (merged)) -
The list of emails needs a better layout in mobile mode. -
Allow switching to Html mode with a toggle button. -
It could also be possible to enable images in the Html mode using a second button. -
⚠ The list of recipients is shown in the trash folder and can be quite long. It should be shown abbreviated.⚠ -
⚠ There should be a column for "from" and "to" in the trash folder or one column "participants" ("Beteiligte") containing both (abbreviated by @foodsharing.network) -
The same happens for the list of recipients in the email view. There it could be wrapped into multiple lines, but should also be abbreviated if there are too many recipients. -
Sort the list of mailboxes alphabetically ( !3108 (merged)) -
Followup to prev point: show own mailbox first (suggestion) -
Email view: too many blank lines in the plain text mode -
The link from the region's menu to the mailbox does not select that mailbox in the list ( !3108 (merged)) -
Add a "Re:" to the subject when answering an email -
update the number of unread emails when an email was deleted -
When showing an email in the plain (non-HTML) mode, links are rendered using the addLinks
function inMailboxSingleEmailView.vue
. It adds trailing characters before the next whitespace or linebreak to the link's address. (See https://yunity.slack.com/archives/C1T1ZM9A4/p1716147208385239)
Backend:
-
Rate limiting for the sending endpoint -
For discussion: How shall we handle attachments of incoming emails? They are still stored in /data/mailattach
. We could add them to the uploads table, but they won't have a user id. -
use php 8 annotations in rest controller -
⚠ Fehler: https://foodsharing-ev.sentry.io/issues/4863570838
Both:
-
⚠ Pagination (because of timeouts in big mailboxes). Opening the mailboxes is slow for some people (https://beta.foodsharing.de/?page=bezirk&bid=734&sub=forum&tid=223332&pid=1369995#post-1369995). Add pagination to the rest controller and a load more button in email overview. -
Add CC and BCC -
Fix the quickreply function for emails on the dashboard, since MailboxXhr is deleted now !2921 (merged) -
Request the list of mailboxes from the API. This is currently still passed to the Vue component directly in MailboxControl::index. Along the way, we should move the logic out of the MailboxGateway::getBoxes function. -
Add a vue page to manage mailboxes - !2716 (closed) -
An "delete all" / "empty trash" button. Probably also needs a REST endpoint if we do not want to send a request for each email. -
Autocomplete for address input is not implemented anymore. Either implement it again (preferred by community) or drop the tables fs_contact and fs_foodsaver_has_contact. -
Do not show emails that are in the trash folder on the dashboard anymore ( !3266 (merged)) -
Should there be a maximal size when sending an email (sum of all attachments)? This might depend on the email provider. -
Show more header information when returning an error (Mail Delivery System <MAILER-DAEMON@mout-b-210.mailbox.org> Undelivered Mail Returned to Sender from Ticket 8317)
Impact
Proposal
Links / references
Edited by Alex