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