Make label search working for umlauts
This commit is contained in:
parent
67cf854ae8
commit
94c3f534be
|
@ -1,7 +1,6 @@
|
|||
package form
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"strconv"
|
||||
|
@ -29,7 +28,7 @@ type LabelSearch struct {
|
|||
}
|
||||
|
||||
func (f *LabelSearch) ParseQueryString() (result error) {
|
||||
var key, value []byte
|
||||
var key, value []rune
|
||||
var escaped, isKeyValue bool
|
||||
|
||||
query := f.Query
|
||||
|
@ -43,9 +42,9 @@ func (f *LabelSearch) ParseQueryString() (result error) {
|
|||
for _, char := range query {
|
||||
if unicode.IsSpace(char) && !escaped {
|
||||
if isKeyValue {
|
||||
fieldName := string(bytes.Title(bytes.ToLower(key)))
|
||||
fieldName := strings.Title(string(key))
|
||||
field := formValues.FieldByName(fieldName)
|
||||
stringValue := string(bytes.ToLower(value))
|
||||
stringValue := string(value)
|
||||
|
||||
if field.CanSet() {
|
||||
switch field.Interface().(type) {
|
||||
|
@ -90,7 +89,7 @@ func (f *LabelSearch) ParseQueryString() (result error) {
|
|||
result = fmt.Errorf("unknown filter: %s", fieldName)
|
||||
}
|
||||
} else {
|
||||
f.Query = string(bytes.ToLower(key))
|
||||
f.Query = string(key)
|
||||
}
|
||||
|
||||
escaped = false
|
||||
|
@ -102,9 +101,9 @@ func (f *LabelSearch) ParseQueryString() (result error) {
|
|||
} else if char == '"' {
|
||||
escaped = !escaped
|
||||
} else if isKeyValue {
|
||||
value = append(value, byte(char))
|
||||
value = append(value, unicode.ToLower(char))
|
||||
} else {
|
||||
key = append(key, byte(char))
|
||||
key = append(key, unicode.ToLower(char))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user