diff options
Diffstat (limited to 'cmd')
| -rw-r--r-- | cmd/server/handlers.go | 15 | ||||
| -rw-r--r-- | cmd/server/site.go | 6 |
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() |
