combo_auto_box 0.0.29 → 0.0.30

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module ComboAutoBox
2
- VERSION = '0.0.29'
2
+ VERSION = '0.0.30'
3
3
  end
@@ -90,7 +90,7 @@ var ComboAutoBox = {
90
90
  return false;
91
91
  }
92
92
  });
93
-
93
+
94
94
  $('#' + inputId).autocomplete({
95
95
  source: setAutoCompleteSource(inputId),
96
96
  select: function(event, ui) {
@@ -292,20 +292,32 @@ var ComboAutoBox = {
292
292
  if ((options.html == null) || (options.html.id == null)) {
293
293
  html = html + ' id="' + generateAnId('combo-auto-box') + '"';
294
294
  }
295
+
296
+ if (options.bootstrap) {
297
+ html = html + ' class="form-control" '
298
+ }
295
299
 
296
- return '<' + html + '>';
300
+ return '<' + html + '>';
297
301
  };
298
302
 
299
303
  // On click opens modal image tag inside "i" tag through css
300
304
  var generateExpander = function () {
301
305
  if (options.type == 'simple') {
306
+ if (options.bootstrap) {
307
+ return '<span class="input-group-btn" title="' + i18nShowSearchOptions(options.lang) + '"><button class="btn btn-default" type="button"><i class="glyphicon glyphicon-chevron-down"></i></button></span>';
308
+ } else {
302
309
  return '<span class="simple" title="' + i18nShowSearchOptions(options.lang) + '"><i></i></span>';
310
+ }
303
311
  } else if (options.type == 'multiple') {
304
312
  return '<span class="multiple">' + options.label + ':</span>';
305
313
  }
306
314
  };
307
315
 
308
316
  var adjustExpanderImage = function() {
317
+ if (options.bootstrap) {
318
+ return true;
319
+ }
320
+
309
321
  if (options.type == 'simple') {
310
322
  spanTag = $('#' + container + ' > div.container-combo-auto-box > span.simple');
311
323
 
@@ -402,19 +414,21 @@ var ComboAutoBox = {
402
414
 
403
415
  // Global div for combo auto box
404
416
  var generateDivTag = function () {
405
- var derivation = ''
417
+ var klass = 'container-combo-auto-box'
406
418
  if (options.type == 'multiple') {
407
- derivation = ' multiple'
419
+ klass = klass + ' multiple'
408
420
  } else if (options.type == 'searchable') {
409
- derivation = ' searchable'
421
+ klass = klass + ' searchable'
422
+ } else if ((options.type == 'simple') && (options.bootstrap)) {
423
+ klass = klass + '-bootstrap input-group'
410
424
  }
411
425
 
412
- return '<div class="container-combo-auto-box' + derivation + '">' + generateInputTag() + '</div>';
426
+ return '<div class="' + klass + '">' + generateInputTag() + '</div>';
413
427
  };
414
428
 
415
429
  // dialog modal
416
430
  var generateDivDialogModal = function (modalDialogId) {
417
- $('<div id="'+ modalDialogId +'" class="dialog-modal"><div class="head"><span class="label">' + options.label + '</span><span class="close" title="Close">X</span></div><div class="list"><ul></ul></div></div>').appendTo('#' + container);
431
+ $('<div id="'+ modalDialogId +'" class="dialog-modal"><div class="head"><span class="label">' + options.label + '</span><span class="close" title="Close">X</span></div><div class="list"><ul></ul></div></div>').appendTo('#' + container);
418
432
 
419
433
  $('#' + modalDialogId + ' > div.head > span.close').click(function() {
420
434
  $('#' + modalDialogId).dialog('close');
@@ -432,9 +446,40 @@ var ComboAutoBox = {
432
446
 
433
447
  $("#" + modalDialogId).siblings('div.ui-dialog-titlebar').remove();
434
448
 
435
- $('#' + container + ' > div.container-combo-auto-box > span.' + options.type).click(function() {
436
- openModalDialog(modalDialogId)
437
- });
449
+ if ((options.type == 'simple') && (options.bootstrap)) {
450
+ $('#' + container + ' > div.container-combo-auto-box-bootstrap > span > button').click(function() {
451
+ openModalDialog(modalDialogId)
452
+ });
453
+ } else {
454
+ $('#' + container + ' > div.container-combo-auto-box > span.' + options.type).click(function() {
455
+ openModalDialog(modalDialogId)
456
+ });
457
+ }
458
+ };
459
+
460
+ // dialog modal
461
+ var generateBootstrapDialogModal = function (modalDialogId) {
462
+ modal = '<div class="modal fade" id="' + modalDialogId + '" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">' +
463
+ '<div class="modal-dialog">' +
464
+ '<div class="modal-content">' +
465
+ '<div class="modal-header">' +
466
+ '<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>' +
467
+ '<h4 class="modal-title">' + options.label + '</h4>' +
468
+ '</div>' +
469
+ '<div class="modal-body">' +
470
+ '<div class="list-group" style="overflow:auto;height:440px"></div>' +
471
+ '</div>' +
472
+ '</div>' +
473
+ '</div>' +
474
+ '</div>';
475
+
476
+ $(modal).appendTo('#' + container);
477
+
478
+ getListForModalDialog(modalDialogId);
479
+
480
+ $('#' + container + ' > div.container-combo-auto-box-bootstrap > span > button').click(function() {
481
+ $('#' + modalDialogId).modal('show');
482
+ });
438
483
  };
439
484
 
440
485
  // Selects an item form modal dialog when clicked on
@@ -459,12 +504,20 @@ var ComboAutoBox = {
459
504
 
460
505
  // set list for modal dialog
461
506
  var setListForModalDialog = function (modalDialogId, data) {
507
+ if (options.bootstrap) {
508
+ setListForBootstrapModalDialog(modalDialogId, data);
509
+ } else {
510
+ setListForSimpleModalDialog(modalDialogId, data);
511
+ }
512
+ };
513
+
514
+ var setListForSimpleModalDialog = function (modalDialogId, data) {
462
515
  var items = [];
463
516
 
464
517
  $.each(data, function(index){
465
518
  items.push('<li><span class="combo-auto-box-item-id">' + data[index].id +'</span><span class="combo-auto-box-item-label">'+ data[index].label + '</span></li>');
466
519
  });
467
-
520
+
468
521
  $('#' + modalDialogId + ' > div.list').css('height', ($('#' + modalDialogId).dialog("option", "height") - 60) + 'px');
469
522
  $('#' + modalDialogId + ' > div.list > ul').html(items.join(''));
470
523
  $('#' + modalDialogId + ' > div.list > ul > li').click(function() {
@@ -484,19 +537,50 @@ var ComboAutoBox = {
484
537
  }
485
538
  });
486
539
  };
540
+
541
+ var setListForBootstrapModalDialog = function (modalDialogId, data) {
542
+ var items = [];
543
+
544
+ $.each(data, function(index){
545
+ items.push('<a href="javascript:void(0);" class="list-group-item"><span class="combo-auto-box-item-id" style="display:none;">' + data[index].id +'</span><span class="combo-auto-box-item-label">'+ data[index].label + '</span></a>');
546
+ });
547
+
548
+ $('#' + modalDialogId + ' > div.modal-dialog > div.modal-content > div.modal-body > div.list-group').html(items.join(''));
549
+ $('#' + modalDialogId + ' > div.modal-dialog > div.modal-content > div.modal-body > div.list-group > a').click(function() {
550
+ var thisId = $(this).children('span.combo-auto-box-item-id').text();
551
+ var thisLabel = $(this).children('span.combo-auto-box-item-label').text();
552
+
553
+ if (options.type == 'simple') {
554
+ $('#' + container + ' > div.container-combo-auto-box-bootstrap > input').val(thisLabel);
555
+ selectData(thisId, thisLabel);
556
+ } else if (options.type == 'multiple') {
557
+ $('#' + container + ' > div.container-combo-auto-box > input').val('');
558
+ addMultipleItem($('#' + container + ' > div.container-combo-auto-box > input').attr('id'), thisId, thisLabel);
559
+ $('#' + container + ' > div.container-combo-auto-box > input[type="text"]').focus();
560
+ selectData(thisId, thisLabel);
561
+ }
562
+
563
+ $('#' + modalDialogId).modal('hide');
564
+
565
+ });
566
+ };
487
567
 
488
568
  // opens modal dialog
489
569
  var openModalDialog = function (modalDialogId) {
490
- $('#' + modalDialogId).dialog("open");
570
+ $('#' + modalDialogId).dialog("open");
491
571
  };
492
572
 
493
573
  // starting generate modial dialog
494
574
  var generateModalDialog = function (textField) {
495
- $(generateExpander()).prependTo('#' + container + ' > div.container-combo-auto-box');
575
+ if (options.bootstrap) {
576
+ $(generateExpander()).appendTo('#' + container + ' > div.container-combo-auto-box-bootstrap');
577
+ generateBootstrapDialogModal(generateAnId('model-dialog'));
578
+ } else {
579
+ $(generateExpander()).prependTo('#' + container + ' > div.container-combo-auto-box');
580
+ adjustExpanderImage();
581
+ generateDivDialogModal(generateAnId('model-dialog'));
582
+ }
496
583
 
497
- adjustExpanderImage();
498
-
499
- generateDivDialogModal(generateAnId('model-dialog'));
500
584
  };
501
585
 
502
586
  // add multiple item
@@ -739,12 +823,20 @@ var ComboAutoBox = {
739
823
  options.not_found_accepted = false;
740
824
  }
741
825
 
826
+ if (options.bootstrap == null) {
827
+ options.bootstrap = false;
828
+ }
829
+
742
830
  validLanguage();
743
831
  validType();
744
832
 
745
833
  $('#' + container).html(generateDivTag());
746
834
 
747
- textField = $('#' + container + ' > div.container-combo-auto-box > input');
835
+ if (options.bootstrap) {
836
+ textField = $('#' + container + ' > div.container-combo-auto-box-bootstrap > input');
837
+ } else {
838
+ textField = $('#' + container + ' > div.container-combo-auto-box > input');
839
+ }
748
840
  bindAutoComplete(textField.attr('id'));
749
841
 
750
842
  if (options.type == 'simple') {
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.29
4
+ version: 0.0.30
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: 2014-09-10 00:00:00.000000000 Z
12
+ date: 2014-09-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec