browse.ui.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. $(document).off('click', '.batch-btn').on('click', '.batch-btn', function()
  2. {
  3. const dtable = zui.DTable.query($(this).target);
  4. const checkedList = dtable.$.getChecks();
  5. if(!checkedList.length) return;
  6. const url = $(this).data('url');
  7. const form = new FormData();
  8. checkedList.forEach((id) => form.append('bugIdList[]', id));
  9. if($(this).hasClass('ajax-btn'))
  10. {
  11. $.ajaxSubmit({url, data:form});
  12. }
  13. else
  14. {
  15. postAndLoadPage(url, form);
  16. }
  17. }).off('click', '#actionBar .export-btn').on('click', '#actionBar export-btn', function()
  18. {
  19. const dtable = zui.DTable.query($('#table-bug-browse'));
  20. const checkedList = dtable ? dtable.$.getChecks() : [];
  21. if(!checkedList.length) return;
  22. $.cookie.set('checkedItem', checkedList, {expires:config.cookieLife, path:config.webRoot});
  23. });
  24. /**
  25. * 标题列显示额外的内容。
  26. * Display extra content in the title column.
  27. *
  28. * @param object result
  29. * @param object info
  30. * @access public
  31. * @return object
  32. */
  33. window.onRenderCell = function(result, {row, col})
  34. {
  35. if(from == 'doc' || from == 'ai') return result;
  36. if(result && col.name == 'title')
  37. {
  38. result[0].props.className = 'overflow-hidden';
  39. if(row.data.color) result[0].props.style = 'color: ' + row.data.color;
  40. const module = this.options.modules[row.data.module];
  41. if(module) result.unshift({html: '<span class="label gray-pale rounded-full whitespace-nowrap w-auto">' + module + '</span>'}); // 添加模块标签
  42. if(parseInt(row.data.case))
  43. {
  44. caseLink = $.createLink('testcase', 'view', "caseID=" + row.data.case + "&version=" + row.data.caseVersion);
  45. result.push({html: '<a href="' + caseLink + '"class="text-gray" title="' + row.data.case + '">[' + caseCommonLang + '#' + row.data.case + ']</a>'});
  46. }
  47. }
  48. if(result[0] && col.name == 'deadline')
  49. {
  50. const bug = row.data;
  51. if(['resolved', 'closed'].includes(bug.status)) return result;
  52. const yesterday = zui.formatDate(zui.createDate() - 24 * 60 * 60 * 1000, 'yyyy-MM-dd');
  53. if(result[0] <= yesterday) result[0] = {html: '<span class="label danger-pale rounded-full size-sm">' + result[0] + '</span>'};
  54. }
  55. return result;
  56. }
  57. window.firstRendered = false;
  58. window.toggleCheckRows = function(idList)
  59. {
  60. if(!idList?.length || firstRendered) return;
  61. firstRendered = true;
  62. const dtable = zui.DTable.query($('#bugs'));
  63. dtable.$.toggleCheckRows(idList.split(','), true);
  64. }