userHeader.jade 6.3 KB

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