aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/html/html.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/html/html.go')
-rw-r--r--pkg/html/html.go29
1 files changed, 27 insertions, 2 deletions
diff --git a/pkg/html/html.go b/pkg/html/html.go
index 72c2956e0..930fdd923 100644
--- a/pkg/html/html.go
+++ b/pkg/html/html.go
@@ -194,6 +194,30 @@ func commitLink(repo, commit string) string {
}
func AmendURL(baseURL, key, value string) string {
+ return TransformURL(baseURL, key, func(_ []string) []string {
+ if value == "" {
+ return nil
+ }
+ return []string{value}
+ })
+}
+
+func DropParam(baseURL, key, value string) string {
+ return TransformURL(baseURL, key, func(oldValues []string) []string {
+ if value == "" {
+ return nil
+ }
+ var newValues []string
+ for _, iterVal := range oldValues {
+ if iterVal != value {
+ newValues = append(newValues, iterVal)
+ }
+ }
+ return newValues
+ })
+}
+
+func TransformURL(baseURL, key string, f func([]string) []string) string {
if baseURL == "" {
return ""
}
@@ -202,10 +226,11 @@ func AmendURL(baseURL, key, value string) string {
return ""
}
values := parsed.Query()
- if value == "" {
+ ret := f(values[key])
+ if len(ret) == 0 {
values.Del(key)
} else {
- values.Set(key, value)
+ values[key] = ret
}
parsed.RawQuery = values.Encode()
return parsed.String()