combo_auto_box 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
@@ -25,46 +25,38 @@ var ComboAutoBox = {
|
|
25
25
|
var bindAutoComplete = function (inputId) {
|
26
26
|
var previuosValue = '';
|
27
27
|
$('#' + inputId).keydown(function(e) {
|
28
|
-
if ((e.keyCode == 8) && (
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
if ((e.keyCode == 8) && (options.type == 'searchable') && ($('#' + inputId).val() == '')) {
|
36
|
-
var label = $('#' + container + ' > div.searchable > div.item:last > input[name*="value"]').val();
|
37
|
-
var attribute = $('#' + container + ' > div.searchable > div.item:last > input[name*="name"]').val();
|
38
|
-
var condition = $('#' + container + ' > div.searchable > div.item:last > input[name*="p"]').val();
|
39
|
-
$('#' + container + ' > div.searchable > div.item:last').remove();
|
40
|
-
unselectData(attribute + "_" +condition, label);
|
28
|
+
if ((e.keyCode == 8) && ($('#' + inputId).val() == '')) {
|
29
|
+
if (options.type == 'multiple') {
|
30
|
+
removeLastMultipleItem();
|
31
|
+
} else if (options.type == 'searchable') {
|
32
|
+
removeLastSearchableItemForRansack();
|
33
|
+
}
|
41
34
|
}
|
42
|
-
|
43
35
|
});
|
44
36
|
|
45
37
|
$('#' + inputId).keypress(function(e) {
|
46
|
-
if (e.which === 13) {
|
38
|
+
if ((e.which === 13) && ($('#' + inputId).val() != '')) {
|
47
39
|
if (options.type == 'full') {
|
48
40
|
$('#' + inputId).autocomplete( "close" );
|
49
41
|
selectData($('#' + inputId).val(), $('#' + inputId).val());
|
50
42
|
} else if (options.type == 'multiple') {
|
51
43
|
$('#' + inputId).autocomplete( "close" );
|
52
|
-
|
44
|
+
addMultipleItem(inputId, $('#' + inputId).val(), $('#' + inputId).val());
|
53
45
|
selectData($('#' + inputId).val(), $('#' + inputId).val());
|
54
46
|
$('#' + inputId).val('');
|
55
|
-
} else if (
|
47
|
+
} else if (options.type == 'searchable') {
|
56
48
|
try {
|
49
|
+
$('#' + inputId).autocomplete('close');
|
57
50
|
var item = sourceForSearchable(inputId)[0];
|
58
51
|
addSearchableItemForRansack(inputId, item.id, item.label);
|
59
52
|
selectData(item.id, item.label);
|
60
53
|
$('#' + inputId).val('');
|
61
|
-
$('#' + inputId).autocomplete('close');
|
62
54
|
} catch (error) {
|
63
55
|
|
64
56
|
}
|
65
57
|
}
|
66
|
-
return false;
|
67
58
|
}
|
59
|
+
return false;
|
68
60
|
});
|
69
61
|
|
70
62
|
$('#' + inputId).autocomplete({
|
@@ -76,7 +68,7 @@ var ComboAutoBox = {
|
|
76
68
|
return selectData($('#' + inputId).val(), $('#' + inputId).val());
|
77
69
|
} else if (options.type == 'multiple') {
|
78
70
|
$('#' + inputId).val('');
|
79
|
-
|
71
|
+
addMultipleItem(inputId, ui.item.id, ui.item.label);
|
80
72
|
selectData(ui.item.id, ui.item.label);
|
81
73
|
return false;
|
82
74
|
} else if (options.type == 'searchable') {
|
@@ -280,7 +272,7 @@ var ComboAutoBox = {
|
|
280
272
|
selectData(thisId, thisLabel);
|
281
273
|
} else if (options.type == 'multiple') {
|
282
274
|
$('#' + container + ' > div.container-combo-auto-box > input').val('');
|
283
|
-
|
275
|
+
addMultipleItem($('#' + container + ' > div.container-combo-auto-box > input').attr('id'), thisId, thisLabel);
|
284
276
|
$('#' + container + ' > div.container-combo-auto-box > input[type="text"]').focus();
|
285
277
|
selectData(thisId, thisLabel);
|
286
278
|
}
|
@@ -301,8 +293,8 @@ var ComboAutoBox = {
|
|
301
293
|
generateDivDialogModal(generateAnId('model-dialog'));
|
302
294
|
};
|
303
295
|
|
304
|
-
// add item
|
305
|
-
var
|
296
|
+
// add multiple item
|
297
|
+
var addMultipleItem = function (inputId, selectedId, selectedData) {
|
306
298
|
if (selectedData != '') {
|
307
299
|
var id = generateAnId('item');
|
308
300
|
$('#' + inputId).before('<div class="item" id="' + id + '">'+ htmlSafe(selectedData) +'<span title="Remove Item">x</span><input type="hidden" name="'+ options.html.name +'[]" value="'+ selectedId +'"></div>');
|
@@ -314,6 +306,16 @@ var ComboAutoBox = {
|
|
314
306
|
}
|
315
307
|
};
|
316
308
|
|
309
|
+
// remove multiple item
|
310
|
+
var removeLastMultipleItem = function () {
|
311
|
+
if ($('#' + container + ' > div.multiple > div.item').length > 0) {
|
312
|
+
var value = $('#' + container + ' > div.multiple > div.item:last > input').val();
|
313
|
+
var label = $('#' + container + ' > div.multiple > div.item:last').text();
|
314
|
+
$('#' + container + ' > div.multiple > div.item:last').remove();
|
315
|
+
unselectData(value, label);
|
316
|
+
}
|
317
|
+
};
|
318
|
+
|
317
319
|
// add searchable item for ransack
|
318
320
|
var addSearchableItemForRansack = function (inputId, selectedId, selectedData) {
|
319
321
|
if (selectedData != '') {
|
@@ -334,6 +336,16 @@ var ComboAutoBox = {
|
|
334
336
|
});
|
335
337
|
}
|
336
338
|
};
|
339
|
+
|
340
|
+
var removeLastSearchableItemForRansack = function() {
|
341
|
+
if ($('#' + container + ' > div.searchable > div.item').length > 0) {
|
342
|
+
var label = $('#' + container + ' > div.searchable > div.item:last > input[name*="value"]').val();
|
343
|
+
var attribute = $('#' + container + ' > div.searchable > div.item:last > input[name*="name"]').val();
|
344
|
+
var condition = $('#' + container + ' > div.searchable > div.item:last > input[name*="p"]').val();
|
345
|
+
$('#' + container + ' > div.searchable > div.item:last').remove();
|
346
|
+
unselectData(attribute + "_" + condition, label);
|
347
|
+
}
|
348
|
+
}
|
337
349
|
|
338
350
|
// add searchable item
|
339
351
|
var addSearchableItem = function (inputId, selectedId, selectedData) {
|
@@ -483,6 +495,22 @@ var ComboAutoBox = {
|
|
483
495
|
|
484
496
|
return validIndexes;
|
485
497
|
}
|
498
|
+
|
499
|
+
var handleMultipleInitials = function() {
|
500
|
+
if (options.initials != null) {
|
501
|
+
$.each(options.initials, function(index) {
|
502
|
+
addMultipleItem(textField.attr('id'), options.initials[index]['id'], options.initials[index]['label']);
|
503
|
+
});
|
504
|
+
}
|
505
|
+
}
|
506
|
+
|
507
|
+
var handleSearchbleInitials = function() {
|
508
|
+
if (options.initials != null) {
|
509
|
+
$.each(options.initials, function(index) {
|
510
|
+
addSearchableItemForRansack(textField.attr('id'), options.initials[index]['id'], options.initials[index]['label']);
|
511
|
+
});
|
512
|
+
}
|
513
|
+
}
|
486
514
|
|
487
515
|
// main
|
488
516
|
if (options == null) {
|
@@ -497,25 +525,21 @@ var ComboAutoBox = {
|
|
497
525
|
textField = $('#' + container + ' > div.container-combo-auto-box > input');
|
498
526
|
bindAutoComplete(textField.attr('id'));
|
499
527
|
|
500
|
-
if (
|
528
|
+
if (options.type == 'simple') {
|
501
529
|
generateModalDialog(textField);
|
502
530
|
}
|
503
|
-
|
504
|
-
if (
|
531
|
+
|
532
|
+
if (options.type == 'multiple') {
|
533
|
+
generateModalDialog(textField);
|
505
534
|
bindContainerClick(textField.attr('id'));
|
506
535
|
normalizeStyles(textField.attr('id'));
|
507
|
-
|
508
|
-
|
509
|
-
if ((options.type == 'multiple') && (options.initials != null)) {
|
510
|
-
$.each(options.initials, function(index){
|
511
|
-
addItem(textField.attr('id'), options.initials[index]['id'], options.initials[index]['label']);
|
512
|
-
});
|
536
|
+
handleMultipleInitials();
|
513
537
|
}
|
514
538
|
|
515
|
-
if (
|
516
|
-
|
517
|
-
|
518
|
-
|
539
|
+
if (options.type == 'searchable') {
|
540
|
+
bindContainerClick(textField.attr('id'));
|
541
|
+
normalizeStyles(textField.attr('id'));
|
542
|
+
handleSearchbleInitials();
|
519
543
|
}
|
520
544
|
|
521
545
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: combo_auto_box
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.16
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|