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