group-manager.html.twig 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. {% extends 'partials/base.html.twig' %}
  2. {% import 'user-manager-macros.html.twig' as macros %}
  3. {% set title = "PLUGIN_ADMIN_ADDON_USER_MANAGER.GROUP_MANAGER"|tu %}
  4. {% if group %}
  5. {% set group_name = group.readableName ?: group.groupname %}
  6. {% set title = "PLUGIN_ADMIN_ADDON_USER_MANAGER.GROUP"|tu ~ ": " ~ group_name|e %}
  7. {% endif %}
  8. {% set ps = config.system.param_sep %}
  9. {% block titlebar %}
  10. {% if not group %}
  11. <div class="button-bar">
  12. <a class="button" href="#modal-admin-addon-user-manager-new" data-remodal-target="modal-admin-addon-user-manager-new"><i class="fa fa-plus"></i> {{ "PLUGIN_ADMIN.ADD"|tu }}</a>
  13. </div>
  14. <h1><i class="fa fa-fw fa-user-o"></i> {{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.GROUP_MANAGER"|tu }}</h1>
  15. {% else %}
  16. <div class="button-bar">
  17. <a class="button" href="{{ base_url }}/group-manager"><i class="fa fa-reply"></i> {{ "PLUGIN_ADMIN.BACK"|tu }}</a>
  18. {% if exists %}
  19. <a class="button disable-after-click" href="{{ uri.addNonce(uri.route(true) ~ '/name' ~ ps ~ group.groupname ~ '/task' ~ ps ~ 'groupDelete', 'admin-form', 'admin-nonce') }}" class="page-delete" ><i class="fa fa-close"></i> {{ "PLUGIN_ADMIN.DELETE"|tu }}</a>
  20. {% endif %}
  21. <button class="button" type="submit" name="task" value="save" form="blueprints"><i class="fa fa-check"></i> {{ "PLUGIN_ADMIN.SAVE"|tu }}</button>
  22. </div>
  23. <h1><i class="fa fa-fw fa-user"></i> {{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.GROUP"|tu }}: {{ group.groupname|e }}</h1>
  24. {% endif %}
  25. {% endblock %}
  26. {% set appendUrl = '?filter=' ~ filter|url_encode %}
  27. {% block content %}
  28. {% if not group %}
  29. <h1>{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.GROUPS"|tu }}</h1>
  30. {% if filterException %}
  31. <div class="notices red"><h2>{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.FILTER_ERROR"|tu }}</h2><p>{{ filterException.message }}</p></div>
  32. {% endif %}
  33. <div class="admin-addon-user-manager-filter">
  34. <div class="admin-addon-user-manager-filter__input">
  35. <form method="get">
  36. <div class="block block-text">
  37. <div class="form-field vertical">
  38. <div class="form-data" data-grav-default="{{ filter }}">
  39. <div class="form-input-wrapper">
  40. <input name="filter" value="{{ filter }}" type="text" placeholder="{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.FILTER_GROUPS"|tu }}">
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </form>
  46. </div>
  47. <div class="admin-addon-user-manager-filter__help">
  48. <a href="https://github.com/david-szabo97/grav-plugin-admin-addon-user-manager/blob/master/docs/filter.md#groups" class="button" target="_new"><i class="fa fa-question"></i> {{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.HELP"|tu }}</a>
  49. </div>
  50. </div>
  51. <form method="post">
  52. <div class="admin-addon-user-manager admin-addon-user-manager--list admin-addon-user-manager--group">
  53. {% if groups is empty %}
  54. <h2>{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.NO_RESULTS"|tu }}</h2>
  55. {% else %}
  56. <div class="cell cell--header">
  57. <div class="user">
  58. <div class="user__checkbox"><input type="checkbox" id="selectAll" /></div>
  59. <div class="user__username">{{ "PLUGIN_ADMIN.NAME"|tu }}</div>
  60. <div class="user__actions">{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.ACTIONS"|tu }}</div>
  61. </div>
  62. </div>
  63. {% for groupName, group in groups %}
  64. <div class="cell">
  65. <div class="user">
  66. <div class="user__checkbox"><input type="checkbox" name="selected[]" value="{{ groupName }}" /></div>
  67. <div class="user__username"><a href="{{ uri.route(true) ~ '/name' ~ ps ~ group.groupname }}">({{ group.users }}) <i class="fa fa-{{ group.icon}}"></i> {{ group.readableName ?: groupName }}</a></div>
  68. <div class="user__actions">
  69. <a href="{{ uri.addNonce(uri.route(true) ~ '/name' ~ ps ~ group.groupname ~ '/task' ~ ps ~ 'groupDelete', 'admin-form', 'admin-nonce') }}" class="delete">{{ "PLUGIN_ADMIN.DELETE"|tu }}</a>
  70. </div>
  71. </div>
  72. </div>
  73. {% endfor %}
  74. {% endif %}
  75. </div>
  76. <div class="admin-addon-user-manager-bulk-action">
  77. <a data-remodal-target="modal-admin-addon-user-manager-bulk" class="button">{{ "PLUGIN_ADMIN_ADDON_USER_MANAGER.BULK_ACTION"|tu }}</a>
  78. </div>
  79. </form>
  80. {{ macros.pagination(pagination, uri.route(true), ps, appendUrl) }}
  81. <div class="remodal" data-remodal-id="modal-admin-addon-user-manager-new" data-remodal-options="hashTracking: false">
  82. <form onsubmit='handleAdminAddonUserManagerSubmit(this); return false;'>
  83. {% for field in fields %}
  84. {% if field.type %}
  85. {% set value = data.value(field.name) %}
  86. <div class="block block-{{field.type}}">
  87. {% include ["forms/fields/#{field.type}/#{field.type}.html.twig", 'forms/fields/text/text.html.twig'] %}
  88. </div>
  89. {% endif %}
  90. {% endfor %}
  91. <div class="button-bar">
  92. <button class="button primary" >{{ "PLUGIN_ADMIN.CONTINUE"|tu }}</button>
  93. </div>
  94. </form>
  95. </div>
  96. <div class="remodal" data-remodal-id="modal-admin-addon-user-manager-bulk" data-remodal-options="hashTracking: false">
  97. <form method="post" onsubmit='handleAdminAddonUserManagerBulkSubmit(this);'>
  98. {% for field in bulkFields %}
  99. {% if field.type %}
  100. <div class="block block-{{field.type}}">
  101. {% include ["forms/fields/#{field.type}/#{field.type}.html.twig", 'forms/fields/text/text.html.twig'] %}
  102. </div>
  103. {% endif %}
  104. {% endfor %}
  105. <div class="button-bar">
  106. <button class="button primary" >{{ "PLUGIN_ADMIN.CONTINUE"|tu }}</button>
  107. </div>
  108. </form>
  109. </div>
  110. <script>
  111. function handleAdminAddonUserManagerSubmit(form) {
  112. var name = form.querySelector('[name=name]').value;
  113. window.location = '{{ base_url }}/group-manager/name{{ ps }}' + name;
  114. }
  115. var selectAllEle = document.getElementById('selectAll');
  116. var selectEles = document.querySelectorAll('input[name="selected[]"]');
  117. if (selectAllEle) {
  118. selectAllEle.addEventListener('change', function(e) {
  119. for (var i = 0; i < selectEles.length; i++) {
  120. selectEles[i].checked = this.checked;
  121. }
  122. });
  123. }
  124. function handleAdminAddonUserManagerBulkSubmit(form) {
  125. for (var i = 0; i < selectEles.length; i++) {
  126. form.appendChild(selectEles[i]);
  127. }
  128. }
  129. </script>
  130. {% else %}
  131. <h1>{{ group.readableName ?: group.groupname }}</h1>
  132. {% include 'partials/blueprints.html.twig' with { data: group, blueprints: group.blueprints } %}
  133. <div class="remodal" data-remodal-id="changes">
  134. <form>
  135. <h1>{{ "PLUGIN_ADMIN.MODAL_CHANGED_DETECTED_TITLE"|tu }}</h1>
  136. <p class="bigger">
  137. {{ "PLUGIN_ADMIN.MODAL_CHANGED_DETECTED_DESC"|tu }}
  138. </p>
  139. <br>
  140. <div class="button-bar">
  141. <a class="button secondary" data-leave-action="cancel" href="#"><i class="fa fa-fw fa-close"></i> {{ "PLUGIN_ADMIN.CANCEL"|tu }}</a>
  142. <a class="button" data-leave-action="continue" href="#"><i class="fa fa-fw fa-check"></i> {{ "PLUGIN_ADMIN.CONTINUE"|tu }}</a>
  143. </div>
  144. </form>
  145. </div>
  146. {% endif %}
  147. {% endblock %}