browse.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. $(function()
  2. {
  3. if(table)
  4. {
  5. $('.dataview-' + table).addClass('active');
  6. var $tree = $('#modules').tree({name:'tree-group'});
  7. var tree = $tree.data('zui.tree');
  8. tree.expand($('.dataview-' + table).parents('li'));
  9. }
  10. $(document).on('click','.query-view', function()
  11. {
  12. var url = createLink('dataview', 'query', 'id=' + table);
  13. var result = true;
  14. if(dataview.used) result = confirm(warningDesign);
  15. if(result) $.apps.open(url, 'bi');
  16. });
  17. initPager(pageID, recPerPage, recTotal, fieldCount);
  18. $('.first-page,.left-page,.last-page,.right-page').click(function()
  19. {
  20. pageID = $(this).data('page');
  21. queryTableData();
  22. });
  23. $('.dropup li a').click(function()
  24. {
  25. pageID = 1;
  26. recPerPage = $(this).data('size');
  27. queryTableData();
  28. })
  29. });
  30. /**
  31. * Locate page.
  32. *
  33. * @param string module
  34. * @param string method
  35. * @param string params
  36. * @access public
  37. * @return void
  38. */
  39. function locate(module, method, params)
  40. {
  41. var link = createLink(module, method, params);
  42. window.location.href = link;
  43. }
  44. /**
  45. * Query table data.
  46. *
  47. * @return void
  48. */
  49. function queryTableData()
  50. {
  51. var params = {};
  52. params.pageID = pageID;
  53. params.recPerPage = recPerPage;
  54. params.recTotal = recTotal;
  55. params.table = table;
  56. params.type = type;
  57. $.post(createLink('dataview', 'ajaxGetTableData'), params,function(resp)
  58. {
  59. resp = JSON.parse(resp);
  60. buildTable(resp);
  61. recTotal = resp.recTotal;
  62. fieldCount = resp.fieldCount;
  63. initPager(pageID, recPerPage, recTotal, fieldCount);
  64. });
  65. }
  66. /**
  67. * Build dataview data table.
  68. *
  69. * @param object resp
  70. * @return void
  71. */
  72. function buildTable(resp)
  73. {
  74. var dataview = resp.dataview;
  75. var clientLang = resp.clientLang;
  76. var minWidth = resp.fieldCount * 100 + 'px';
  77. var html = "<table class='table table-bordered' style='min-width:" + minWidth + "'>";
  78. html += "<thead><tr>";
  79. for(var field in resp.fields)
  80. {
  81. var fieldName = field;
  82. if(typeof(dataview) != 'undefined' && typeof(dataview.fieldSettings) != 'undefined' && typeof(dataview.fieldSettings[field]) != 'undefined' && typeof(dataview.fieldSettings[field].name) != 'undefined') fieldName = dataview.fieldSettings[field].name ? dataview.fieldSettings[field].name : field;
  83. if(typeof(dataview.langs) != 'undefined')
  84. {
  85. var langs = JSON.parse(dataview.langs);
  86. if(langs && typeof(langs[field]) != 'undefined' && typeof(langs[field][clientLang]) != 'undefined') fieldName = langs[field][clientLang] ? langs[field][clientLang] : fieldName;
  87. }
  88. html += "<th>" + fieldName + "</th>";
  89. }
  90. html += "</tr></thead>";
  91. html += "<tbody>";
  92. for(var index in resp.datas)
  93. {
  94. var data = resp.datas[index];
  95. html += '<tr>';
  96. for(var field in resp.fields)
  97. {
  98. var tdValue = (typeof(data[field]) != 'undefined' && data[field]) ? data[field] : 'null';
  99. html += "<td title='" + tdValue + "'>" + tdValue + "</td>";
  100. }
  101. html += '</tr>';
  102. }
  103. html += '</tbody>';
  104. html += '</table>';
  105. $('#datas').empty();
  106. $('#datas').append(html);
  107. }
  108. /**
  109. * Init pager.
  110. *
  111. * @param int pageID
  112. * @param int recPerPage
  113. * @param int recTotal
  114. * @access public
  115. * @return void
  116. */
  117. function initPager(pageID, recPerPage, recTotal, fieldCount)
  118. {
  119. var pageID = parseInt(pageID);
  120. var recPerPage = parseInt(recPerPage);
  121. var recTotal = parseInt(recTotal);
  122. var pageTotal = parseInt(Math.ceil(recTotal / recPerPage));
  123. $('.recTotal').html(recTotalTip.replace('%s', recTotal));
  124. $('.recPerPage').html(recPerPageTip.replace('%s', recPerPage));
  125. $('.dropup li').removeClass('active');
  126. $('.dropup li a').each(function()
  127. {
  128. if($(this).data('size') == recPerPage)
  129. {
  130. $(this).parent().addClass('active');
  131. return;
  132. }
  133. });
  134. $('.page-number').html('<strong>' + pageID + '</strong>/<strong>' + pageTotal + '</strong>');
  135. $('.first-page').data('page', 1);
  136. $('.left-page').data('page', pageID - 1);
  137. $('.right-page').data('page', pageID + 1);
  138. $('.last-page').data('page', pageTotal);
  139. $('.first-page,.left-page,.last-page,.right-page').removeClass('disabled');
  140. if(pageID == 1) $('.first-page,.left-page').addClass('disabled');
  141. if(pageID == pageTotal) $('.last-page,.right-page').addClass('disabled');
  142. $('#queryResult').html(viewResult.replace('%s', recTotal).replace('%s', fieldCount));
  143. }
  144. /**
  145. * Set export show or hidden.
  146. *
  147. * @param string stat show|hide
  148. * @access public
  149. * @return void
  150. */
  151. function setExport(stat)
  152. {
  153. if(stat == 'show') $('.dataview-export').removeClass('hidden');
  154. else $('.dataview-export').addClass('hidden');
  155. }