langitem.ui.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /**
  2. * Add class active while click item in form.
  3. *
  4. * @param string $id
  5. * @access public
  6. * @return void
  7. */
  8. function addActive(id)
  9. {
  10. $('[data-id=' + id + ']').addClass('selected');
  11. }
  12. /**
  13. * Remove class active while blur or click item in form.
  14. *
  15. * @param string $id
  16. * @access public
  17. * @return void
  18. */
  19. function removeActive(id)
  20. {
  21. $('[data-id=' + id + ']').removeClass('selected');
  22. }
  23. /**
  24. * Handle function click in label.
  25. *
  26. * @param string $id
  27. * @access public
  28. * @return void
  29. */
  30. function handleClickItem(clickId)
  31. {
  32. var clearId = $('.form-item.selected').attr('data-id');
  33. if(clearId !== clickId)
  34. {
  35. if(clearId) removeActive(clearId);
  36. if(clickId) addActive(clickId);
  37. };
  38. }
  39. /**
  40. * Handle function input on search comp and update menu tree.
  41. *
  42. * @access public
  43. * @return void
  44. */
  45. function handleInputSearch()
  46. {
  47. $('.sidebar .search-input').on('input', function()
  48. {
  49. var val = $(this).val();
  50. if (!val)
  51. {
  52. var updateData = menuTree;
  53. }
  54. else
  55. {
  56. var updateData = [];
  57. for (var i = 0; i < menuTree.length; i++)
  58. {
  59. var item = {};
  60. $.extend(true, item, menuTree[i]);
  61. item.children = filterChildren(item, val);
  62. if ((item.children && item.children.length) || item.title.indexOf(val) != -1 || (item.key && item.key.indexOf(val) != -1))
  63. {
  64. updateData.push(item);
  65. }
  66. }
  67. }
  68. $('.sidebar .tree').zui('tree').render({items: updateData});
  69. })
  70. }
  71. /**
  72. * Handle function filter in array children in every item in menu tree.
  73. *
  74. * @access public
  75. * @return array
  76. */
  77. function filterChildren(item, val)
  78. {
  79. var children = null;
  80. if (item && item.children && item.children.length)
  81. {
  82. children = [];
  83. for (var i = 0; i < item.children.length; i++)
  84. {
  85. item.children[i].children = filterChildren(item.children[i], val);
  86. if (item.children[i].title.indexOf(val) != -1 || (item.children[i].key && item.children[i].key.indexOf(val) != -1) || item.children[i].children)
  87. {
  88. children.push(item.children[i]);
  89. }
  90. }
  91. }
  92. return children && children.length ? children : null;
  93. }
  94. $(".form-item-content").on("click", '.form-item', function()
  95. {
  96. handleClickItem($(this).data('id'));
  97. });
  98. $('.form-item-content > .form-item > .input-group').on('click', function()
  99. {
  100. handleClickItem($(this).data('id'));
  101. });
  102. $(".form-item-content").on('mouseover', '.form-item', function()
  103. {
  104. $(this).addClass('hover');
  105. }).on('mouseout', '.form-item', function()
  106. {
  107. $(this).removeClass('hover');
  108. })
  109. handleInputSearch();
  110. $.apps.updateAppsMenu();