userHeader.jade 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. template(name="headerUserBar")
  2. #header-user-bar
  3. a.header-user-bar-name.js-open-header-member-menu(title="{{_ 'memberMenuPopup-title'}}")
  4. .header-user-bar-avatar
  5. +userAvatar(userId=currentUser._id)
  6. unless isMiniScreen
  7. unless isSandstorm
  8. if currentUser.profile.fullname
  9. = currentUser.profile.fullname
  10. else
  11. = currentUser.username
  12. template(name="memberMenuPopup")
  13. ul.pop-over-list
  14. // Bookmarks at the very top
  15. li
  16. a.js-open-bookmarks
  17. | 🔖
  18. | {{_ 'bookmarks'}}
  19. with currentUser
  20. li
  21. a.js-my-cards(href="{{pathFor 'my-cards'}}")
  22. | 📋
  23. | {{_ 'my-cards'}}
  24. li
  25. a.js-due-cards(href="{{pathFor 'due-cards'}}")
  26. | 📅
  27. | {{_ 'dueCards-title'}}
  28. li
  29. a.js-global-search(href="{{pathFor 'global-search'}}")
  30. | 🔍
  31. | {{_ 'globalSearch-title'}}
  32. li
  33. a(href="{{pathFor 'home'}}")
  34. | 🏠
  35. | {{_ 'all-boards'}}
  36. li
  37. a(href="{{pathFor 'public'}}")
  38. | 🌐
  39. | {{_ 'public'}}
  40. li
  41. a.board-header-btn.js-open-archived-board
  42. | 📦
  43. span {{_ 'archives'}}
  44. li
  45. a.js-notifications-drawer-toggle
  46. | 🔔
  47. | {{_ 'notifications'}}
  48. if currentSetting.customHelpLinkUrl
  49. li
  50. a(href="{{currentSetting.customHelpLinkUrl}}", title="{{_ 'help'}}", target="_blank", rel="noopener noreferrer")
  51. | ❓
  52. | {{_ 'help'}}
  53. unless currentUser.isWorker
  54. ul.pop-over-list
  55. li
  56. a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
  57. | 📋
  58. | {{_ 'templates'}}
  59. if currentUser.isAdmin
  60. li
  61. a.js-go-setting(href="{{pathFor 'setting'}}")
  62. | 🔒
  63. | {{_ 'admin-panel'}}
  64. hr
  65. if isSameDomainNameSettingValue
  66. li
  67. a.js-invite-people
  68. | ✉️
  69. | {{_ 'invite-people'}}
  70. if isNotOAuth2AuthenticationMethod
  71. li
  72. a.js-edit-profile
  73. | 👤
  74. | {{_ 'edit-profile'}}
  75. li
  76. a.js-change-settings
  77. | ⚙️
  78. | {{_ 'change-settings'}}
  79. li
  80. a.js-change-avatar
  81. | 🖼️
  82. | {{_ 'edit-avatar'}}
  83. unless isSandstorm
  84. if isNotOAuth2AuthenticationMethod
  85. li
  86. a.js-change-password
  87. | 🔑
  88. | {{_ 'changePasswordPopup-title'}}
  89. li
  90. a.js-change-language
  91. | 🏁
  92. | {{_ 'changeLanguagePopup-title'}}
  93. //li
  94. // a.js-support
  95. // ❓-circle
  96. // | {{_ 'support'}}
  97. unless isSandstorm
  98. hr
  99. ul.pop-over-list
  100. li
  101. a.js-logout
  102. | 🚪
  103. | {{_ 'log-out'}}
  104. template(name="invitePeoplePopup")
  105. ul#registration-setting.setting-detail
  106. li
  107. #invite-people-infos
  108. li
  109. br
  110. li
  111. .invite-people(class="{{#if currentSetting.disableRegistration}}{{else}}hide{{/if}}")
  112. ul
  113. li
  114. .title {{_ 'invite-people'}}
  115. textarea#email-to-invite.wekan-form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
  116. li
  117. .title {{_ 'to-boards'}}
  118. .bg-white
  119. each boards
  120. a.option.flex.js-toggle-board-choose(id= _id)
  121. .materialCheckBox(data-id= _id)
  122. span= title
  123. li
  124. button.js-email-invite.primary {{_ 'invite'}}
  125. template(name="editProfilePopup")
  126. form
  127. label
  128. | {{_ 'fullname'}}
  129. input.js-profile-fullname(type="text" value=profile.fullname autofocus)
  130. label
  131. | {{_ 'username'}}
  132. span.error.hide.username-taken
  133. | {{_ 'error-username-taken'}}
  134. if allowUserNameChange
  135. input.js-profile-username(type="text" value=username)
  136. else
  137. input.js-profile-username(type="text" value=username readonly)
  138. label
  139. | {{_ 'initials'}}
  140. input.js-profile-initials(type="text" value=profile.initials)
  141. label
  142. | {{_ 'email'}}
  143. span.error.hide.email-taken
  144. | {{_ 'error-email-taken'}}
  145. if allowEmailChange
  146. input.js-profile-email(type="email" value="{{emails.[0].address}}")
  147. else
  148. input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
  149. div.buttonsContainer
  150. input.primary.wide(type="submit" value="{{_ 'save'}}")
  151. if allowUserDelete
  152. div
  153. input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
  154. template(name="supportPopup")
  155. ul.pop-over-list
  156. li
  157. | Support popup text will be editable later.
  158. template(name="changePasswordPopup")
  159. +atForm(state='changePwd')
  160. template(name="changeLanguagePopup")
  161. ul.pop-over-list
  162. each languages
  163. li(class="{{# if isCurrentLanguage}}active{{/if}}")
  164. a.js-set-language
  165. = name
  166. if isCurrentLanguage
  167. i.fa.fa-check
  168. template(name="changeSettingsPopup")
  169. ul.pop-over-list
  170. //li
  171. // a.js-toggle-desktop-drag-handles
  172. // i.fa.fa-arrows
  173. // | {{_ 'show-desktop-drag-handles'}}
  174. // if isShowDesktopDragHandles
  175. // i.fa.fa-check
  176. unless currentUser.isWorker
  177. li
  178. label.bold.clear
  179. i.fa.fa-sort-numeric-asc
  180. | {{_ 'show-cards-minimum-count'}}
  181. input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="-1")
  182. label.bold.clear
  183. | 📅
  184. | {{_ 'start-day-of-week'}}
  185. select#start-day-of-week.inline-input.left
  186. each day in weekDays startDayOfWeek
  187. if day.isSelected
  188. option(selected="true", value="#{day.value}") #{day.name}
  189. else
  190. option(value="#{day.value}") #{day.name}
  191. label.bold.clear
  192. | {{_ 'card-settings'}}
  193. ul#cards.card-description-rescued
  194. a.flex.js-rescue-card-description(title="{{_ 'rescue-card-description'}}")
  195. b  
  196. #rescue-card-description.materialCheckBox.left(class="{{#if rescueCardDescription}}is-checked{{/if}}", value=rescueCardDescription)
  197. span {{_ 'rescue-card-description'}}
  198. input.js-apply-user-settings.left(type="submit" value="{{_ 'apply'}}")
  199. template(name="userDeletePopup")
  200. unless currentUser.isWorker
  201. p {{_ 'delete-user-confirm-popup'}}
  202. button.js-confirm.negate.full(type="submit") {{_ 'delete'}}