access.html 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <div class="modal" v-if="active_modal == 'access' && access_settings_space" v-cloak>
  2. <div class="modal-wrapper">
  3. <div class="modal-dialog">
  4. <div class="modal-content" style="width:760px">
  5. <div class="modal-header" style="padding-bottom:0">
  6. <h3 class="text-left"><span class="icon icon-share icon-sm"></span> [[__("share")]]: {{access_settings_space.name}}</h3>
  7. <button type="button" class="btn btn-icon btn-light btn-round close" v-on:click=" close_modal()">
  8. <span class="icon icon-cross-1"></span>
  9. </button>
  10. </div>
  11. <div class="modal-body">
  12. <div class="modal-section" style="padding-top:0;padding-bottom:20px">
  13. <label class="radio" v-bind:class="{checked:access_settings_space.access_mode=='private'}">
  14. <input type="radio" name="access_mode" value="private" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)"> [[__("mode_private")]]
  15. </label>
  16. <label class="radio" v-bind:class="{checked:access_settings_space.access_mode=='public'}">
  17. <input type="radio" name="access_mode" value="public" v-model="access_settings_space.access_mode" v-on:click="save_space_access_mode($event)">[[__("mode_public")]]
  18. </label>
  19. </div>
  20. <div class="modal-section" v-if="active_space" style="padding-bottom:10px">
  21. <h4 class="text-left"><span class="icon icon-link icon-sm"></span> [[__("access_editor_link")]] </h4>
  22. <p class="text-left">
  23. [[__("access_editor_link_desc")]]
  24. </p>
  25. <div class="input-group org-add-form">
  26. <input id="editorurl2" type="text" class="form-control input input-lg" v-bind:value="share_base + '/s/' + access_settings_space.edit_hash + (access_settings_space.edit_slug ? '-' : '') + access_settings_space.edit_slug"/>
  27. <span class="input-group-btn">
  28. <span id="org-add-member" class="btn btn-lg btn-primary clipboard-btn" data-clipboard-target="#editorurl2" v-clipboard>
  29. [[__("copy")]]
  30. </span>
  31. </span>
  32. </div>
  33. <label class="checkbox" v-bind:class="{checked:access_settings_space.editors_locking}">
  34. <input
  35. type="checkbox"
  36. v-bind:checked="access_settings_space.editors_locking"
  37. v-model="access_settings_space.editors_locking" v-on:change="save_space_editors_locking($event)" />
  38. [[__("access_anonymous_edit_blocking")]]
  39. </label>
  40. </div>
  41. <!-- subsection "invite" -->
  42. <div id="new-editor" class="modal-section" style="padding-bottom:20px">
  43. <h4 class="text-left"><span class="icon icon-user-add icon-sm"></span> [[__('access_new_members')]]</h4>
  44. <div class="form-group">
  45. <span class="error-note" v-if="invite_email_error">{{invite_email_error}}</span>
  46. <input class="input input-block input-white"
  47. v-bind:class="{error: !!invite_email_error}"
  48. id="invitee_email"
  49. v-model="invite_email"
  50. type="email" placeholder="[[__('invite_emails')]]">
  51. <textarea id="invite-message" class="input input-block input-white overflow-y-scroll"
  52. v-model="invite_message" placeholder="[[__('optional_message')]]" name="Message"></textarea>
  53. <select class="input input-white" v-model="invite_member_role">
  54. <option value="viewer">[[__("role_viewer")]]</option>
  55. <option value="editor">[[__("role_editor")]]</option>
  56. <option value="admin">[[__("role_admin")]]</option>
  57. </select>
  58. </div>
  59. <div class="form-group">
  60. <button class="btn btn-primary btn-md btn-round" v-on:click="invite_member(access_settings_space, invite_email, invite_message, invite_member_role)"> [[__("invite")]] </button>
  61. </div>
  62. </div>
  63. <!-- subsection "editors list" -->
  64. <div class="modal-section" style="padding-bottom:60px">
  65. <h4 class="text-left"><span class="icon icon-user-group icon-sm"></span> [[__("access_current_members")]]</h4>
  66. <table class="table">
  67. <tr>
  68. <th></th>
  69. <th>Email / Name</th>
  70. <th>Role</th>
  71. <th></th>
  72. </tr>
  73. <tr v-for="member in access_settings_memberships" v-bind:class="member.state">
  74. <td>
  75. <span class="editor-avatar btn btn-xs btn-round btn-icon" v-if="member.user">{{member.user.initials}}</span>
  76. <span class="editor-avatar btn btn-xs btn-round btn-icon icon-hourglass" v-if="!member.user"></span>
  77. </td>
  78. <td>
  79. <span class="editor-email" v-if="member.state == 'active'">{{member.user.email}}</span>
  80. <span class="editor-email" v-if="member.state == 'pending'">{{member.email_invited}}</span>
  81. <span class="editor-name" v-if="member.state == 'active'">{{member.user.nickname}}</span>
  82. <span class="editor-email" v-if="member.state == 'pending'">(pending)</span>
  83. </td>
  84. <td>
  85. <div class="form-group">
  86. <select class="input input-sm" v-model="member.role" v-on:change="update_member(access_settings_space, member, $event.currentTarget.value)" style="width:auto">
  87. <option value="viewer">[[__("role_viewer")]]</option>
  88. <option value="editor">[[__("role_editor")]]</option>
  89. <option value="admin">[[__("role_admin")]]</option>
  90. </select>
  91. </div>
  92. </td>
  93. <td>
  94. <button class="btn btn-sm btn-stroke-darken" v-on:click="remove_member(access_settings_space, member)">[[__("delete")]]</button>
  95. </td>
  96. </tr>
  97. </table>
  98. <p class="text-left" v-if="!access_settings_memberships.length">
  99. [[__("access_no_members")]]
  100. </p>
  101. <div class="form-group" style="padding-top: 40px">
  102. <button class="btn btn-primary btn-md btn-round" v-on:click="close_modal();"> [[__("ok")]] </button>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </div>