zentaobiz.ui.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. window.toggleSpace = () => {
  2. const $form = $('#addDocForm');
  3. const picker = $form.find('[name="libParentID"]').zui('picker');
  4. const space = $form.find('input[name="space"]:checked').val();
  5. const dtable = zui.DTable.query($('#docSelectTable'));
  6. const $libIdPicker = $('[name="libID"]').zui('picker');
  7. $libIdPicker.$.setValue('');
  8. $libIdPicker.render({items: []});
  9. $('.btns-type .btn.active .label').text(0);
  10. dtable.render({data: []});
  11. picker.render({items: []});
  12. picker.$.setValue('');
  13. $('[name="apiType"]').val('product');
  14. $('.api-type').toggleClass('hidden', space != 'api');
  15. $('.specific-space').removeClass('hidden');
  16. if(space == 'api')
  17. {
  18. const apiType = $('[name="apiType"]').val();
  19. $('.specific-space').toggleClass('hidden', apiType == 'nolink');
  20. $.getJSON($.createLink('ai', 'ajaxGetApiSpaces', 'type=product'), function(data)
  21. {
  22. picker.render({items: data});
  23. });
  24. }
  25. else
  26. {
  27. $.getJSON($.createLink('doc', 'ajaxGetSpaceData', 'space=' + space), function(libs)
  28. {
  29. const spaces = (libs?.spaces || []).map(space => ({text: space.name, value: space.id}));
  30. picker.render({items: spaces});
  31. });
  32. }
  33. };
  34. window.toggleApiType = function(apiType)
  35. {
  36. const $libIdPicker = $('[name="libID"]').zui('picker');
  37. const dtable = zui.DTable.query($('#docSelectTable'));
  38. dtable.render({data: []});
  39. $('.btns-type .btn.active .label').text(0);
  40. $libIdPicker.$.setValue('');
  41. $libIdPicker.render({items: []});
  42. $('.specific-space').toggleClass('hidden', apiType == 'nolink');
  43. if(apiType != 'nolink')
  44. {
  45. const $detailedSpacePicker = $('[name="libParentID"]').zui('picker');
  46. $.getJSON($.createLink('ai', 'ajaxGetApiSpaces', `type=${apiType}`), function(data)
  47. {
  48. $detailedSpacePicker.$.setValue('');
  49. $detailedSpacePicker.render({items: data});
  50. });
  51. }
  52. else
  53. {
  54. $.getJSON($.createLink('ai', 'ajaxGetDocLibs', `space=api&id=0&type=${apiType}`), function(libs)
  55. {
  56. $libIdPicker.render({items: libs});
  57. });
  58. }
  59. }
  60. window.toggleLibParentID = () => {
  61. const $form = $('#addDocForm');
  62. const picker = $form.find('[name="libID"]').zui('picker');
  63. const space = $form.find('input[name="space"]:checked').val();
  64. const libParentID = $form.find('[name="libParentID"]').val();
  65. const dtable = zui.DTable.query($('#docSelectTable'));
  66. const type = space == 'api' ? $('[name="apiType"]:checked').val() : '';
  67. $('.btns-type .btn.active .label').text(0);
  68. dtable.render({data: []});
  69. picker.render({items: []});
  70. picker.$.setValue('');
  71. if(!libParentID) return;
  72. $.getJSON($.createLink('ai', 'ajaxGetDocLibs', `space=${space}&id=${libParentID}&type=${type}`), function(libs)
  73. {
  74. picker.render({items: libs});
  75. });
  76. };
  77. $('.btns-type .btn[data-id="all"]').addClass('active');
  78. window.toggleLibID = () => {
  79. const $form = $('#addDocForm');
  80. const dtable = zui.DTable.query($('#docSelectTable'));
  81. const libID = $form.find('[name="libID"]').val();
  82. const space = $form.find('input[name="space"]:checked').val();
  83. const type = $('.btns-type .btn.active').data('id');
  84. $('.btns-type .btn.active .label').text(0);
  85. if(!libID) return;
  86. dtable.render({data: []});
  87. $.getJSON($.createLink('ai', 'ajaxGetDoc', `libID=${libID}&space=${space}&browseType=${type}`), function(docs)
  88. {
  89. $('.btns-type .btn.active .label').text(docs?.length || 0);
  90. dtable.render({data: docs});
  91. });
  92. };
  93. window.toggleBrowseType = function(browseType, event)
  94. {
  95. $(event).closest('.btns-type').find('.btn').removeClass('active');
  96. $(event).closest('.btns-type').find('.label').addClass('hidden');
  97. $(event).addClass('active');
  98. const $form = $('#addDocForm');
  99. const dtable = zui.DTable.query($('#docSelectTable'));
  100. const libID = $form.find('[name="libID"]').val();
  101. const space = $form.find('input[name="space"]:checked').val();
  102. const $label = $(event).find('.label');
  103. if(!libID || !space)
  104. {
  105. $label.text(0);
  106. $label.removeClass('hidden');
  107. return;
  108. };
  109. dtable.render({data: []});
  110. $.getJSON($.createLink('ai', 'ajaxGetDoc', `libID=${libID}&space=${space}&browseType=${browseType}`), function(docs)
  111. {
  112. dtable.render({data: docs});
  113. $label.text(docs?.length || 0);
  114. $label.removeClass('hidden');
  115. });
  116. }
  117. window.renderDocCell = function(result, {row, col})
  118. {
  119. if(col.name == 'title')
  120. {
  121. let url = $.createLink('doc', 'view', `docID=${row.data.id}&version=${row.data.version}`);
  122. if(!!row.data?.protocol) url = $.createLink('api', 'view', `libID=${row.data.lib}&apiID=${row.data.id}&moduleID=${row.data.module}`);
  123. result[0] ={html: `<a href="${url}" class="text-link" data-toggle="modal" data-size="lg">${row.data.title}</a>`};
  124. return result;
  125. }
  126. return result;
  127. }