picker.html.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <style>
  2. .picker {min-height: 28px;}
  3. .picker-selections {line-height: 26px; min-height: 28px; border-color: #d6dae3; box-shadow: none;}
  4. .picker-selection-single {line-height: 16px;}
  5. .picker-multi .picker-selections {padding: 0px;}
  6. .picker-multi .picker-selections .picker-search {margin: 0px;}
  7. .picker-placeholder {top: 0px; color: #a6aab8;}
  8. </style>
  9. <script>
  10. $(function()
  11. {
  12. var defaults = {disableEmptySearch: true, maxListCount: 0, searchDelay: 500};
  13. initPicker = function($element, options)
  14. {
  15. var picker = $element.data('zui.picker');
  16. if(picker) picker.destroy();
  17. var options = $.extend({}, defaults, options);
  18. $element.picker(options);
  19. };
  20. initSelect = function($element)
  21. {
  22. var isDisabled = !!$element.attr('disabled');
  23. if(!isDisabled && $element.find('option[value=ajax_search_more]').length == 1)
  24. {
  25. $element.find('option[value=ajax_search_more]').remove();
  26. var url = $element.data('url');
  27. if(!url)
  28. {
  29. var module = $element.data('module');
  30. var field = $element.data('field');
  31. var options = $element.data('options') || '';
  32. var url = createLink('flow', 'ajaxGetPairs', 'module=' + module + '&field=' + field + '&options=' + options + '&search={search}');
  33. }
  34. initPicker($element, {remote: url});
  35. }
  36. else
  37. {
  38. var picker = $element.data('zui.picker');
  39. if(!picker)
  40. {
  41. var chosen = $element.data('chosen');
  42. if(chosen)
  43. {
  44. $element.trigger('chosen:updated');
  45. }
  46. else
  47. {
  48. $element.chosen();
  49. }
  50. }
  51. }
  52. }
  53. $('.picker-select').each(function()
  54. {
  55. initSelect($(this));
  56. });
  57. });
  58. </script>