userHeader.jade 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. i.fa.fa-list
  18. | {{_ 'my-cards'}}
  19. li
  20. a.js-due-cards(href="{{pathFor 'due-cards'}}")
  21. i.fa.fa-calendar
  22. | {{_ 'dueCards-title'}}
  23. li
  24. a.js-global-search(href="{{pathFor 'global-search'}}")
  25. i.fa.fa-search
  26. | {{_ 'globalSearch-title'}}
  27. li
  28. a(href="{{pathFor 'home'}}")
  29. span.fa.fa-home
  30. | {{_ 'all-boards'}}
  31. li
  32. a(href="{{pathFor 'public'}}")
  33. span.fa.fa-globe
  34. | {{_ 'public'}}
  35. li
  36. a.board-header-btn.js-open-archived-board
  37. i.fa.fa-archive
  38. span {{_ 'archives'}}
  39. unless currentUser.isWorker
  40. ul.pop-over-list
  41. li
  42. a(href="{{pathFor 'board' id=templatesBoardId slug=templatesBoardSlug}}")
  43. i.fa.fa-clone
  44. | {{_ 'templates'}}
  45. if currentUser.isAdmin
  46. li
  47. a.js-go-setting(href="{{pathFor 'setting'}}")
  48. i.fa.fa-lock
  49. | {{_ 'admin-panel'}}
  50. hr
  51. if isSameDomainNameSettingValue
  52. li
  53. a.js-invite-people
  54. i.fa.fa-envelope
  55. | {{_ 'invite-people'}}
  56. if isNotOAuth2AuthenticationMethod
  57. li
  58. a.js-edit-profile
  59. i.fa.fa-user
  60. | {{_ 'edit-profile'}}
  61. li
  62. a.js-change-settings
  63. i.fa.fa-cog
  64. | {{_ 'change-settings'}}
  65. li
  66. a.js-change-avatar
  67. i.fa.fa-picture-o
  68. | {{_ 'edit-avatar'}}
  69. unless isSandstorm
  70. if isNotOAuth2AuthenticationMethod
  71. li
  72. a.js-change-password
  73. i.fa.fa-key
  74. | {{_ 'changePasswordPopup-title'}}
  75. li
  76. a.js-change-language
  77. i.fa.fa-flag
  78. | {{_ 'changeLanguagePopup-title'}}
  79. li
  80. a.js-support
  81. i.fa.fa-question-circle
  82. | {{_ 'support'}}
  83. unless isSandstorm
  84. hr
  85. ul.pop-over-list
  86. li
  87. a.js-logout
  88. i.fa.fa-sign-out
  89. | {{_ 'log-out'}}
  90. template(name="invitePeoplePopup")
  91. ul#registration-setting.setting-detail
  92. li
  93. #invite-people-infos
  94. li
  95. br
  96. li
  97. .invite-people(class="{{#if currentSetting.disableRegistration}}{{else}}hide{{/if}}")
  98. ul
  99. li
  100. .title {{_ 'invite-people'}}
  101. textarea#email-to-invite.wekan-form-control(rows='5', placeholder="{{_ 'email-addresses'}}")
  102. li
  103. .title {{_ 'to-boards'}}
  104. .bg-white
  105. each boards
  106. a.option.flex.js-toggle-board-choose(id= _id)
  107. .materialCheckBox(data-id= _id)
  108. span= title
  109. li
  110. button.js-email-invite.primary {{_ 'invite'}}
  111. template(name="editProfilePopup")
  112. form
  113. label
  114. | {{_ 'fullname'}}
  115. input.js-profile-fullname(type="text" value=profile.fullname autofocus)
  116. label
  117. | {{_ 'username'}}
  118. span.error.hide.username-taken
  119. | {{_ 'error-username-taken'}}
  120. if allowUserNameChange
  121. input.js-profile-username(type="text" value=username)
  122. else
  123. input.js-profile-username(type="text" value=username readonly)
  124. label
  125. | {{_ 'initials'}}
  126. input.js-profile-initials(type="text" value=profile.initials)
  127. label
  128. | {{_ 'email'}}
  129. span.error.hide.email-taken
  130. | {{_ 'error-email-taken'}}
  131. if allowEmailChange
  132. input.js-profile-email(type="email" value="{{emails.[0].address}}")
  133. else
  134. input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
  135. div.buttonsContainer
  136. input.primary.wide(type="submit" value="{{_ 'save'}}")
  137. if allowUserDelete
  138. div
  139. input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
  140. template(name="supportPopup")
  141. ul.pop-over-list
  142. li
  143. | You get support from name of this app,
  144. | that has Admin access to help you.
  145. br
  146. br
  147. | a) If app name or logo or URL is https://something.yourcompany.com, you get support from https://yourcompany.com.
  148. | This app may come preinstalled at some devices.
  149. br
  150. br
  151. | b) If this app name is WeKan from https://wekan.team/app/ or URL is https://boards.wekan.team,
  152. | then this is WeKan Open Source kanban software with MIT license https://wekan.github.io with all source code
  153. | at https://github.com/wekan/wekan, PRs are very welcome at https://github.com/wekan/wekan/pulls.
  154. | Free public Open Source support is at https://github.com/wekan/wekan/issues for feature requests and bug reports.
  155. | Optional paid private Commercial Support for Features/Fixes/Support/Hosting is at https://wekan.team from maintainer of WeKan.
  156. | If possible, please sponsor continuing maintaining of WeKan at https://wekan.github.io/sponsors/
  157. template(name="changePasswordPopup")
  158. +atForm(state='changePwd')
  159. template(name="changeLanguagePopup")
  160. ul.pop-over-list
  161. each languages
  162. li(class="{{# if isCurrentLanguage}}active{{/if}}")
  163. a.js-set-language
  164. = name
  165. if isCurrentLanguage
  166. i.fa.fa-check
  167. template(name="changeSettingsPopup")
  168. ul.pop-over-list
  169. //li
  170. // a.js-toggle-desktop-drag-handles
  171. // i.fa.fa-arrows
  172. // | {{_ 'show-desktop-drag-handles'}}
  173. // if isShowDesktopDragHandles
  174. // i.fa.fa-check
  175. unless currentUser.isWorker
  176. li
  177. label.bold.clear
  178. i.fa.fa-sort-numeric-asc
  179. | {{_ 'show-cards-minimum-count'}}
  180. input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="-1")
  181. label.bold.clear
  182. i.fa.fa-calendar
  183. | {{_ 'start-day-of-week'}}
  184. select#start-day-of-week.inline-input.left
  185. each day in weekDays startDayOfWeek
  186. if day.isSelected
  187. option(selected="true", value="#{day.value}") #{day.name}
  188. else
  189. option(value="#{day.value}") #{day.name}
  190. label.bold.clear
  191. | {{_ 'card-settings'}}
  192. ul#cards.card-description-rescued
  193. a.flex.js-rescue-card-description(title="{{_ 'rescue-card-description'}}")
  194. b  
  195. #rescue-card-description.materialCheckBox.left(class="{{#if rescueCardDescription}}is-checked{{/if}}", value=rescueCardDescription)
  196. span {{_ 'rescue-card-description'}}
  197. input.js-apply-user-settings.left(type="submit" value="{{_ 'apply'}}")
  198. template(name="userDeletePopup")
  199. unless currentUser.isWorker
  200. p {{_ 'delete-user-confirm-popup'}}
  201. button.js-confirm.negate.full(type="submit") {{_ 'delete'}}