index.pug 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. extends ../layout-marketing
  2. include ../_mixins/bookmarkable_tabset
  3. block content
  4. #main-content.content.content-alt
  5. .container
  6. .row
  7. .col-sm-12
  8. .card
  9. .card-body
  10. .page-header
  11. h1 Admin Panel
  12. .ol-tabs(data-ol-bookmarkable-tabset)
  13. .nav-tabs-container
  14. ul.nav.nav-tabs.align-left(role='tablist')
  15. +bookmarkable-tabset-header('system-messages', 'System Messages', true)
  16. +bookmarkable-tabset-header('open-sockets', 'Open Sockets')
  17. +bookmarkable-tabset-header('open-close-editor', 'Open/Close Editor')
  18. +bookmarkable-tabset-header('privileges-matrix', 'Privileges Matrix')
  19. if hasFeature('saas')
  20. +bookmarkable-tabset-header('tpds', 'TPDS/Dropbox Management')
  21. .tab-content
  22. .tab-pane.active(role='tabpanel' id='system-messages')
  23. each message in systemMessages
  24. ul.system-messages
  25. li.system-message.row-spaced #{message.content}
  26. hr
  27. form(method='post' action='/admin/messages')
  28. input(name='_csrf' type='hidden' value=csrfToken)
  29. .form-group
  30. label.form-label(for='system-message') Message
  31. input#system-message.form-control(
  32. name='content'
  33. type='text'
  34. required
  35. )
  36. button.btn.btn-primary(type='submit') Post Message
  37. hr
  38. form(method='post' action='/admin/messages/clear')
  39. input(name='_csrf' type='hidden' value=csrfToken)
  40. button.btn.btn-danger(type='submit') Clear all messages
  41. .tab-pane(role='tabpanel' id='open-sockets')
  42. .row-spaced
  43. ul
  44. each agents, url in openSockets
  45. li #{url} - total : #{agents.length}
  46. ul
  47. each agent in agents
  48. li #{agent}
  49. .tab-pane(role='tabpanel' id='open-close-editor')
  50. if hasFeature('saas')
  51. | The "Open/Close Editor" feature is not available in SAAS.
  52. else
  53. .row-spaced
  54. form(method='post' action='/admin/closeEditor')
  55. input(name='_csrf' type='hidden' value=csrfToken)
  56. button.btn.btn-danger(type='submit') Close Editor
  57. p.small Will stop anyone opening the editor. Will NOT disconnect already connected users.
  58. .row-spaced
  59. form(method='post' action='/admin/disconnectAllUsers')
  60. input(name='_csrf' type='hidden' value=csrfToken)
  61. button.btn.btn-danger(type='submit') Disconnect all users
  62. p.small Will force disconnect all users with the editor open. Make sure to close the editor first to avoid them reconnecting.
  63. .row-spaced
  64. form(method='post' action='/admin/openEditor')
  65. input(name='_csrf' type='hidden' value=csrfToken)
  66. button.btn.btn-danger(type='submit') Reopen Editor
  67. p.small Will reopen the editor after closing.
  68. .tab-pane(role='tabpanel' id='privileges-matrix')
  69. p This matrix shows the access levels for different admin roles across various user management privileges. The matrix is automatically generated from the code-defined roles and capabilities.
  70. if hasFeature('saas') && privilegesMatrix
  71. .privileges-matrix-container
  72. table.table.table-bordered.table-striped.privileges-matrix-table
  73. thead
  74. tr
  75. th Webpage and privilege
  76. th(colspan=privilegesMatrix.roles.length) Access Level Needed For Team
  77. tr
  78. th
  79. each role in privilegesMatrix.roles
  80. th= role.displayName
  81. tbody
  82. - let currentSection = null
  83. each row in privilegesMatrix.privileges
  84. - const privilege = row.privilege
  85. if currentSection !== privilege.section
  86. - currentSection = privilege.section
  87. tr.section-header
  88. td(colspan=privilegesMatrix.roles.length + 1)
  89. strong= privilege.section
  90. tr
  91. td.privilege-label= privilege.label
  92. each role in privilegesMatrix.roles
  93. - const accessLevel = row.access[role.id]
  94. td.access-cell(class=`access-${accessLevel}`)
  95. span.access-badge(class=`badge-${accessLevel}`)
  96. if accessLevel === 'yes'
  97. | Yes
  98. else
  99. | No
  100. else
  101. p The privileges matrix is not available in this environment.
  102. if hasFeature('saas')
  103. .tab-pane(role='tabpanel' id='tpds')
  104. h3 Flush project to TPDS
  105. .row
  106. form.col-xs-6(method='post' action='/admin/flushProjectToTpds')
  107. input(name='_csrf' type='hidden' value=csrfToken)
  108. .form-group
  109. label.form-label(for='project-id') project_id
  110. input.form-control(
  111. name='project_id'
  112. id='project-id'
  113. type='text'
  114. required
  115. )
  116. .form-group
  117. button.btn-primary.btn(type='submit') Flush
  118. hr
  119. h3 Poll Dropbox for user
  120. .row
  121. form.col-xs-6(method='post' action='/admin/pollDropboxForUser')
  122. input(name='_csrf' type='hidden' value=csrfToken)
  123. .form-group
  124. label.form-label(for='user-id') user_id
  125. input.form-control(name='user_id' id='user-id' type='text' required)
  126. .form-group
  127. button.btn-primary.btn(type='submit') Poll