aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add Server.ReloadSimon Ser2020-01-083-16/+36
| | | | | This only reloads templates for now. In the future it'll also reload Lua plugins.
* Make New return the ServerSimon Ser2020-01-082-6/+7
| | | | This will be useful to implement hot reload.
* themes/sourcehut: add search input to mailbox viewSimon Ser2019-12-253-0/+14
|
* Fix extra comma in address listSimon Ser2019-12-181-1/+1
|
* Fix header missing from raw e-mail downloadSimon Ser2019-12-181-1/+11
|
* Add a default CSPSimon Ser2019-12-181-0/+7
| | | | | Disallows loading external ressources. Providers can override it with their reverse proxy settings.
* Implement paging for searchSimon Ser2019-12-173-16/+30
|
* Document that plugins don't have access to passwordsSimon Ser2019-12-171-0/+3
|
* Make Go plugin handlers take a *ContextSimon Ser2019-12-172-38/+25
| | | | | Take a *Context instead of a echo.Context. This saves a type assertion in each handler.
* Add Context to Plugin.InjectSimon Ser2019-12-174-7/+7
| | | | This allows to access the request metadata and the session from injectors.
* Add RenderData interfaceSimon Ser2019-12-175-27/+57
| | | | This allows Go plugins to easily inject global data.
* Rename RenderData to BaseRenderDataSimon Ser2019-12-172-12/+12
| | | | RenderData will be used for an interface.
* Allow Go Plugins to inject template dataSimon Ser2019-12-171-0/+21
|
* Allow Lua plugins to inject all templatesSimon Ser2019-12-172-2/+9
|
* Use Context.FormParamsSimon Ser2019-12-171-2/+4
|
* Linkify address listsSimon Ser2019-12-173-12/+17
|
* Redirect / to INBOXSimon Ser2019-12-171-0/+4
|
* Add a form to set message flagsSimon Ser2019-12-176-24/+133
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/36
* plugins/base: extract route registration into functionSimon Ser2019-12-172-28/+30
|
* themes/sourcehut: use formatdate template funcSimon Ser2019-12-171-2/+2
|
* Add envelope metadata to message viewSimon Ser2019-12-173-11/+52
|
* Improve docsSimon Ser2019-12-173-8/+33
|
* Add button to delete messageSimon Ser2019-12-163-0/+47
| | | | | | Maybe we should add a confirmation step in the future. References: https://todo.sr.ht/~sircmpwn/koushin/36
* Add form to move messagesSimon Ser2019-12-165-2/+59
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/36
* Update depsSimon Ser2019-12-162-33/+25
|
* Export IMAPMessageSimon Ser2019-12-162-16/+16
| | | | This is a public type other plugins and templates may want to access.
* Add attachments support to composerSimon Ser2019-12-163-9/+57
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/13
* go fmtSimon Ser2019-12-163-4/+4
|
* Use <label> in compose formSimon Ser2019-12-162-9/+12
|
* Add basic searchSimon Ser2019-12-165-9/+74
| | | | Closes: https://todo.sr.ht/~sircmpwn/koushin/23
* Add line break to login formSimon Ser2019-12-161-0/+1
|
* Replace Session.ConnectSMTP with Session.DoSMTPSimon Ser2019-12-162-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.DoIMAPSimon Ser2019-12-162-6/+6
|
* Remove the public/ directorySimon Ser2019-12-1615-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 pluginSimon Ser2019-12-1622-450/+521
| | | | | | This plugin offers base IMAP/SMTP functionality. References: https://todo.sr.ht/~sircmpwn/koushin/39
* Add an API for Go pluginsSimon Ser2019-12-163-1/+111
| | | | References: https://todo.sr.ht/~sircmpwn/koushin/39
* gitignore: don't ignore sourcehut themeSimon Ser2019-12-121-2/+3
|
* Add simple Sourcehut-based themeDrew DeVault2019-12-1211-4/+5967
|
* Fix undefined ErrSessionExpiredSimon Ser2019-12-122-2/+2
| | | | Fixes: f07ab5263246 ("Add docs")
* Add docsSimon Ser2019-12-114-4/+26
|
* Allow plugins to provide their own templatesSimon Ser2019-12-114-8/+27
|
* readme: add godoc badgeSimon Ser2019-12-111-0/+2
|
* Export Server.{Sessions,Plugins}Simon Ser2019-12-114-13/+12
| | | | And unexport a few internal functions.
* Unexport NewSessionManagerSimon Ser2019-12-112-2/+2
| | | | This isn't intended to be used by plugins.
* Export Context.SetSession, unexport Session.TokenSimon Ser2019-12-113-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 ContextSimon Ser2019-12-113-29/+34
| | | | This allows plugins to access it.
* Add plugins/ to .gitignoreSimon Ser2019-12-101-0/+1
|
* go fmtSimon Ser2019-12-103-17/+17
|
* Introduce GlobalRenderData and RenderDataSimon Ser2019-12-102-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 startupSimon Ser2019-12-101-13/+54
| | | | This is the first step to allow each user to have a different theme.