visual_condition_builder 2.1.3 → 2.1.4
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5d6d3d0c9810d4ef5e4be6dc926b789fea06d30
|
4
|
+
data.tar.gz: 5df8bfae621f5c89746721e936e5028059a11c39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c6c65c06247ac075cdbd6124d9749f285c247c60fdf90fedcda4a319237d6ae0d2cc08b0d597744b3523c3342bdbf979b4e485b47bd5c676773f43f38120753
|
7
|
+
data.tar.gz: f25e00e1db7d7d1da10accfec93a8ea85c634bc69e399f5233de4d48b45b022f4f560eeae3a400aa038b7bfc9d04ba2eb4f731358553cb418a63b68c5c58e3b8
|
@@ -39,41 +39,45 @@
|
|
39
39
|
//~~~ PUBLIC
|
40
40
|
plugin.add_condition = function (field_name) {
|
41
41
|
var fieldObj = getFieldByName(field_name);
|
42
|
-
if (typeof fieldObj !== 'object') {
|
43
|
-
return;
|
44
|
-
}
|
45
|
-
|
46
42
|
var new_id = new Date().getTime();
|
43
|
+
var $elField, $elOperators, $elValues;
|
47
44
|
|
48
45
|
//BLOCK ELEMENTS HTML
|
49
|
-
var block = $('<div id="group_conditions_'+new_id+'" data-id="'+new_id+'" class="group-conditions clearfix"></div>');
|
46
|
+
var block = $('<div id="group_conditions_' + new_id + '" data-id="' + new_id + '" class="group-conditions clearfix"></div>');
|
50
47
|
block.append('<span class="conditions-move"></span>');
|
51
|
-
var field_label = fieldObj.label;
|
52
|
-
if (!is_blank(fieldObj.group)) {
|
53
|
-
field_label = Object.values(fieldObj.group)[0] + ' : ' + field_label;
|
54
|
-
}
|
55
48
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
49
|
+
if (typeof fieldObj !== 'object') {
|
50
|
+
block.append('<span id="field_name_' + new_id + '" data-group-id="' + new_id + '" class="field_name label label-danger">' + field_name + ' <a href="" id="remove_condition_' + new_id + '" data-group-id="' + new_id + '" class="remove-condition">✖</a></span>');
|
51
|
+
} else {
|
52
|
+
var field_label = fieldObj.label;
|
53
|
+
if (!is_blank(fieldObj.group)) {
|
54
|
+
field_label = Object.values(fieldObj.group)[0] + ' : ' + field_label;
|
55
|
+
}
|
56
|
+
|
57
|
+
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 + '" />');
|
58
|
+
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>');
|
59
|
+
block.append('<select id="operators_' + new_id + '" data-group-id="' + new_id + '" class="operators hide form-control"></select>');
|
60
|
+
block.append('<span id="fixed_operator_' + new_id + '" data-group-id="' + new_id + '" class="fixed_operator hide form-control"></span>');
|
61
|
+
block.append('<select id="values_' + new_id + '" data-group-id="' + new_id + '" class="values hide form-control"></select>');
|
62
|
+
block.append('<input id="fixed_value_' + new_id + '" data-group-id="' + new_id + '" class="fixed_value hide form-control" />');
|
63
|
+
if (plugin.parameters.debug == true) {
|
64
|
+
block.append('<p class="expression help-block"></p>');
|
65
|
+
}
|
66
|
+
$elField = block.find('#field_' + new_id);
|
67
|
+
$elOperators = block.find('#operators_' + new_id);
|
68
|
+
$elValues = block.find('#values_' + new_id + ', #fixed_value_' + new_id);
|
68
69
|
|
69
|
-
|
70
|
-
|
71
|
-
|
70
|
+
//EVENTS
|
71
|
+
block.find('#remove_condition_' + new_id).on('click', event_remove_condition);
|
72
|
+
$elOperators.on('change', event_load_values);
|
73
|
+
}
|
72
74
|
|
73
75
|
$element.append(block);
|
74
76
|
|
75
77
|
//LOAD OPERATORS
|
76
|
-
|
78
|
+
if (typeof $elField != 'undefined') {
|
79
|
+
plugin.load_operators($elField);
|
80
|
+
}
|
77
81
|
|
78
82
|
return block;
|
79
83
|
|
@@ -87,14 +91,17 @@
|
|
87
91
|
};
|
88
92
|
|
89
93
|
plugin.load_operators = function (fieldEl) {
|
94
|
+
if (typeof fieldEl == 'undefined') {
|
95
|
+
return;
|
96
|
+
}
|
90
97
|
var $fieldElement = $(fieldEl);
|
91
98
|
var groupConditionId = $fieldElement.attr('data-group-id');
|
92
99
|
var field_name = getFieldValue($fieldElement);
|
93
100
|
var field = getFieldByName(field_name);
|
94
|
-
var $operators = $('#operators_'+groupConditionId);
|
95
|
-
var $fixedOperator = $('#fixed_operator_'+groupConditionId);
|
96
|
-
var $values = $('.values_'+groupConditionId);
|
97
|
-
var $fixedValue = $('.fixed_value_'+groupConditionId);
|
101
|
+
var $operators = $('#operators_' + groupConditionId);
|
102
|
+
var $fixedOperator = $('#fixed_operator_' + groupConditionId);
|
103
|
+
var $values = $('.values_' + groupConditionId);
|
104
|
+
var $fixedValue = $('.fixed_value_' + groupConditionId);
|
98
105
|
var operators = field.operators;
|
99
106
|
|
100
107
|
remove_plugins_elements(groupConditionId);
|
@@ -119,13 +126,13 @@
|
|
119
126
|
plugin.fill_condition = function (groupConditionId, data) {
|
120
127
|
if (data != undefined && data.length > 0 && groupConditionId != undefined) {
|
121
128
|
var groupConditions = getGroupConditionById(groupConditionId)
|
122
|
-
$elOperators = getOperatorElement(groupConditions);
|
129
|
+
var $elOperators = getOperatorElement(groupConditions);
|
123
130
|
$elOperators.val(data[1]).trigger('change');
|
124
131
|
|
125
|
-
$elOperator = $elOperators.find('option:selected');
|
132
|
+
var $elOperator = $elOperators.find('option:selected');
|
126
133
|
var multiple = $elOperator.attr('data-multiple');
|
127
134
|
|
128
|
-
$elValues = getValueElement(groupConditions);
|
135
|
+
var $elValues = getValueElement(groupConditions);
|
129
136
|
if ($elValues.length > 1) {
|
130
137
|
var values = (typeof data[2] == 'string') ? [data[2]] : data[2];
|
131
138
|
$.each($elValues, function (i, elValue) {
|
@@ -140,7 +147,7 @@
|
|
140
147
|
}
|
141
148
|
});
|
142
149
|
$elValues.val(values).trigger('change');
|
143
|
-
triggerEl = false;
|
150
|
+
// triggerEl = false;
|
144
151
|
}
|
145
152
|
} else {
|
146
153
|
$elValues.val(data[2]);
|
@@ -153,14 +160,14 @@
|
|
153
160
|
if (typeof values == 'string' && !is_blank(values)) {
|
154
161
|
plugin.parameters.values = getJson(values);
|
155
162
|
} else if (is_blank(values) && !is_blank(plugin.parameters.input)) {
|
156
|
-
$elInput = $(plugin.parameters.input);
|
163
|
+
var $elInput = $(plugin.parameters.input);
|
157
164
|
if ($elInput.length > 0 && !is_blank($elInput.val())) {
|
158
165
|
plugin.parameters.values = JSON.parse($elInput.val());
|
159
166
|
}
|
160
167
|
} else {
|
161
168
|
plugin.parameters.values = values;
|
162
169
|
}
|
163
|
-
if (plugin.parameters.show==true) {
|
170
|
+
if (plugin.parameters.show == true) {
|
164
171
|
show_rows();
|
165
172
|
} else {
|
166
173
|
build_rows();
|
@@ -172,7 +179,7 @@
|
|
172
179
|
if ($elInput.length > 0) {
|
173
180
|
try {
|
174
181
|
plugin.parameters.values = JSON.parse($elInput.val());
|
175
|
-
} catch(e) {
|
182
|
+
} catch (e) {
|
176
183
|
plugin.parameters.values = '';
|
177
184
|
}
|
178
185
|
}
|
@@ -200,7 +207,7 @@
|
|
200
207
|
|
201
208
|
//~~~ PRIVATE
|
202
209
|
var getGroupConditionById = function (groupConditionId) {
|
203
|
-
return $('#group_conditions_'+groupConditionId);
|
210
|
+
return $('#group_conditions_' + groupConditionId);
|
204
211
|
}; //END getFieldElement
|
205
212
|
|
206
213
|
var getFieldByName = function (field_name) {
|
@@ -246,13 +253,18 @@
|
|
246
253
|
}; //END getFieldElement
|
247
254
|
|
248
255
|
var getFieldValue = function (element) {
|
256
|
+
if (typeof element == 'undefined') {
|
257
|
+
return;
|
258
|
+
}
|
249
259
|
var value;
|
250
260
|
var $el = $(element);
|
251
261
|
if ($el.hasClass('field')) {
|
252
262
|
value = $el.val();
|
253
263
|
} else {
|
254
264
|
var el = getFieldElement(element);
|
255
|
-
|
265
|
+
if (el.length > 0) {
|
266
|
+
value = !is_blank(el) ? getFieldValue(el) : '';
|
267
|
+
}
|
256
268
|
}
|
257
269
|
return value;
|
258
270
|
}; //END getFieldValue
|
@@ -351,10 +363,10 @@
|
|
351
363
|
$.each(plugin.parameters.values, function (i, data) {
|
352
364
|
var fieldObj = getFieldByName(data[0]);
|
353
365
|
var operatorObj = getOperatorFromField(data[1], fieldObj.operators);
|
354
|
-
var $listItem =
|
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>');
|
366
|
+
var $listItem = $('<li></li>');
|
367
|
+
$listItem.append('<span class="pr-2">' + getLabel(fieldObj) + '</span>');
|
368
|
+
$listItem.append('<span class="pr-2">' + getLabel(operatorObj) + '</span>');
|
369
|
+
$listItem.append('<span class="">' + data[2] + '</span>');
|
358
370
|
$listItem.appendTo($listUl);
|
359
371
|
});
|
360
372
|
$element.append($listUl);
|
@@ -367,8 +379,10 @@
|
|
367
379
|
$.each(plugin.parameters.values, function (i, data) {
|
368
380
|
var field = data[0];
|
369
381
|
var groupConditions = plugin.add_condition(field);
|
370
|
-
|
371
|
-
|
382
|
+
if (typeof groupConditions != 'undefined') {
|
383
|
+
var groupConditionId = groupConditions.attr('data-id');
|
384
|
+
plugin.fill_condition(groupConditionId, data);
|
385
|
+
}
|
372
386
|
});
|
373
387
|
}
|
374
388
|
};
|
@@ -423,7 +437,7 @@
|
|
423
437
|
normalize_values_type(groupConditionId, list_with_item, multiple);
|
424
438
|
}; //END build_values
|
425
439
|
|
426
|
-
var validate_multiple_values = function(groupConditionId) {
|
440
|
+
var validate_multiple_values = function (groupConditionId) {
|
427
441
|
var $groupConditions = getGroupConditionById(groupConditionId);
|
428
442
|
var $operatorEl = getOperatorElement($groupConditions);
|
429
443
|
var $valueEl = getValueElement($groupConditions);
|
@@ -447,7 +461,7 @@
|
|
447
461
|
}; //END validate_multiple_values
|
448
462
|
|
449
463
|
var remove_plugins_elements = function (groupConditionId) {
|
450
|
-
$groupConditions = getGroupConditionById(groupConditionId);
|
464
|
+
var $groupConditions = getGroupConditionById(groupConditionId);
|
451
465
|
$groupConditions.find('.fixed_value[class*="select2-"], .values[class*="select2-"]').select2('destroy');
|
452
466
|
$groupConditions.find('.values.clone, .fixed_value.clone').remove();
|
453
467
|
}; //END remove_plugins_elements
|
@@ -574,7 +588,7 @@
|
|
574
588
|
var build_select2_element = function (el, tags) {
|
575
589
|
if (tags == undefined) tags = true;
|
576
590
|
var $el = $(el);
|
577
|
-
var select2Config = $.extend({},plugin.parameters.select2Config);
|
591
|
+
var select2Config = $.extend({}, plugin.parameters.select2Config);
|
578
592
|
var ajax_url = $el.attr('data-ajax-values');
|
579
593
|
|
580
594
|
if (ajax_url !== undefined) {
|
@@ -609,7 +623,7 @@
|
|
609
623
|
data: {init: initVal}
|
610
624
|
}).done(function (data) {
|
611
625
|
var row = $.isArray(data) ? data[0] : data;
|
612
|
-
if (row!==undefined && row.id!==undefined && row.label!==undefined) {
|
626
|
+
if (row !== undefined && row.id !== undefined && row.label !== undefined) {
|
613
627
|
callback({id: row.id, text: row.label});
|
614
628
|
} else {
|
615
629
|
callback({id: initVal, text: initVal});
|
@@ -628,7 +642,7 @@
|
|
628
642
|
$.extend(select2Config, {placeholder: plugin.parameters.placeholder.values});
|
629
643
|
}
|
630
644
|
if (tags == true) {
|
631
|
-
$.extend(select2Config, {tags: true, tokenSeparators: [',',';']});
|
645
|
+
$.extend(select2Config, {tags: true, tokenSeparators: [',', ';']});
|
632
646
|
}
|
633
647
|
|
634
648
|
$.fn.select2.defaults.set("theme", (select2Config.theme || 'bootstrap'));
|
@@ -685,16 +699,15 @@ $(document).on('click', '.add-condition-field', function (ev) {
|
|
685
699
|
var container = $(this).closest('.add-condition').attr('data-target');
|
686
700
|
var field_name = $(this).attr('data-field');
|
687
701
|
var $conditionBuilder = $(container).data('conditionBuilder');
|
688
|
-
console.log('a');
|
689
702
|
$conditionBuilder.add_condition(field_name);
|
690
703
|
});
|
691
704
|
|
692
705
|
//DROPDOWN WITH SEARCH
|
693
|
-
$(document).on('keyup','.dropdown-filter-control', function(ev){
|
706
|
+
$(document).on('keyup', '.dropdown-filter-control', function (ev) {
|
694
707
|
var ulEl = $(this).closest('ul.dropdown-menu');
|
695
708
|
var searchTerm = $(this).val().toLowerCase();
|
696
|
-
ulEl.find('li.dropdown-menu-item').each(function(){
|
697
|
-
var filter = $(this).filter(function() {
|
709
|
+
ulEl.find('li.dropdown-menu-item').each(function () {
|
710
|
+
var filter = $(this).filter(function () {
|
698
711
|
return $(this).attr('data-search-term').toLowerCase().indexOf(searchTerm) > -1;
|
699
712
|
});
|
700
713
|
// $(this).filter('[data-search-term *= ' + searchTerm + ']')
|
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.4
|
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-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|