Making the web interface a bit better

This commit is contained in:
Chris Sexton 2013-06-01 13:29:12 -04:00
parent edd941fe46
commit 242be51029
5 changed files with 77 additions and 17 deletions

View File

@ -147,7 +147,10 @@ func NewBot(config *config.Config, c *irc.Conn) *Bot {
}
http.HandleFunc("/", bot.serveRoot)
go http.ListenAndServe(":8080", nil)
if config.HttpAddr == "" {
config.HttpAddr = "127.0.0.1:1337"
}
go http.ListenAndServe(config.HttpAddr, nil)
return bot
}

View File

@ -12,6 +12,7 @@
"QuoteTime": 1,
"LogLength": 50,
"Admins": ["<Admin Nick>"],
"HttpAddr": "127.0.0.1:1337",
"UntappdToken": "<Your Token>",
"UntappdFreq": 3600,

View File

@ -19,6 +19,7 @@ type Config struct {
QuoteTime int
LogLength int
Admins []string
HttpAddr string
UntappdToken string
UntappdFreq int
WelcomeMsgs []string

View File

@ -470,6 +470,7 @@ func (p *FactoidPlugin) serveQuery(w http.ResponseWriter, r *http.Request) {
p.Coll.Find(bson.M{"trigger": e}).All(&entries)
context["Count"] = fmt.Sprintf("Found %d entries", len(entries))
context["Entries"] = entries
context["Search"] = e
} else {
context["Error"] = "Something's fucked."
}

View File

@ -7,28 +7,82 @@ var factoidIndex string = `
<!DOCTYPE html>
<html>
<head>
<title>Factoids</title>
<title>Factoids</title>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.1.0/pure-min.css">
</head>
{{if .Error}}
<div id="error">{{.Error}}</div>
{{end}}
<div>
<form action="/factoid/req" method="POST">
<input type="text" name="entry" /> <input type="submit" value="Find" />
<form action="/factoid/req" method="POST" class="pure-form">
<fieldset>
<legend>Search for a factoid</legend>
<input type="text" name="entry" placeholder="trigger" value="{{.Search}}" />
<button type="submit" class="pure-button notice">Find</button>
</fieldset>
</form>
</div>
{{ $entries := .Entries }}
<div>
<style scoped>
{{if .Count}}
<div id="count">Found {{.Count}} entries.</div>
.pure-button-success,
.pure-button-error,
.pure-button-warning,
.pure-button-secondary {
color: white;
border-radius: 4px;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
padding: 2px;
}
.pure-button-success {
background: rgb(76, 201, 71); /* this is a green */
}
.pure-button-error {
background: rgb(202, 60, 60); /* this is a maroon */
}
.pure-button-warning {
background: orange;
}
.pure-button-secondary {
background: rgb(95, 198, 218); /* this is a light blue */
}
</style>
{{if .Error}}
<span id="error" class="pure-button-error">{{.Error}}</span>
{{end}}
{{range $entries}}
<div class="entry">
{{.Trigger}} - {{.Action}}
{{if .Count}}
<span id="count" class="pure-button-success">Found {{.Count}} entries.</span>
{{end}}
</div>
{{if .Entries}}
<div style="padding-top: 1em;">
<table class="pure-table">
<thead>
<tr>
<th>Trigger</th>
<th>Full Text</th>
<th>Author</th>
<th># Hits</th>
</tr>
</thead>
<tbody>
{{range .Entries}}
<tr>
<td>{{.Trigger}}</td>
<td>{{.FullText}}</td>
<td>{{.CreatedBy}}</td>
<td>{{.AccessCount}}</td>
</tr>
{{end}}
</tbody>
</table>
</div>
{{end}}