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  }