config_dir.ejs 5.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <% include ../shares/delete_hint_modal.ejs %>
  2. <div class="panel-content">
  3. <div class="panel-title fluid">
  4. <div class="title-main d-flex justify-content-between">
  5. <div>资料管理-目录配置/<%- ctx.subProject.name %></div>
  6. <div class="ml-auto">
  7. <a href="/sp/<%- ctx.subProject.id %>/filesjs" class="btn btn-outline-primary btn-sm">返回资料管理</a>
  8. </div>
  9. </div>
  10. </div>
  11. <div class="content-wrap">
  12. <div class="c-body">
  13. <div class="sjs-height-0">
  14. <div class="d-flex align-items-center mb-2 p-1">
  15. <span>资料管理-目录配置/<%- ctx.subProject.name %>(当前状态:<span class="<%- ctx.subProject.lock_file ? 'text-success' : 'text-warning' %>"><%- ctx.subProject.lock_file ? '锁定' : '未锁定' %></span>)</span>
  16. <% if (canManageDir) { %>
  17. <form class="mb-0 ml-2" method="POST" action="/sp/<%- ctx.subProject.id %>/config-dir/lock">
  18. <input type="hidden" name="_csrf_j" value="<%= ctx.csrf %>" />
  19. <input type="hidden" name="lock" value="1" />
  20. <button class="btn btn-sm <%- ctx.subProject.lock_file ? 'btn-outline-secondary' : 'btn-primary' %>" <%- ctx.subProject.lock_file ? 'disabled' : '' %>>锁定</button>
  21. </form>
  22. <form class="mb-0 ml-1" method="POST" action="/sp/<%- ctx.subProject.id %>/config-dir/lock">
  23. <input type="hidden" name="_csrf_j" value="<%= ctx.csrf %>" />
  24. <input type="hidden" name="lock" value="0" />
  25. <button class="btn btn-sm <%- ctx.subProject.lock_file ? 'btn-primary' : 'btn-outline-secondary' %>" <%- ctx.subProject.lock_file ? '' : 'disabled' %>>解锁</button>
  26. </form>
  27. <% } %>
  28. <div class="alert alert-warning py-1 px-2 mb-0 ml-2">
  29. <i class="fa fa-exclamation-circle"></i>
  30. <%- ctx.subProject.lock_file ? '当前为“锁定”状态,用户仅可查看资料管理,无法上传文件。' : '请先“锁定”资料管理,禁止用户上传文件,避免引起编辑冲突。' %>
  31. </div>
  32. </div>
  33. <div class="d-flex flex-row mb-2">
  34. <div class="p-1">
  35. <% if (ctx.subProject.lock_file && canManageDir) { %>
  36. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-add-sibling"><i class="fa fa-plus fa-fw"></i> 同层</a>
  37. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-add-child"><i class="fa fa-plus fa-fw"></i> 子项</a>
  38. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-move-up"><i class="fa fa-arrow-up fa-fw"></i> 上移</a>
  39. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-move-down"><i class="fa fa-arrow-down fa-fw"></i> 下移</a>
  40. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-move"><i class="fa fa-exchange fa-fw"></i> 移动文件</a>
  41. <a href="javascript: void(0);" class="btn btn-sm btn-outline-danger" id="cd-delete"><i class="fa fa-trash-o fa-fw"></i> 删除</a>
  42. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-edit-name"><i class="fa fa-pencil fa-fw"></i> 编辑目录</a>
  43. <% } %>
  44. <% if (ctx.subProject.lock_file && canAuthUser) { %>
  45. <div class="btn-group">
  46. <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="cd-auth-user"><i class="fa fa-user-plus fa-fw"></i> 授权用户</a>
  47. <button type="button" class="btn btn-sm btn-outline-primary dropdown-toggle dropdown-toggle-split"
  48. id="cd-auth-batch-dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  49. <span class="sr-only">批量授权</span>
  50. </button>
  51. <div class="dropdown-menu" aria-labelledby="cd-auth-batch-dropdown">
  52. <a class="dropdown-item" href="javascript:void(0);" id="cd-auth-batch-add">批量新增授权</a>
  53. <a class="dropdown-item" href="javascript:void(0);" id="cd-auth-batch-cover">批量覆盖授权</a>
  54. </div>
  55. </div>
  56. <% } %>
  57. </div>
  58. </div>
  59. <div id="config-dir-spread" style="width: 100%; height: calc(100% - 90px);"></div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. <% include config_dir_modal.ejs %>
  65. <script>
  66. // 将模态框移到 body 下,避免 backdrop 遮挡问题
  67. $('#auth-user-modal, #cd-auth-target-modal, #cd-edit-modal, #cd-move-modal, #cd-tips-modal').appendTo('body');
  68. const filingData = JSON.parse(unescape('<%- escape(JSON.stringify(filing)) %>'));
  69. const permissionData = JSON.parse(unescape('<%- escape(JSON.stringify(permissionData)) %>'));
  70. const filingPermissionData = JSON.parse(unescape('<%- escape(JSON.stringify(filingPermissionData)) %>'));
  71. const accountList = JSON.parse(unescape('<%- escape(JSON.stringify(accountList)) %>'));
  72. const configDirLocked = <%- Boolean(ctx.subProject.lock_file) %>;
  73. const canManageConfigDir = <%- Boolean(canManageDir) %>;
  74. </script>