user-group-detail.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. {% extends '../layout/admin.html' %}
  2. {% block html_title %}グループ管理 · {% endblock %}
  3. {% block content_head %}
  4. <div class="header-wrap">
  5. <header id="page-header">
  6. <h1 class="title" id="">グループ管理(グループ詳細)</h1>
  7. </header>
  8. </div>
  9. {% endblock %}
  10. {% block content_main %}
  11. <div class="content-main">
  12. {% set smessage = req.flash('successMessage') %}
  13. {% if smessage.length %}
  14. <div class="alert alert-success">
  15. {{ smessage }}
  16. </div>
  17. {% endif %}
  18. {% set emessage = req.flash('errorMessage') %}
  19. {% if emessage.length %}
  20. <div class="alert alert-danger">
  21. {{ emessage }}
  22. </div>
  23. {% endif %}
  24. <div class="row">
  25. <div class="col-md-3">
  26. {% include './widget/menu.html' with {current: 'user-group'} %}
  27. </div>
  28. <div class="col-md-9">
  29. <a href="/admin/user-groups"><i class="fa fa-arrow-left"></i> グループ一覧に戻る</a>
  30. <div class="modal fade" id="admin-add-user-group-relation-modal">
  31. <div class="modal-dialog">
  32. <div class="modal-content">
  33. <div class="modal-header">
  34. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
  35. <h4 class="modal-title">
  36. グループにユーザを追加します</h4>
  37. </div>
  38. <div class="modal-body">
  39. <p>
  40. ユーザ名を入力してください。
  41. </p>
  42. <form class="form-inline" role="form" action="/admin/user-group-relation/create" method="post">
  43. <div class="form-group">
  44. <label for="inputRelatedUserName">Add related user:</label>
  45. <input type="text" name="user_name" class="form-control input-sm" id="inputRelatedUserName" placeholder="username">
  46. </div>
  47. <input type="hidden" name="user_group_id" value="{{userGroup.id}}">
  48. <input type="hidden" name="_csrf" value="{{ csrf() }}">
  49. <button type="submit" class="btn btn-sm btn-danger">実行</button>
  50. </form>
  51. {% if 0 < notRelatedusers.length %}
  52. <hr>
  53. <p>
  54. ユーザ名を選択してください。
  55. </p>
  56. <ul class="list-inline">
  57. {% for sUser in notRelatedusers %}
  58. <li>
  59. <form role="form" action="/admin/user-group-relation/create" method="post">
  60. <!-- <input type="hidden" name="user_name" value="{{sUser.username}}"> -->
  61. <input type="hidden" name="user_group_id" value="{{userGroup.id}}">
  62. <input type="hidden" name="_csrf" value="{{ csrf() }}">
  63. <button type="submit" name="user_name" value="{{sUser.username}}" class="btn btn-xs btn-primary">{{sUser.username}}</button>
  64. </form>
  65. </li>
  66. {% endfor %}
  67. </ul>
  68. {% endif %}
  69. </div>
  70. </div>
  71. <!-- /.modal-content -->
  72. </div>
  73. <!-- /.modal-dialog -->
  74. </div>
  75. <div class="form-box">
  76. <form action="/admin/user-group/{{userGroup.id}}/update" method="post" class="form-horizontal" role="form">
  77. <fieldset>
  78. <legend>基本情報</legend>
  79. <div class="form-group">
  80. <label for="name" class="col-sm-2 control-label">{{ t('Name') }}</label>
  81. <div class="col-sm-4">
  82. <input class="form-control" type="text" name="name" value="{{ userGroup.name }}" required>
  83. </div>
  84. </div>
  85. <div class="form-group">
  86. <label class="col-sm-2 control-label">{{ t('Created') }}</label>
  87. <div class="col-sm-4">
  88. <input class="form-control" type="text" disabled value="{{userGroup.createdAt|date('Y-m-d', sRelation.relatedUser.createdAt.getTimezoneOffset()) }}">
  89. </div>
  90. </div>
  91. <div class="form-group">
  92. <div class="col-sm-offset-2 col-sm-10">
  93. <input type="hidden" name="_csrf" value="{{ csrf() }}">
  94. <button type="submit" class="btn btn-primary">{{ t('Update') }}</button>
  95. </div>
  96. </div>
  97. </fieldset>
  98. </form>
  99. </div>
  100. <div class="form-box">
  101. <fieldset>
  102. <legend>グループ画像の設定</legend>
  103. <div class="form-group col-sm-8">
  104. <h4>
  105. {{ t('Upload Image') }}
  106. </h4>
  107. <div class="form-group">
  108. <div id="pictureUploadFormMessage"></div>
  109. <label for="" class="col-sm-4 control-label">
  110. {{ t('Current Image') }}
  111. </label>
  112. <div class="col-sm-8">
  113. <p>
  114. <img src="{{ userGroup|uploadedpicture }}" width="64" id="settingUserPicture">
  115. <br>
  116. </p>
  117. <p>
  118. {% if userGroup.image %}
  119. <form action="/admin/user-group/{{userGroup.id}}/picture/delete" method="post" class="form-horizontal" role="form" onsubmit="return window.confirm('{{ t('Delete this image?') }}');">
  120. <button type="submit" class="btn btn-danger">{{ t('Delete Image') }}</button>
  121. </form>
  122. {% endif %}
  123. </p>
  124. </div>
  125. </div><!-- /.form-group -->
  126. <div class="form-group">
  127. <label for="" class="col-sm-4 control-label">
  128. {{ t('Upload new image') }}
  129. </label>
  130. <div class="col-sm-8">
  131. {% if isUploadable() %}
  132. <form action="/_api/admin/user-group/{{userGroup.id}}/picture/upload" id="pictureUploadForm" method="post" class="form-horizontal" role="form" enctype="multipart/form-data">
  133. <input name="userGroupPicture" type="file" accept="image/*">
  134. <div id="pictureUploadFormProgress">
  135. </div>
  136. </form>
  137. {% else %} * {{ t('page_me.form_help.profile_image1') }}
  138. <br> * {{ t('page_me.form_help.profile_image2') }}
  139. <br> {% endif %}
  140. </div>
  141. </div><!-- /.form-group -->
  142. </div><!-- /.col-sm- -->
  143. </fieldset>
  144. </div><!-- /.form-box -->
  145. <legend>ユーザー一覧</legend>
  146. <table class="table table-hover table-striped table-bordered table-user-list">
  147. <thead>
  148. <tr>
  149. <th width="100px">#</th>
  150. <th>
  151. <code>username</code>
  152. </th>
  153. <th>名前</th>
  154. <th width="100px">作成日</th>
  155. <th width="150px">最終ログイン</th>
  156. <th width="90px">操作</th>
  157. </tr>
  158. </thead>
  159. <tbody>
  160. {% for sRelation in userGroupRelations %}
  161. {% set sUser = sRelation.relatedUser%}
  162. <tr>
  163. <td>
  164. <img src="{{ sRelation.relatedUser|picture }}" class="picture picture-rounded" />
  165. </td>
  166. <td>
  167. <strong>{{ sRelation.relatedUser.username }}</strong>
  168. </td>
  169. <td>{{ sRelation.relatedUser.name }}</td>
  170. <td>{{ sRelation.relatedUser.createdAt|date('Y-m-d', sRelation.relatedUser.createdAt.getTimezoneOffset()) }}</td>
  171. <td>
  172. {% if sRelation.relatedUser.lastLoginAt %} {{ sRelation.relatedUser.lastLoginAt|date('Y-m-d H:i', sRelation.relatedUser.createdAt.getTimezoneOffset()) }} {% endif %}
  173. </td>
  174. <td>
  175. <div class="btn-group admin-user-menu">
  176. <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
  177. 編集
  178. <span class="caret"></span>
  179. </button>
  180. <ul class="dropdown-menu" role="menu">
  181. <li class="dropdown-header">編集メニュー</li>
  182. <li class="divider"></li>
  183. <li class="dropdown-button">
  184. <form action="/admin/user-group-relation/{{userGroup.name}}/remove-relation/{{ sRelation._id.toString() }}" method="post">
  185. <input type="hidden" name="_csrf" value="{{ csrf() }}">
  186. <button type="submit" class="btn btn-block btn-danger">グループから外す</button>
  187. </form>
  188. </li>
  189. </ul>
  190. </div>
  191. </td>
  192. </tr>
  193. {% endfor %}
  194. {% if 0 < notRelatedusers.length %}
  195. <tr>
  196. <td></td>
  197. <td><button type="button" class="btn btn-primary" data-target="#admin-add-user-group-relation-modal" data-toggle="modal"><i class="fa fa-plus"></i></button></td>
  198. <td></td>
  199. <td></td>
  200. <td></td>
  201. <td></td>
  202. </tr>
  203. {% endif %}
  204. </tbody>
  205. </table>
  206. <!-- {% include '../widget/pager.html' with {path: "/admin/user-group-detail", pager: pager} %} -->
  207. <legend>ページ一覧</legend>
  208. {% if pageGroupRelations.length == 0 %}<p>グループが閲覧権限を保有するページはありません</p>{% endif %}
  209. {% include '../widget/page_list.html' with { pages: pageGroupRelations, pagePropertyName: 'targetPage' } %}
  210. </div>
  211. </div>
  212. </div>
  213. {% endblock content_main %}
  214. {% block content_footer %}
  215. {% endblock content_footer %}