visual_condition_builder 2.1.2 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +13 -8
- data/app/assets/javascripts/visual_condition_builder/condition_builder.js +43 -1
- data/app/helpers/visual_condition_builder/application_helper.rb +6 -4
- data/app/views/visual_condition_builder/_conditions_fields.html.erb +3 -3
- data/lib/visual_condition_builder/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7bd746c4a51174047bd1f502175d0c7ec290d5f
|
4
|
+
data.tar.gz: 085a8891eb6e9463723e88ada7acaee3237785d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1c8e5a9583dbd1b38763be95cf4af04e0bc3bb39cd63c1893893b726d05ca6f24dc633e6b2ff26153f0ba6a4cebb4e753610cf5b1103f4daeaef342c2a54d07
|
7
|
+
data.tar.gz: 3b4fcdbf826ab6844ab500464cf23412f3a93fdf7f1d058734fc19207c928c9d602a2738b21dbe1befcbf10cef243f95d08269d2b01b5b018ecc8a252176e6dd
|
data/README.md
CHANGED
@@ -260,15 +260,14 @@ end
|
|
260
260
|
#### (view) conditions_fields(name_of_dictionary)
|
261
261
|
|
262
262
|
Creates a field selector in a dropdown element (bootstrap).
|
263
|
-
Cria um seletor de campos em um elemento dropdown (bootstrap).
|
264
|
-
|
265
263
|
```haml
|
266
264
|
= conditions_fields :example
|
267
265
|
-# with context:
|
268
266
|
= conditions_fields({:dictionary_name => :context_name})
|
269
267
|
```
|
270
268
|
|
271
|
-
|
269
|
+
You can create the list item manually `ExampleDictionary.fields (dictionary_name)` *(example_dictionary.rb)*,
|
270
|
+
you must have 'clickable' elements with an `add-condition-field` class and `data-field: field_name` attribute
|
272
271
|
```haml
|
273
272
|
%a.add-condition-field{href: '#', data: {field: 'name'}} Name
|
274
273
|
%a.add-condition-field{href: '#', data: {field: 'age'}} Age
|
@@ -287,14 +286,20 @@ How create condition builder in you view:
|
|
287
286
|
-# Conditions Element
|
288
287
|
= build_conditions :example, input: '#my_conditions', select2Config: {allowClear: true}
|
289
288
|
```
|
289
|
+
Default element id: dictionary_name + context_name + condition_container: `example_default_condition_container`
|
290
290
|
|
291
|
-
|
292
|
-
|
293
|
-
Para criar baseado em um dicionário de contexto específico use:
|
291
|
+
To create based on a specific context dictionary use:
|
294
292
|
```haml
|
295
293
|
= build_conditions({:dictionary_name => :context_name}, input: '#my_conditions', select2Config: {allowClear: true})
|
296
294
|
```
|
297
|
-
|
295
|
+
|
296
|
+
Its possible change `conditions_fields` title:
|
297
|
+
```haml
|
298
|
+
= conditions_fields :example, title: 'Click here to select a field'
|
299
|
+
```
|
300
|
+
|
301
|
+
|
302
|
+
Possible arguments for build_conditions are:
|
298
303
|
|
299
304
|
Param | Description
|
300
305
|
--- | ---
|
@@ -305,7 +310,7 @@ debug | to see debugs flags. default: false
|
|
305
310
|
numericConfig | When the field is decimal type then the generator will create an input with numeric mask. Default {aSep: '', aDec: '.', aSign: ''}. See [Auto Numeric Plugin](https://github.com/BobKnothe/autoNumeric#default-settings--supported-options)
|
306
311
|
select2Config: | Select2 Configuration. Default {theme: "bootstrap", width: 'auto', placeholder: '', allowClear: false, dropdownAutoWidth: 'true', tags: false, language: "en"}, but some parameters can be overwritten by condition builder. See [Select2 Plugin](https://github.com/select2/select2)
|
307
312
|
|
308
|
-
|
313
|
+
You can also create the builder manually by calling the jquery plugin:
|
309
314
|
```javascript
|
310
315
|
//my_dictionary_json = ExampleDictionary.dictionary(:example).to_json
|
311
316
|
//my_initial_values = [['name','eq','My Name']]
|
@@ -10,6 +10,7 @@
|
|
10
10
|
values: [],
|
11
11
|
input: '',
|
12
12
|
debug: false,
|
13
|
+
show: false,
|
13
14
|
numericConfig: {
|
14
15
|
aSep: '',
|
15
16
|
aDec: '.',
|
@@ -51,6 +52,7 @@
|
|
51
52
|
if (!is_blank(fieldObj.group)) {
|
52
53
|
field_label = Object.values(fieldObj.group)[0] + ' : ' + field_label;
|
53
54
|
}
|
55
|
+
|
54
56
|
block.append('<input id="field_'+new_id+'" data-group-id="'+new_id+'" type="hidden" class="field form-control" value="' + fieldObj.field + '" data-type="' + fieldObj.type + '" />');
|
55
57
|
block.append('<span id="field_name_'+new_id+'" data-group-id="'+new_id+'" class="field_name label label-info">' + field_label + ' <a href="" id="remove_condition_'+new_id+'" data-group-id="'+new_id+'" class="remove-condition">✖</a></span>');
|
56
58
|
block.append('<select id="operators_'+new_id+'" data-group-id="'+new_id+'" class="operators hide form-control"></select>');
|
@@ -158,7 +160,11 @@
|
|
158
160
|
} else {
|
159
161
|
plugin.parameters.values = values;
|
160
162
|
}
|
161
|
-
|
163
|
+
if (plugin.parameters.show==true) {
|
164
|
+
show_rows();
|
165
|
+
} else {
|
166
|
+
build_rows();
|
167
|
+
}
|
162
168
|
}; //END load_values
|
163
169
|
|
164
170
|
plugin.load_values_from_input = function (element_input) {
|
@@ -209,6 +215,24 @@
|
|
209
215
|
return f;
|
210
216
|
}; //END getFieldByName
|
211
217
|
|
218
|
+
var getOperatorFromField = function (operator_name, field_name_or_operators) {
|
219
|
+
if (jQuery.isArray(field_name_or_operators)) {
|
220
|
+
var operators = field_name_or_operators;
|
221
|
+
} else {
|
222
|
+
var fieldObj = getFieldByName(field_name);
|
223
|
+
var operators = fieldObj.operators;
|
224
|
+
}
|
225
|
+
var f = $.map(operators, function (h, i) {
|
226
|
+
if (h.operator == operator_name) {
|
227
|
+
return h;
|
228
|
+
}
|
229
|
+
});
|
230
|
+
if (jQuery.isArray(f)) {
|
231
|
+
f = f[0];
|
232
|
+
}
|
233
|
+
return f;
|
234
|
+
}; //END getFieldByName
|
235
|
+
|
212
236
|
var getLabel = function (obj) {
|
213
237
|
if (!is_blank(obj.label)) {
|
214
238
|
return String(obj.label);
|
@@ -319,6 +343,24 @@
|
|
319
343
|
plugin.getResult();
|
320
344
|
}; //END event_build_expression
|
321
345
|
|
346
|
+
/* UNDER CONSTRUCTION */
|
347
|
+
var show_rows = function () {
|
348
|
+
$element.find('.conditions').html('');
|
349
|
+
if (!is_blank(plugin.parameters.values) && plugin.parameters.values.length > 0) {
|
350
|
+
var $listUl = $('<ul class="list-unstyled"></ul>');
|
351
|
+
$.each(plugin.parameters.values, function (i, data) {
|
352
|
+
var fieldObj = getFieldByName(data[0]);
|
353
|
+
var operatorObj = getOperatorFromField(data[1], fieldObj.operators);
|
354
|
+
var $listItem = $('<li></li>');
|
355
|
+
$listItem.append('<span class="pr-2">'+getLabel(fieldObj)+'</span>');
|
356
|
+
$listItem.append('<span class="pr-2">'+getLabel(operatorObj)+'</span>');
|
357
|
+
$listItem.append('<span class="">'+data[2]+'</span>');
|
358
|
+
$listItem.appendTo($listUl);
|
359
|
+
});
|
360
|
+
$element.append($listUl);
|
361
|
+
}
|
362
|
+
};
|
363
|
+
|
322
364
|
var build_rows = function () {
|
323
365
|
$element.find('.conditions').html('');
|
324
366
|
if (!is_blank(plugin.parameters.values) && plugin.parameters.values.length > 0) {
|
@@ -16,12 +16,14 @@ module VisualConditionBuilder
|
|
16
16
|
render partial: 'visual_condition_builder/builder_conditions', locals: {container_name: container_name, builder_options: builder_options.to_json.html_safe}
|
17
17
|
end
|
18
18
|
|
19
|
-
def conditions_fields(dictionary)
|
19
|
+
def conditions_fields(dictionary, title: nil)
|
20
20
|
dictionary_name = get_dictionary_name(dictionary)
|
21
21
|
dictionary_klass = get_dictionary_klass(dictionary)
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
container_id = "##{dictionary_name}_condition_container"
|
23
|
+
fields = dictionary_klass.fields(get_dictionary_context(dictionary))
|
24
|
+
title = I18n.t(:dropdown, default: ['Fields'], scope: [:condition_builder]) if title.blank?
|
25
|
+
render partial: 'visual_condition_builder/conditions_fields',
|
26
|
+
locals: {container_id: container_id, fields: fields, title: title}
|
25
27
|
end
|
26
28
|
|
27
29
|
private
|
@@ -1,6 +1,6 @@
|
|
1
|
-
<div class="dropdown add-condition" data-target="<%=
|
1
|
+
<div class="dropdown add-condition" data-target="<%= container_id %>">
|
2
2
|
<button class="btn btn-default dropdown-toggle" data-toggle="dropdown", data-type="button">
|
3
|
-
<%=
|
3
|
+
<%= title %>
|
4
4
|
<span class="caret"></span>
|
5
5
|
</button>
|
6
6
|
<ul class="dropdown-menu dropdown-menu-scrollable add-condition-menu">
|
@@ -8,6 +8,6 @@
|
|
8
8
|
<input type="text" class="form-control dropdown-filter-control" autocomplete="off" role="textbox" aria-label="Search">
|
9
9
|
</li>
|
10
10
|
<li role="separator" class="divider"></li>
|
11
|
-
<%= render partial: 'visual_condition_builder/conditions_fields_item', locals: {fields:
|
11
|
+
<%= render partial: 'visual_condition_builder/conditions_fields_item', locals: {fields: fields} %>
|
12
12
|
</ul>
|
13
13
|
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: visual_condition_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Porto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-09-
|
11
|
+
date: 2017-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|