Commit Graph

370 Commits

Author SHA1 Message Date
Drew DeVault 86579bb478 Remove async SMTP queue 2020-11-13 10:33:19 -05:00
Drew DeVault 0d1cca191b alps/compose.html: fix message ID 2020-11-13 10:33:16 -05:00
Drew DeVault 5268eba101 Notify server when user discards attachment 2020-11-12 12:09:51 -05:00
Drew DeVault aad5f44f6c Display server errors on attachment upload 2020-11-12 12:09:41 -05:00
Drew DeVault 231626a31a alps: implement forwarding attachments 2020-11-12 11:21:14 -05:00
Drew DeVault a5fe1e358e Carry Message-ID forward through compose process 2020-11-12 11:21:06 -05:00
Drew DeVault 5a8d1572b1 Set SameSite and Secure on cookies 2020-11-05 10:35:27 -05:00
Drew DeVault 643047402d Don't crash if Outbox is not present
Fixes #133
2020-11-05 10:03:45 -05:00
Drew DeVault e4daf0778d Implement mailbox deletion 2020-10-30 15:21:33 -04:00
Drew DeVault 62e7cf8933 Rig up button to remove attachments 2020-10-30 13:50:43 -04:00
Drew DeVault 417d9bbd64 Implement folder creation UI 2020-10-30 13:41:25 -04:00
Drew DeVault 2bef9425fb Simplify & fix bugs with select all functionality 2020-10-30 13:10:26 -04:00
Drew DeVault 6a6ea3e63b message view: add print button & stylesheet 2020-10-30 12:53:25 -04:00
Drew DeVault cbeacf9d06 Copy unsent messages to Outbox
This patch:

1. Copies unsent messages to the outbox before attempting to deliver
   them with SMTP
2. Deletes those messages once they're sent, or leaves them if an error
   occured
3. Updates the message list to make it obvious when there are unsent
   messages in the outbox
2020-10-30 11:47:23 -04:00
Drew DeVault d325628cb2 compose: don't fail on 0 attachments 2020-10-30 10:23:57 -04:00
Drew DeVault 8bd829962f attachments.js: discard unused drag events 2020-10-29 17:38:06 -04:00
Drew DeVault 26e6e66b04 attachments.js: remove unused variables 2020-10-29 15:30:55 -04:00
Drew DeVault a393429f01 Implement JavaScript UI for attachments
This one is a bit of a doozy. A summary of the changes:

- Session has grown storage for attachments which have been uploaded but
  not yet sent.
- The list of attachments on a message is refcounted so that we can
  clean up the temporary files only after it's done with - i.e. after
  copying to Sent and after all of the SMTP attempts are done.
- Abandoned attachments are cleared out on process shutdown.

Future work:
- Add a limit to the maximum number of pending attachments the user can
  have in the session.
- Periodically clean out abandoned attachments?
2020-10-29 15:18:36 -04:00
Drew DeVault 4904207269 Replace parts tree with attachment list 2020-10-23 16:08:40 -04:00
Drew DeVault 09d19169da alps theme: consoldate tab active/hover styles
Fixes some visual weirdness in an edge case
2020-10-23 15:35:20 -04:00
Drew DeVault 3db443c1df message.html: add tab to view raw email 2020-10-23 15:32:59 -04:00
Drew DeVault bd91b3eacf Fix errors arising from short-circuit assumption
The and/or operators in text/template don't short-circuit, so this
seemingly benign change caused a breakage when not fully tested.
2020-10-23 15:19:16 -04:00
Drew DeVault 64b16f4a50 message.html: add tabs to select html/plaintext 2020-10-23 15:15:46 -04:00
Drew DeVault f97f38d4a9 Send outgoing emails asyncronously 2020-10-23 14:15:07 -04:00
Drew DeVault b93b2bafa5 Rig up dowork event queue and graceful termination 2020-10-23 13:30:29 -04:00
Drew DeVault 8764397b7d alps theme: fix borders on each unread row
This addresses an oversight from when the fifth column (flags) was
introduced.
2020-10-23 12:03:23 -04:00
Drew DeVault 2d73c882df Link sender name to search for their email address 2020-10-23 11:47:30 -04:00
Drew DeVault b437cef2ab Implement broader search functionality 2020-10-23 11:45:00 -04:00
Drew DeVault 0769190180 message list: color \Flagged status yellow 2020-10-22 13:31:41 -04:00
Drew DeVault d4fd1c1fe2 Add message flags to mailbox page 2020-10-22 13:28:11 -04:00
Drew DeVault 0191aa4698 plugins/base/imap: fetch flags on search 2020-10-22 13:07:51 -04:00
Drew DeVault 6ba418c9b2 Generalize sidebar categorization logic 2020-10-22 13:03:50 -04:00
Drew DeVault 9e2c420461 Categorize and normalize folder listing 2020-10-22 12:29:55 -04:00
Drew DeVault 8de661b3bb Hide caldav/carrdav in nav unless present 2020-10-22 11:36:26 -04:00
Drew DeVault 793f261b62 Handle case where server does not return body
This was causing a nil pointer dereference before.

Fixes ~migadu/alps#121.
2020-10-22 11:05:35 -04:00
Drew DeVault aaa30ead41 Handle \Deleted emails in message list
This can happen if an email is deleted by an external client, and this
change fixes a template crash in such cases.

I elected to display (deleted email) rather than to hide deleted
messages so that, if the message is unread, it provides an explanation
for your inbox showing $n unread emails where $n > number of non-deleted
emails.

This partially addresses ~migadu/alps#121
2020-10-22 10:40:29 -04:00
Simon Ser c20df8da30
readme: add CI badge 2020-08-13 11:14:50 +02:00
Simon Ser 911a92a74e
ci: use new repo URL 2020-08-13 11:10:00 +02:00
Reto Brunner f3931fd510
remove exec bit from plugins/base/imap.go 2020-08-11 10:07:34 +02:00
Jesse Olson 456d183ebc
Set Message-Id header 2020-08-05 14:56:19 +02:00
наб ae9e70b5ad
sourcehut theme: fix nil on emails without a text part
P.a. to 50e131244a which solved
https://todo.sr.ht/~emersion/alps/100

Closes: https://todo.sr.ht/~emersion/alps/102
2020-07-13 17:07:18 +02:00
наб d60aca0e5c
base HTML: fix nil on emails without a text part
P.a. to 50e131244a which solved
https://todo.sr.ht/~emersion/alps/100

Closes: https://todo.sr.ht/~emersion/alps/102
2020-07-13 17:07:18 +02:00
Simon Ser 92b3016196
Fix nil render data on invalid password
This would cause this error:

    template: head.html:7:15: executing "head.html" at <index .Global.Path 0>: error calling index: index of untyped nil
2020-07-07 12:47:18 +02:00
Eyal Sawady 50e131244a
alps theme: fix nil on emails without a text part
Closes: https://todo.sr.ht/~emersion/alps/100
2020-06-29 16:37:41 +02:00
Zach DeCook 0aff774c5d
Stay on the same page after moving a message 2020-06-29 16:31:48 +02:00
Simon Ser 1f9fe0b169
Workaround template functions not loaded
This is a hacky workaround to make things work until we find a better
solution.

Closes: https://todo.sr.ht/~emersion/alps/96
2020-06-10 22:46:42 +02:00
Simon Ser 522454e009
base: don't use Client.Mailbox
The information returned by Client.Mailbox may be out-of-date. Instead,
retrieve the mailbox status from the server each time.

Closes: https://todo.sr.ht/~emersion/alps/80
2020-05-28 12:09:44 +02:00
Simon Ser 9a7acd2791
Add INBOX unread count on mailbox/message pages 2020-05-21 19:19:17 +02:00
Simon Ser 0a9c246794
plugins/caldav: add basic day view 2020-05-21 17:06:51 +02:00
Drew DeVault 79233fa5cb
alps theme: wire up auto-completion in compose 2020-05-20 22:12:37 +02:00