Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | 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. | |||||
* | Introduce base plugin | Simon Ser | 2019-12-16 | 22 | -450/+521 | |
| | | | | | | This plugin offers base IMAP/SMTP functionality. References: https://todo.sr.ht/~sircmpwn/koushin/39 | |||||
* | Add an API for Go plugins | Simon Ser | 2019-12-16 | 3 | -1/+111 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/39 | |||||
* | gitignore: don't ignore sourcehut theme | Simon Ser | 2019-12-12 | 1 | -2/+3 | |
| | ||||||
* | Add simple Sourcehut-based theme | Drew DeVault | 2019-12-12 | 11 | -4/+5967 | |
| | ||||||
* | Fix undefined ErrSessionExpired | Simon Ser | 2019-12-12 | 2 | -2/+2 | |
| | | | | Fixes: f07ab5263246 ("Add docs") | |||||
* | Add docs | Simon Ser | 2019-12-11 | 4 | -4/+26 | |
| | ||||||
* | Allow plugins to provide their own templates | Simon Ser | 2019-12-11 | 4 | -8/+27 | |
| | ||||||
* | readme: add godoc badge | Simon Ser | 2019-12-11 | 1 | -0/+2 | |
| | ||||||
* | Export Server.{Sessions,Plugins} | Simon Ser | 2019-12-11 | 4 | -13/+12 | |
| | | | | And unexport a few internal functions. | |||||
* | Unexport NewSessionManager | Simon Ser | 2019-12-11 | 2 | -2/+2 | |
| | | | | This isn't intended to be used by plugins. | |||||
* | Export Context.SetSession, unexport Session.Token | Simon Ser | 2019-12-11 | 3 | -10/+10 | |
| | | | | | | | I'm uneasy exposing the token to plugins, I prefer to hide it if possible to prevent mis-use. This change allows plugins to logout users. | |||||
* | Export Context | Simon Ser | 2019-12-11 | 3 | -29/+34 | |
| | | | | This allows plugins to access it. | |||||
* | Add plugins/ to .gitignore | Simon Ser | 2019-12-10 | 1 | -0/+1 | |
| | ||||||
* | go fmt | Simon Ser | 2019-12-10 | 3 | -17/+17 | |
| | ||||||
* | Introduce GlobalRenderData and RenderData | Simon Ser | 2019-12-10 | 2 | -7/+40 | |
| | | | | | | | | GlobalRenderData contains some global metadata that can be obtained from any template. RenderData is a base type for template data. It contains a Global field with global metadata and an Extra field for plugins. | |||||
* | Load all themes on startup | Simon Ser | 2019-12-10 | 1 | -13/+54 | |
| | | | | This is the first step to allow each user to have a different theme. | |||||
* | readme: add link to mailing list & issue tracker | Simon Ser | 2019-12-10 | 1 | -0/+5 | |
| | ||||||
* | Rename Plugin.Render to Plugin.Inject | Simon Ser | 2019-12-10 | 3 | -3/+3 | |
| | | | | | This function doesn't render anything, it just adds extra data to the template data. | |||||
* | Extract Lua plugin logic into separate file | Simon Ser | 2019-12-10 | 2 | -151/+158 | |
| | ||||||
* | Allow plugins to add new routes | Simon Ser | 2019-12-10 | 3 | -0/+40 | |
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/6 | |||||
* | Reconnect to IMAP server when logged out | Simon Ser | 2019-12-09 | 3 | -20/+90 | |
| | | | | | | | | | | | | | | | The session manager has been upgraded to deal with reconnections. Each session has its own expiration timer. Each time a request is received, the expiration timer is reset. A session can be closed (this is used when the user wants to logout). When the IMAP connection is closed by the server, it's set to nil in the session. The next time an IMAP command needs to be issued, the connection is re-established. Closes: https://todo.sr.ht/~sircmpwn/koushin/30 | |||||
* | Make SessionManager create the IMAP client | Simon Ser | 2019-12-09 | 4 | -23/+46 | |
| | | | | | This will allow SessionManager to re-connect when the IMAP server logs the user out. | |||||
* | Rename ConnPool to SessionManager | Simon Ser | 2019-12-09 | 3 | -20/+20 | |
| | ||||||
* | readme: sync with new Lua API | Simon Ser | 2019-12-09 | 1 | -2/+5 | |
| |