search.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. $(document).ready(function()
  2. {
  3. var showSearchModal = function($chosen)
  4. {
  5. var $select = $chosen.prev();
  6. var module = $select.data('module');
  7. var field = $select.data('field');
  8. var search = window.btoa(encodeURI($chosen.find('.chosen-results > li.no-results > span').text()));
  9. var link = createLink('flow', 'ajaxSearchMore', 'module=' + module + '&field=' + field + '&search=' + search);
  10. // $.zui.modalTrigger.show({name: 'searchModal', url: link, backdrop: 'static'});
  11. };
  12. $(document).on('change', 'select.ajaxSearchMore', function()
  13. {
  14. if($(this).val() === 'ajax_search_more' || $.inArray('ajax_search_more', $(this).val()) > -1)
  15. {
  16. var $chosen = $(this).next('.chosen-container');
  17. var $select = $(this);
  18. $('.ajax-searching').removeClass('ajax-searching');
  19. $select.addClass('ajax-searching');
  20. showSearchModal($chosen);
  21. }
  22. });
  23. $(document).on('click', '.chosen-container.ajaxSearchMore .chosen-results > li.no-results', function()
  24. {
  25. var $chosen = $(this).parents('.chosen-container.ajaxSearchMore');
  26. var $select = $chosen.prev();
  27. $('.ajax-searching').removeClass('ajax-searching');
  28. $select.addClass('ajax-searching');
  29. showSearchModal($chosen);
  30. });
  31. $(document).on('hide.zui.modal', '#searchModal', function()
  32. {
  33. var key = '';
  34. var $select = $('.ajax-searching');
  35. if($selectedItem && $selectedItem.length)
  36. {
  37. key = $selectedItem.data('key');
  38. if(!$select.children('option[value="' + key + '"]').length)
  39. {
  40. $select.prepend('<option value="' + key + '">' + $selectedItem.text() + '</option>');
  41. }
  42. }
  43. $select.removeClass('ajax-searching').val(key).trigger("chosen:updated");
  44. $selectedItem = null;
  45. });
  46. $('select.ajaxSearchMore').next('.chosen-container').addClass('ajaxSearchMore');
  47. })
  48. var $selectedItem;
  49. var selectItem = function(item)
  50. {
  51. $selectedItem = $(item).first();
  52. $('#searchModal').modal('hide');
  53. };