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
Simon Ser
8c4587f477
Fix header missing from raw e-mail download
2019-12-18 16:57:53 +01:00
Simon Ser
80da410c3b
Implement paging for search
2019-12-17 16:23:51 +01:00
Simon Ser
f106c1125f
Make Go plugin handlers take a *Context
...
Take a *Context instead of a echo.Context. This saves a type assertion
in each handler.
2019-12-17 15:19:37 +01:00
Simon Ser
ca3672df2a
Add RenderData interface
...
This allows Go plugins to easily inject global data.
2019-12-17 15:01:15 +01:00
Simon Ser
d8a875a5f7
Rename RenderData to BaseRenderData
...
RenderData will be used for an interface.
2019-12-17 13:27:20 +01:00
Simon Ser
38d73f5771
Use Context.FormParams
2019-12-17 13:09:25 +01:00
Simon Ser
e2d70ba6ca
Linkify address lists
2019-12-17 13:02:38 +01:00
Simon Ser
0c21c501ff
Redirect / to INBOX
2019-12-17 12:44:13 +01:00
Simon Ser
2a2a48c7fa
Add a form to set message flags
...
References: https://todo.sr.ht/~sircmpwn/koushin/36
2019-12-17 12:42:04 +01:00
Simon Ser
3aea768cad
plugins/base: extract route registration into function
2019-12-17 11:36:08 +01:00