Commit graph

60 commits

Author SHA1 Message Date
Drew DeVault 1321cea241 Redirect to edit draft after saving message 2020-11-13 11:55:56 -05:00
Drew DeVault 86579bb478 Remove async SMTP queue 2020-11-13 10:33:19 -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 a5fe1e358e Carry Message-ID forward through compose process 2020-11-12 11:21:06 -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 417d9bbd64 Implement folder creation UI 2020-10-30 13:41: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 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 3db443c1df message.html: add tab to view raw email 2020-10-23 15:32:59 -04:00
Drew DeVault f97f38d4a9 Send outgoing emails asyncronously 2020-10-23 14:15:07 -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
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
Zach DeCook 0aff774c5d
Stay on the same page after moving a message 2020-06-29 16:31:48 +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
Drew DeVault 9465f8db6d
login: set encrypted "remember me" token 2020-05-20 19:07:47 +02:00
Drew DeVault 2d86413876
mailbox: show unseen message count in page title 2020-05-20 15:28:36 +02:00
Drew DeVault aab1f866f6
mailbox: set title to "Inbox" rather than "INBOX" 2020-05-13 19:49:20 +02:00
Simon Ser 3036cc4436
plugins/base: fix mailbox unread count 2020-05-13 18:18:13 +02:00
Drew DeVault 3d1f278fae
Use context-appropriate title for mbox/msg view 2020-05-13 17:00:47 +02:00
Simon Ser b891a95fcf
Rename project to alps 2020-05-13 14:07:44 +02:00
Simon Ser 5af6c6adc1
plugins/base: wrap MailboxInfo and MailboxStatus
This allows us to extend these and expose helpers for templates and
plugins.
2020-03-27 10:45:43 +01:00
Simon Ser f6959346ee
plugins/base: allow redirect param to be a form param 2020-03-27 10:27:37 +01:00
Simon Ser 9b804005b4
plugins/base: add redirect param to move/delete/flag endpoints 2020-03-27 10:24:19 +01:00
Simon Ser 9eac0b453a
plugins/base: allow to specify move/flag params via query 2020-03-19 17:25:52 +01:00
Simon Ser b61e40f363
plugins/base: allow move/delete/flag operations to take multiple UIDs 2020-03-19 16:43:27 +01:00
Simon Ser fe73f2022c
plugins/base: add action param to handleSetFlags
This alows to add/remove flags instead of setting them.
2020-03-18 21:10:40 +01:00
Simon Ser be3ab9bdd5
plugins/base: disallow replying to text/html parts 2020-03-18 15:08:36 +01:00
Simon Ser ae8658f468
plugins/base: add route to forward messages
Only inline forwarding is supported for now.

References: https://todo.sr.ht/~sircmpwn/koushin/37
2020-03-18 15:01:15 +01:00
Simon Ser c96903f3f1
plugins/base: replace MessageRenderData.PartPath with Part 2020-02-25 16:38:29 +01:00
Simon Ser 8c4fd20e27
Revert "plugins/viewhtml: convert mailto links"
This reverts commit 02faf6174b.

This commit doesn't work, because it's applied to <img> tags. Making it
handle <a> tags doesn't work either because bluemonday will strip any
target="_blank" attributes, making the compose form open in the
<iframe>. Let's just revert this whole commit for now.
2020-02-25 15:37:47 +01:00
Simon Ser 02faf6174b
plugins/viewhtml: convert mailto links 2020-02-25 14:06:10 +01:00
Simon Ser 8299617ebc
Turn message part viewers into plugins 2020-02-12 15:41:00 +01:00
Simon Ser 4d68400036
plugins/base: add settings page
Add a settings page where the user can change the number of messages
displayed per page.
2020-01-28 20:04:33 +01:00
Simon Ser 85c01b87a9
plugins/base: support attachments in drafts
References: https://todo.sr.ht/~sircmpwn/koushin/16
2020-01-28 12:30:07 +01:00
Simon Ser 3384c39a17
plugins/base: delete previous draft 2020-01-24 20:27:05 +01:00
Simon Ser d31c56ec98
plugins/base: edit drafts
Note that attachments will be lost. This is a TODO.
2020-01-24 20:07:29 +01:00
Simon Ser bfc617b702
plugins/base: save message as draft 2020-01-24 17:49:50 +01:00
Simon Ser 589b303f9f
plugins/base: append outgoing messages to Sent mailbox
And mark original message as answered.

Closes: https://todo.sr.ht/~sircmpwn/koushin/15
2020-01-20 20:25:41 +01:00
Simon Ser 3bf17752ab
plugins/base: remove external resources URLs, sanitize CSS 2020-01-20 18:28:49 +01:00
Simon Ser a66ef1059b
Make the text/* part content a []byte 2020-01-20 16:20:16 +01:00
Simon Ser 8d248bc32f
Extract HTML sanitizer to its own file 2020-01-20 16:20:16 +01:00
Simon Ser efaf6fd444
Open e-mail links in new tab 2020-01-20 16:20:15 +01:00
Simon Ser 721c3ce3eb
Resize e-mail iframe with content 2020-01-20 16:20:15 +01:00
Simon Ser af5ffd12f9
Add support for HTML parts 2020-01-20 16:20:15 +01:00
Simon Ser 24718f1ac4
Redirect to original URL after login 2020-01-10 17:29:37 +01:00