forked from GoAdminGroup/go-admin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
operators.go
87 lines (78 loc) · 1.87 KB
/
operators.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package types
import "html/template"
type FilterOperator string
const (
FilterOperatorLike FilterOperator = "like"
FilterOperatorGreater FilterOperator = ">"
FilterOperatorGreaterOrEqual FilterOperator = ">="
FilterOperatorEqual FilterOperator = "="
FilterOperatorNotEqual FilterOperator = "!="
FilterOperatorLess FilterOperator = "<"
FilterOperatorLessOrEqual FilterOperator = "<="
FilterOperatorFree FilterOperator = "free"
)
func GetOperatorFromValue(value string) FilterOperator {
switch value {
case "like":
return FilterOperatorLike
case "gr":
return FilterOperatorGreater
case "gq":
return FilterOperatorGreaterOrEqual
case "eq":
return FilterOperatorEqual
case "ne":
return FilterOperatorNotEqual
case "le":
return FilterOperatorLess
case "lq":
return FilterOperatorLessOrEqual
case "free":
return FilterOperatorFree
default:
return FilterOperatorEqual
}
}
func (o FilterOperator) Value() string {
switch o {
case FilterOperatorLike:
return "like"
case FilterOperatorGreater:
return "gr"
case FilterOperatorGreaterOrEqual:
return "gq"
case FilterOperatorEqual:
return "eq"
case FilterOperatorNotEqual:
return "ne"
case FilterOperatorLess:
return "le"
case FilterOperatorLessOrEqual:
return "lq"
case FilterOperatorFree:
return "free"
default:
return "eq"
}
}
func (o FilterOperator) String() string {
return string(o)
}
func (o FilterOperator) Label() template.HTML {
if o == FilterOperatorLike {
return ""
}
return template.HTML(o)
}
func (o FilterOperator) AddOrNot() bool {
return string(o) != "" && o != FilterOperatorFree
}
func (o FilterOperator) Valid() bool {
switch o {
case FilterOperatorLike, FilterOperatorGreater, FilterOperatorGreaterOrEqual,
FilterOperatorLess, FilterOperatorLessOrEqual, FilterOperatorFree:
return true
default:
return false
}
}