flow.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. /**
  2. * Ajax get search form.
  3. *
  4. * @param string $queryBox
  5. * @param callback $callback
  6. * @access public
  7. * @return void
  8. */
  9. function ajaxGetSearchForm($queryBox, callback)
  10. {
  11. if(!$queryBox) $queryBox = $('#querybox');
  12. if($queryBox.html() == '')
  13. {
  14. var module = $queryBox.data('module');
  15. $.get(createLink('search', 'buildOldForm', 'module=' + module), function(data)
  16. {
  17. $queryBox.html(data);
  18. callback && callback();
  19. });
  20. }
  21. }
  22. /**
  23. * Init search form.
  24. *
  25. * @access public
  26. * @return void
  27. */
  28. function initSearch()
  29. {
  30. $searchTab = $('#bysearchTab');
  31. if($searchTab.data('initSearch')) return;
  32. if(!$searchTab.closest('#menu').length)
  33. {
  34. $('#menu>.container>.nav:first').append($searchTab);
  35. }
  36. var $queryBox = $('#querybox');
  37. if(!$queryBox.length)
  38. {
  39. $queryBox = $("<div id='querybox' class='hidden'/>").insertAfter($('#menu'));
  40. }
  41. if(mode == 'bysearch')
  42. {
  43. $('#menu > ul > li.active').removeClass('active');
  44. ajaxGetSearchForm($queryBox);
  45. $searchTab.addClass('active').find('a').attr('href', '#bysearch');
  46. $queryBox.removeClass('hidden');
  47. }
  48. $searchTab.on('click', function()
  49. {
  50. var isSearchTabActive = $searchTab.hasClass('active');
  51. if(isSearchTabActive)
  52. {
  53. var $oldTab = $searchTab.data('oldTab');
  54. if($oldTab)
  55. {
  56. $oldTab.addClass('active');
  57. }
  58. else
  59. {
  60. $searchTab.addClass('selected');
  61. }
  62. }
  63. else
  64. {
  65. $(window).scrollTop(0);
  66. $searchTab.data('oldTab', $('#menu > ul > li.active').removeClass('active'));
  67. ajaxGetSearchForm($queryBox, function()
  68. {
  69. if(!$queryBox.hasClass('hidden')) $queryBox.trigger('querybox.toggle', true);
  70. });
  71. }
  72. $searchTab.toggleClass('active', !isSearchTabActive);
  73. $queryBox.toggleClass('hidden', isSearchTabActive).trigger('querybox.toggle', !isSearchTabActive);
  74. });
  75. $searchTab.data('initSearch', true);
  76. }