1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-17 17:47:03 +00:00

Add customizable greeting to index page

Allow an organization to copy the greeting.html file out of the themes
directory, customize it, then point the greeting.file config option at
it so that it will survive Inbucket upgrades.
This commit is contained in:
James Hillyerd
2013-10-10 14:04:22 -07:00
parent dcc5d240cb
commit 97a2016177
8 changed files with 43 additions and 9 deletions

View File

@@ -35,6 +35,7 @@ type WebConfig struct {
TemplateDir string
TemplateCache bool
PublicDir string
GreetingFile string
}
type DataStoreConfig struct {
@@ -328,6 +329,13 @@ func parseWebConfig() error {
}
webConfig.PublicDir = str
option = "greeting.file"
str, err = Config.String(section, option)
if err != nil {
return fmt.Errorf("Failed to parse [%v]%v: '%v'", section, option, err)
}
webConfig.GreetingFile = str
return nil
}

View File

@@ -81,6 +81,10 @@ template.cache=false
# Path to the selected themes public (static) files
public.dir=%(install.dir)s/themes/%(theme)s/public
# Path to the greeting HTML displayed on front page, can
# be moved out of installation dir for customization
greeting.file=%(install.dir)s/themes/greeting.html
#############################################################################
[datastore]

View File

@@ -81,6 +81,10 @@ template.cache=true
# Path to the selected themes public (static) files
public.dir=%(install.dir)s/themes/%(theme)s/public
# Path to the greeting HTML displayed on front page, can
# be moved out of installation dir for customization
greeting.file=%(install.dir)s/themes/greeting.html
#############################################################################
[datastore]

View File

@@ -81,6 +81,10 @@ template.cache=true
# Path to the selected themes public (static) files
public.dir=%(install.dir)s/themes/%(theme)s/public
# Path to the greeting HTML displayed on front page, can
# be moved out of installation dir for customization
greeting.file=%(install.dir)s/themes/greeting.html
#############################################################################
[datastore]

View File

@@ -81,6 +81,10 @@ template.cache=true
# Path to the selected themes public (static) files
public.dir=%(install.dir)s\themes\%(theme)s\public
# Path to the greeting HTML displayed on front page, can
# be moved out of installation dir for customization
greeting.file=%(install.dir)s\themes\greeting.html
#############################################################################
[datastore]

9
themes/greeting.html Normal file
View File

@@ -0,0 +1,9 @@
<p>Inbucket is an email testing service; it will accept email for any email
address and make it available to view without a password.</p>
<p>To view email for a particular address, enter the username portion
of the address into the box on the upper right and click <em>go</em>.</p>
<p>This message can be customized by editing greeting.html. Change the
configuration option <code>greeting.file</code> if you'd like to move it
outside of the Inbucket installation directory.</p>

View File

@@ -9,11 +9,4 @@
</div>
{{end}}
{{define "content"}}
<p>Inbucket is an email testing service; it will accept email for any email
address and make it available to view without a password.</p>
<p>To view email for a particular address, enter the username portion
of the address into the box on the upper right and click <em>go</em>.</p>
{{end}}
{{define "content"}}{{.greeting}}{{end}}

View File

@@ -3,12 +3,20 @@ package web
import (
"fmt"
"github.com/jhillyerd/inbucket/config"
"html/template"
"io/ioutil"
"net/http"
)
func RootIndex(w http.ResponseWriter, req *http.Request, ctx *Context) (err error) {
greeting, err := ioutil.ReadFile(config.GetWebConfig().GreetingFile)
if err != nil {
return fmt.Errorf("Failed to load greeting: %v", err)
}
return RenderTemplate("root/index.html", w, map[string]interface{}{
"ctx": ctx,
"greeting": template.HTML(string(greeting)),
})
}