aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/server/handlers.go15
-rw-r--r--cmd/server/site.go6
2 files changed, 20 insertions, 1 deletions
diff --git a/cmd/server/handlers.go b/cmd/server/handlers.go
index 00de42b..5479a18 100644
--- a/cmd/server/handlers.go
+++ b/cmd/server/handlers.go
@@ -32,10 +32,23 @@ type templateData struct {
func (td templateData) QuerySetEncode(k, v string) template.URL {
qs, _ := url.ParseQuery(td.Query.Encode())
- qs.Set(k, v)
+ if v == "" {
+ qs.Del(k)
+ } else {
+ qs.Set(k, v)
+ }
return template.URL(qs.Encode())
}
+func (td templateData) QuerySetContains(s string) bool {
+ for k, _ := range td.Query {
+ if k == s {
+ return true
+ }
+ }
+ return false
+}
+
func newTemplateData(r *http.Request) *templateData {
out := &templateData{
Domain: domain,
diff --git a/cmd/server/site.go b/cmd/server/site.go
index 36f890f..c8b0d08 100644
--- a/cmd/server/site.go
+++ b/cmd/server/site.go
@@ -53,6 +53,12 @@ func handleSite(db sws.SiteStore, rndr Renderer) http.HandlerFunc {
payload.PageSet = ps
}
}
+ if _, ok := filter["referrer"]; !ok {
+ if rs := sws.NewReferrerSet(hitSet); rs != nil {
+ rs.SortByName()
+ payload.ReferrerSet = rs
+ }
+ }
if _, ok := filter["country"]; !ok {
if cs := sws.NewCountrySet(hitSet); cs != nil {
cs.SortByHits()