1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | QueryBuilder.types = {
|
8 | 'string': 'string',
|
9 | 'integer': 'number',
|
10 | 'double': 'number',
|
11 | 'date': 'datetime',
|
12 | 'time': 'datetime',
|
13 | 'datetime': 'datetime',
|
14 | 'boolean': 'boolean'
|
15 | };
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | QueryBuilder.inputs = [
|
24 | 'text',
|
25 | 'number',
|
26 | 'textarea',
|
27 | 'radio',
|
28 | 'checkbox',
|
29 | 'select'
|
30 | ];
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | QueryBuilder.modifiable_options = [
|
39 | 'display_errors',
|
40 | 'allow_groups',
|
41 | 'allow_empty',
|
42 | 'default_condition',
|
43 | 'default_filter'
|
44 | ];
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 | QueryBuilder.selectors = {
|
52 | group_container: '.rules-group-container',
|
53 | rule_container: '.rule-container',
|
54 | filter_container: '.rule-filter-container',
|
55 | operator_container: '.rule-operator-container',
|
56 | value_container: '.rule-value-container',
|
57 | error_container: '.error-container',
|
58 | condition_container: '.rules-group-header .group-conditions',
|
59 |
|
60 | rule_header: '.rule-header',
|
61 | group_header: '.rules-group-header',
|
62 | group_actions: '.group-actions',
|
63 | rule_actions: '.rule-actions',
|
64 |
|
65 | rules_list: '.rules-group-body>.rules-list',
|
66 |
|
67 | group_condition: '.rules-group-header [name$=_cond]',
|
68 | rule_filter: '.rule-filter-container [name$=_filter]',
|
69 | rule_operator: '.rule-operator-container [name$=_operator]',
|
70 | rule_value: '.rule-value-container [name*=_value_]',
|
71 |
|
72 | add_rule: '[data-add=rule]',
|
73 | delete_rule: '[data-delete=rule]',
|
74 | add_group: '[data-add=group]',
|
75 | delete_group: '[data-delete=group]'
|
76 | };
|
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 | QueryBuilder.templates = {};
|
84 |
|
85 |
|
86 |
|
87 |
|
88 |
|
89 |
|
90 | QueryBuilder.regional = {};
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 |
|
97 | QueryBuilder.OPERATORS = {
|
98 | equal: { type: 'equal', nb_inputs: 1, multiple: false, apply_to: ['string', 'number', 'datetime', 'boolean'] },
|
99 | not_equal: { type: 'not_equal', nb_inputs: 1, multiple: false, apply_to: ['string', 'number', 'datetime', 'boolean'] },
|
100 | in: { type: 'in', nb_inputs: 1, multiple: true, apply_to: ['string', 'number', 'datetime'] },
|
101 | not_in: { type: 'not_in', nb_inputs: 1, multiple: true, apply_to: ['string', 'number', 'datetime'] },
|
102 | less: { type: 'less', nb_inputs: 1, multiple: false, apply_to: ['number', 'datetime'] },
|
103 | less_or_equal: { type: 'less_or_equal', nb_inputs: 1, multiple: false, apply_to: ['number', 'datetime'] },
|
104 | greater: { type: 'greater', nb_inputs: 1, multiple: false, apply_to: ['number', 'datetime'] },
|
105 | greater_or_equal: { type: 'greater_or_equal', nb_inputs: 1, multiple: false, apply_to: ['number', 'datetime'] },
|
106 | between: { type: 'between', nb_inputs: 2, multiple: false, apply_to: ['number', 'datetime'] },
|
107 | not_between: { type: 'not_between', nb_inputs: 2, multiple: false, apply_to: ['number', 'datetime'] },
|
108 | begins_with: { type: 'begins_with', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
109 | not_begins_with: { type: 'not_begins_with', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
110 | contains: { type: 'contains', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
111 | not_contains: { type: 'not_contains', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
112 | ends_with: { type: 'ends_with', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
113 | not_ends_with: { type: 'not_ends_with', nb_inputs: 1, multiple: false, apply_to: ['string'] },
|
114 | is_empty: { type: 'is_empty', nb_inputs: 0, multiple: false, apply_to: ['string'] },
|
115 | is_not_empty: { type: 'is_not_empty', nb_inputs: 0, multiple: false, apply_to: ['string'] },
|
116 | is_null: { type: 'is_null', nb_inputs: 0, multiple: false, apply_to: ['string', 'number', 'datetime', 'boolean'] },
|
117 | is_not_null: { type: 'is_not_null', nb_inputs: 0, multiple: false, apply_to: ['string', 'number', 'datetime', 'boolean'] }
|
118 | };
|
119 |
|
120 |
|
121 |
|
122 |
|
123 |
|
124 |
|
125 | QueryBuilder.DEFAULTS = {
|
126 | filters: [],
|
127 | plugins: [],
|
128 |
|
129 | sort_filters: false,
|
130 | display_errors: true,
|
131 | allow_groups: -1,
|
132 | allow_empty: false,
|
133 | conditions: ['AND', 'OR'],
|
134 | default_condition: 'AND',
|
135 | inputs_separator: ' , ',
|
136 | select_placeholder: '------',
|
137 | display_empty_filter: true,
|
138 | default_filter: null,
|
139 | optgroups: {},
|
140 |
|
141 | default_rule_flags: {
|
142 | filter_readonly: false,
|
143 | operator_readonly: false,
|
144 | value_readonly: false,
|
145 | no_delete: false
|
146 | },
|
147 |
|
148 | default_group_flags: {
|
149 | condition_readonly: false,
|
150 | no_add_rule: false,
|
151 | no_add_group: false,
|
152 | no_delete: false
|
153 | },
|
154 |
|
155 | templates: {
|
156 | group: null,
|
157 | rule: null,
|
158 | filterSelect: null,
|
159 | operatorSelect: null
|
160 | },
|
161 |
|
162 | lang_code: 'en',
|
163 | lang: {},
|
164 |
|
165 | operators: [
|
166 | 'equal',
|
167 | 'not_equal',
|
168 | 'in',
|
169 | 'not_in',
|
170 | 'less',
|
171 | 'less_or_equal',
|
172 | 'greater',
|
173 | 'greater_or_equal',
|
174 | 'between',
|
175 | 'not_between',
|
176 | 'begins_with',
|
177 | 'not_begins_with',
|
178 | 'contains',
|
179 | 'not_contains',
|
180 | 'ends_with',
|
181 | 'not_ends_with',
|
182 | 'is_empty',
|
183 | 'is_not_empty',
|
184 | 'is_null',
|
185 | 'is_not_null'
|
186 | ],
|
187 |
|
188 | icons: {
|
189 | add_group: 'glyphicon glyphicon-plus-sign',
|
190 | add_rule: 'glyphicon glyphicon-plus',
|
191 | remove_group: 'glyphicon glyphicon-remove',
|
192 | remove_rule: 'glyphicon glyphicon-remove',
|
193 | error: 'glyphicon glyphicon-warning-sign'
|
194 | }
|
195 | };
|