Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Update dependencies | Simon Ser | 2020-01-20 | 2 | -26/+25 |
| | |||||
* | Fix dangling goroutine on session expiration | Simon Ser | 2020-01-20 | 1 | -3/+1 |
| | | | | | | | | The timer channel may already have been drained by `case <-timer.C`. In this case, we need not to drain it again or we'll block forever. To fix this, stop draining the timer channel. Since we're not going to use the timer again anyway, it should be fine. | ||||
* | go fmt | Simon Ser | 2020-01-20 | 3 | -3/+3 |
| | |||||
* | Auto-discover upstream SMTP and IMAP servers | Simon Ser | 2020-01-20 | 3 | -4/+90 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Generalize upstream server URLs | Simon Ser | 2020-01-20 | 2 | -36/+89 |
| | | | | | | | | | koushin now takes a list of upstream URLs instead of an IMAP and SMTP URL. This allows to specify upstream server URLs for plugins. In the future, this will allow for auto-discovering upstream servers based on a single domain name. References: https://todo.sr.ht/~sircmpwn/koushin/49 | ||||
* | Hide echo banner | Reto Brunner | 2020-01-17 | 1 | -0/+1 |
| | |||||
* | Add current path to the global context | Dejan Strbac | 2020-01-16 | 1 | -0/+4 |
| | |||||
* | Include flags when fetching items over IMAP | Dejan Strbac | 2020-01-16 | 1 | -1/+1 |
| | |||||
* | Add Session.SetHTTPBasicAuth | Simon Ser | 2020-01-10 | 1 | -0/+8 |
| | | | | | This is not 100% idiot-proof, but still makes it mroe difficult for plugins to steal credentials. | ||||
* | Fix panic when injecting a template with nil data | Simon Ser | 2020-01-10 | 1 | -1/+12 |
| | |||||
* | Redirect to original URL after login | Simon Ser | 2020-01-10 | 2 | -7/+23 |
| | |||||
* | Close Lua plugins on reload | Simon Ser | 2020-01-10 | 1 | -2/+11 |
| | |||||
* | cmd/koushin: add -addr flag | Simon Ser | 2020-01-08 | 1 | -1/+3 |
| | |||||
* | readme: document hot reload | Simon Ser | 2020-01-08 | 1 | -0/+6 |
| | |||||
* | Implement plugin/template reload on SIGUSR1 | Simon Ser | 2020-01-08 | 3 | -39/+60 |
| | | | | | | | | There's no way around having a global mutex, because we need to update the HTTP routes when reloading plugins. During reload we need to lock the whole server. Closes: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | cmd/koushin: reload on SIGUSR1 | Simon Ser | 2020-01-08 | 1 | -1/+16 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/43 | ||||
* | Add Server.Reload | Simon Ser | 2020-01-08 | 3 | -16/+36 |
| | | | | | This only reloads templates for now. In the future it'll also reload Lua plugins. | ||||
* | Make New return the Server | Simon Ser | 2020-01-08 | 2 | -6/+7 |
| | | | | This will be useful to implement hot reload. | ||||
* | themes/sourcehut: add search input to mailbox view | Simon Ser | 2019-12-25 | 3 | -0/+14 |
| | |||||
* | Fix extra comma in address list | Simon Ser | 2019-12-18 | 1 | -1/+1 |
| | |||||
* | Fix header missing from raw e-mail download | Simon Ser | 2019-12-18 | 1 | -1/+11 |
| | |||||
* | Add a default CSP | Simon Ser | 2019-12-18 | 1 | -0/+7 |
| | | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings. | ||||
* | Implement paging for search | Simon Ser | 2019-12-17 | 3 | -16/+30 |
| | |||||
* | Document that plugins don't have access to passwords | Simon Ser | 2019-12-17 | 1 | -0/+3 |
| | |||||
* | Make Go plugin handlers take a *Context | Simon Ser | 2019-12-17 | 2 | -38/+25 |
| | | | | | Take a *Context instead of a echo.Context. This saves a type assertion in each handler. | ||||
* | Add Context to Plugin.Inject | Simon Ser | 2019-12-17 | 4 | -7/+7 |
| | | | | This allows to access the request metadata and the session from injectors. | ||||
* | Add RenderData interface | Simon Ser | 2019-12-17 | 5 | -27/+57 |
| | | | | This allows Go plugins to easily inject global data. | ||||
* | Rename RenderData to BaseRenderData | Simon Ser | 2019-12-17 | 2 | -12/+12 |
| | | | | RenderData will be used for an interface. | ||||
* | Allow Go Plugins to inject template data | Simon Ser | 2019-12-17 | 1 | -0/+21 |
| | |||||
* | Allow Lua plugins to inject all templates | Simon Ser | 2019-12-17 | 2 | -2/+9 |
| | |||||
* | Use Context.FormParams | Simon Ser | 2019-12-17 | 1 | -2/+4 |
| | |||||
* | Linkify address lists | Simon Ser | 2019-12-17 | 3 | -12/+17 |
| | |||||
* | Redirect / to INBOX | Simon Ser | 2019-12-17 | 1 | -0/+4 |
| | |||||
* | Add a form to set message flags | Simon Ser | 2019-12-17 | 6 | -24/+133 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/36 | ||||
* | plugins/base: extract route registration into function | Simon Ser | 2019-12-17 | 2 | -28/+30 |
| | |||||
* | themes/sourcehut: use formatdate template func | Simon Ser | 2019-12-17 | 1 | -2/+2 |
| | |||||
* | Add envelope metadata to message view | Simon Ser | 2019-12-17 | 3 | -11/+52 |
| | |||||
* | Improve docs | Simon Ser | 2019-12-17 | 3 | -8/+33 |
| | |||||
* | Add button to delete message | Simon Ser | 2019-12-16 | 3 | -0/+47 |
| | | | | | | Maybe we should add a confirmation step in the future. References: https://todo.sr.ht/~sircmpwn/koushin/36 | ||||
* | Add form to move messages | Simon Ser | 2019-12-16 | 5 | -2/+59 |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/36 | ||||
* | Update deps | Simon Ser | 2019-12-16 | 2 | -33/+25 |
| | |||||
* | Export IMAPMessage | Simon Ser | 2019-12-16 | 2 | -16/+16 |
| | | | | This is a public type other plugins and templates may want to access. | ||||
* | Add attachments support to composer | Simon Ser | 2019-12-16 | 3 | -9/+57 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/13 | ||||
* | go fmt | Simon Ser | 2019-12-16 | 3 | -4/+4 |
| | |||||
* | Use <label> in compose form | Simon Ser | 2019-12-16 | 2 | -9/+12 |
| | |||||
* | Add basic search | Simon Ser | 2019-12-16 | 5 | -9/+74 |
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/23 | ||||
* | Add line break to login form | Simon Ser | 2019-12-16 | 1 | -0/+1 |
| | |||||
* | Replace Session.ConnectSMTP with Session.DoSMTP | Simon Ser | 2019-12-16 | 2 | -16/+19 |
| | | | | | This gives more flexibility in Session for optimizations, e.g. keep the SMTP connection around for some time if possible. | ||||
* | Rename Session.Do to Session.DoIMAP | Simon Ser | 2019-12-16 | 2 | -6/+6 |
| | |||||
* | Remove the public/ directory | Simon Ser | 2019-12-16 | 15 | -7/+18 |
| | | | | | Now that all templates are provided by plugins, there's no need to have a public/ directory. Themes can be in /themes instead of /public/themes. |