Drew DeVault
3d1f278fae
Use context-appropriate title for mbox/msg view
2020-05-13 17:00:47 +02:00
Drew DeVault
1cf95af41e
Add <meta refresh> to mailbox view
...
This causes the mailbox to automatically reload the page every 60
seconds, without JavaScript.
This also updates the base template data to include the full URL, and
replaces the earlier "Path" field with a pre-split array of path
components, which is more immediately useful to most templates given the
limitations of string munging with text/template primitives.
2020-05-13 16:58:48 +02:00
Simon Ser
0191b73996
plugins/caldav: switch to path-based URLs
...
UIDs are not first-class WebDAV citizens and would require two
roundtrips for most operations.
2020-05-13 16:48:03 +02:00
Simon Ser
b891a95fcf
Rename project to alps
2020-05-13 14:07:44 +02:00
Simon Ser
4cf5ad68af
plugins/base: always show INBOX first
2020-03-27 13:19:26 +01: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
a455fc8ddd
plugins/base: fix IMAMessage.PartByPath with nil path
2020-03-18 19:44:18 +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
ea0626d806
plugins/carddav: check supported vCard versions
2020-02-27 12:56:06 +01:00
Simon Ser
89149b38c8
plugins/carddav: use paths instead of UIDs in URLs
2020-02-27 12:17:23 +01:00
Simon Ser
4bb0ded2d9
plugins/caldav: update go-webdav
2020-02-25 19:24:35 +01:00
Simon Ser
7de332c2bb
plugins/viewtext: linkify plaintext messages
2020-02-25 18:16:26 +01:00
Simon Ser
c96903f3f1
plugins/base: replace MessageRenderData.PartPath with Part
2020-02-25 16:38:29 +01:00
Simon Ser
b3f98de1da
plugins/viewhtml: add opt-in query param to load remote resources
...
Loading remote resources by default has privacy implications.
2020-02-25 16:13:10 +01:00
Simon Ser
a8a3c82579
plugins/viewhtml: add image proxy
2020-02-25 15:45:43 +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
62660f8d1d
plugins/viewhtml: add support for inline Content-Id images
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/33
2020-02-25 10:47:38 +01:00
Simon Ser
7af7d73700
plugins/base: add message URL and Content-Id helpers
2020-02-25 10:46:55 +01:00
Simon Ser
c3e323161a
plugins/viewhtml: add sanitizer struct
2020-02-25 09:51:57 +01:00
Simon Ser
be3c069f5d
plugins/caldav: make discovery failures non-fatal
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/64
2020-02-19 16:35:47 +01:00
Simon Ser
778e6f9c89
plugins/carddav: add view to edit contacts
2020-02-12 21:35:18 +01:00
Simon Ser
c4ff33e645
plugins/carddav: add page to create new contact
2020-02-12 21:14:18 +01:00
Simon Ser
1dc00fa023
plugins/carddav: filter contacts with EMAIL/FN set
...
Don't issue a CardDAV query with any filter, Google won't return any
result.
2020-02-12 17:33:08 +01:00
Simon Ser
8299617ebc
Turn message part viewers into plugins
2020-02-12 15:41:00 +01:00
Simon Ser
3a3887b358
plugins/carddav: cache addressbook home set path
2020-02-11 19:14:05 +01:00
Simon Ser
82304a78d6
plugins/caldav: add missing event.html template
2020-02-11 17:14:43 +01:00
Simon Ser
9fe20a604c
plugins/caldav: add pagination to calendar view
2020-02-05 18:57:16 +01:00
Simon Ser
a1b43cc5a8
plugins/caldav: add basic event view
2020-02-05 18:39:53 +01:00
Simon Ser
5b78cdc104
plugins/caldav: new plugin
...
For now it can only list events for the current month.
References: https://todo.sr.ht/~sircmpwn/koushin/60
2020-02-05 18:14:26 +01:00
Simon Ser
1bd930f043
plugins/carddav: add basic contacts view
2020-02-05 14:58:56 +01:00
Simon Ser
3263a89185
plugins/carddav: accept "carddavs" and "carddav+insecure" URL schemes
2020-02-05 13:56:18 +01:00
Simon Ser
ad256906e0
plugins/carddav: sanity check URL on startup
2020-02-05 13:52:52 +01:00
Simon Ser
6a6ece03e4
plugins/carddav: new plugin
...
A new minimal CardDAV plugin is introduced. It injects a list of e-mail
addresses in the e-mail compose view.
References: https://todo.sr.ht/~sircmpwn/koushin/7
2020-02-05 12:21:54 +01:00
Simon Ser
6ea7cd9134
plugins/base: add icons for attachments/re/fwd/starred
2020-02-05 11:58:53 +01:00
Simon Ser
651872ef7d
plugins/base/imap: disable full-text search for now
...
It's too slow on servers where indexes aren't enabled.
References: https://todo.sr.ht/~sircmpwn/koushin/23
2020-02-05 11:37:01 +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
50046b62ac
plugins/base: use BodyStructure.Walk instead of custom logic
2020-01-28 11:15:10 +01:00
Simon Ser
b325933a8b
Add .editorconfig
2020-01-24 20:59:35 +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
2e367efe58
plugins/base: add fallback if SPECIAL-USE is unsupported
2020-01-24 18:01:01 +01:00
Simon Ser
bfc617b702
plugins/base: save message as draft
2020-01-24 17:49:50 +01:00
Simon Ser
b58c15d121
Extract Lua infrastructure into a plugin
2020-01-20 22:04:50 +01:00
Simon Ser
01983eb7b5
Introduce PluginLoaderFunc
...
This allows registered plugins to execute code when loaded. This will
also allow the Lua support code to be a plugin.
Closes: https://todo.sr.ht/~sircmpwn/koushin/54
2020-01-20 21:37:28 +01:00
Simon Ser
d19c17c6d5
go fmt
2020-01-20 20:27:49 +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
d745f98bb7
Add polyfill for browsers not supporting srcdoc
2020-01-20 16:20:15 +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
Dejan Strbac
15a77185b4
Include flags when fetching items over IMAP
2020-01-16 13:34:10 +01:00
Simon Ser
24718f1ac4
Redirect to original URL after login
2020-01-10 17:29:37 +01:00
Simon Ser
97b314b6e7
Add Server.Reload
...
This only reloads templates for now. In the future it'll also reload
Lua plugins.
2020-01-08 10:52:28 +01:00
Simon Ser
d36ec520aa
Fix extra comma in address list
2019-12-18 17:07:10 +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
Simon Ser
9404be1a32
Add envelope metadata to message view
2019-12-17 11:33:23 +01:00
Simon Ser
e78d2db3ea
Improve docs
2019-12-17 10:58:31 +01:00
Simon Ser
a425e17b0e
Add button to delete message
...
Maybe we should add a confirmation step in the future.
References: https://todo.sr.ht/~sircmpwn/koushin/36
2019-12-16 17:45:20 +01:00
Simon Ser
1841609fbc
Add form to move messages
...
References: https://todo.sr.ht/~sircmpwn/koushin/36
2019-12-16 17:25:53 +01:00
Simon Ser
4449416357
Export IMAPMessage
...
This is a public type other plugins and templates may want to access.
2019-12-16 15:46:29 +01:00
Simon Ser
08b259bd50
Add attachments support to composer
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/13
2019-12-16 15:40:30 +01:00
Simon Ser
65931445a8
Use <label> in compose form
2019-12-16 14:45:55 +01:00
Simon Ser
1c5e17472d
Add basic search
...
Closes: https://todo.sr.ht/~sircmpwn/koushin/23
2019-12-16 14:36:43 +01:00
Simon Ser
1a658fc22c
Add line break to login form
2019-12-16 13:51:49 +01:00
Simon Ser
622f00fe06
Replace Session.ConnectSMTP with Session.DoSMTP
...
This gives more flexibility in Session for optimizations, e.g. keep the
SMTP connection around for some time if possible.
2019-12-16 13:07:35 +01:00
Simon Ser
d01c85616a
Rename Session.Do to Session.DoIMAP
2019-12-16 13:01:33 +01:00
Simon Ser
d897eeee5c
Introduce base plugin
...
This plugin offers base IMAP/SMTP functionality.
References: https://todo.sr.ht/~sircmpwn/koushin/39
2019-12-16 12:52:44 +01:00