Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fix header missing from raw e-mail download | 2019-12-18 | 1 | -1/+11 | ||
| | ||||||
* | Add a default CSP | 2019-12-18 | 1 | -0/+7 | ||
| | | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings. | |||||
* | Implement paging for search | 2019-12-17 | 3 | -16/+30 | ||
| | ||||||
* | Document that plugins don't have access to passwords | 2019-12-17 | 1 | -0/+3 | ||
| | ||||||
* | Make Go plugin handlers take a *Context | 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 | 2019-12-17 | 4 | -7/+7 | ||
| | | | | This allows to access the request metadata and the session from injectors. | |||||
* | Add RenderData interface | 2019-12-17 | 5 | -27/+57 | ||
| | | | | This allows Go plugins to easily inject global data. | |||||
* | Rename RenderData to BaseRenderData | 2019-12-17 | 2 | -12/+12 | ||
| | | | | RenderData will be used for an interface. | |||||
* | Allow Go Plugins to inject template data | 2019-12-17 | 1 | -0/+21 | ||
| | ||||||
* | Allow Lua plugins to inject all templates | 2019-12-17 | 2 | -2/+9 | ||
| | ||||||
* | Use Context.FormParams | 2019-12-17 | 1 | -2/+4 | ||
| | ||||||
* | Linkify address lists | 2019-12-17 | 3 | -12/+17 | ||
| | ||||||
* | Redirect / to INBOX | 2019-12-17 | 1 | -0/+4 | ||
| | ||||||
* | Add a form to set message flags | 2019-12-17 | 6 | -24/+133 | ||
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/36 | |||||
* | plugins/base: extract route registration into function | 2019-12-17 | 2 | -28/+30 | ||
| | ||||||
* | themes/sourcehut: use formatdate template func | 2019-12-17 | 1 | -2/+2 | ||
| | ||||||
* | Add envelope metadata to message view | 2019-12-17 | 3 | -11/+52 | ||
| | ||||||
* | Improve docs | 2019-12-17 | 3 | -8/+33 | ||
| | ||||||
* | Add button to delete message | 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 | 2019-12-16 | 5 | -2/+59 | ||
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/36 | |||||
* | Update deps | 2019-12-16 | 2 | -33/+25 | ||
| | ||||||
* | Export IMAPMessage | 2019-12-16 | 2 | -16/+16 | ||
| | | | | This is a public type other plugins and templates may want to access. | |||||
* | Add attachments support to composer | 2019-12-16 | 3 | -9/+57 | ||
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/13 | |||||
* | go fmt | 2019-12-16 | 3 | -4/+4 | ||
| | ||||||
* | Use <label> in compose form | 2019-12-16 | 2 | -9/+12 | ||
| | ||||||
* | Add basic search | 2019-12-16 | 5 | -9/+74 | ||
| | | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/23 | |||||
* | Add line break to login form | 2019-12-16 | 1 | -0/+1 | ||
| | ||||||
* | Replace Session.ConnectSMTP with Session.DoSMTP | 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 | 2019-12-16 | 2 | -6/+6 | ||
| | ||||||
* | Remove the public/ directory | 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 | 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 | 2019-12-16 | 3 | -1/+111 | ||
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/39 | |||||
* | gitignore: don't ignore sourcehut theme | 2019-12-12 | 1 | -2/+3 | ||
| | ||||||
* | Add simple Sourcehut-based theme | 2019-12-12 | 11 | -4/+5967 | ||
| | ||||||
* | Fix undefined ErrSessionExpired | 2019-12-12 | 2 | -2/+2 | ||
| | | | | Fixes: f07ab5263246 ("Add docs") | |||||
* | Add docs | 2019-12-11 | 4 | -4/+26 | ||
| | ||||||
* | Allow plugins to provide their own templates | 2019-12-11 | 4 | -8/+27 | ||
| | ||||||
* | readme: add godoc badge | 2019-12-11 | 1 | -0/+2 | ||
| | ||||||
* | Export Server.{Sessions,Plugins} | 2019-12-11 | 4 | -13/+12 | ||
| | | | | And unexport a few internal functions. | |||||
* | Unexport NewSessionManager | 2019-12-11 | 2 | -2/+2 | ||
| | | | | This isn't intended to be used by plugins. | |||||
* | Export Context.SetSession, unexport Session.Token | 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 | 2019-12-11 | 3 | -29/+34 | ||
| | | | | This allows plugins to access it. | |||||
* | Add plugins/ to .gitignore | 2019-12-10 | 1 | -0/+1 | ||
| | ||||||
* | go fmt | 2019-12-10 | 3 | -17/+17 | ||
| | ||||||
* | Introduce GlobalRenderData and RenderData | 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 | 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 | 2019-12-10 | 1 | -0/+5 | ||
| | ||||||
* | Rename Plugin.Render to Plugin.Inject | 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 | 2019-12-10 | 2 | -151/+158 | ||
| | ||||||
* | Allow plugins to add new routes | 2019-12-10 | 3 | -0/+40 | ||
| | | | | References: https://todo.sr.ht/~sircmpwn/koushin/6 |