peopleBody.jade 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641
  1. template(name="people")
  2. .setting-content
  3. unless currentUser.isAdmin
  4. | {{_ 'error-notAuthorized'}}
  5. else
  6. .content-title.ext-box
  7. .ext-box-left
  8. if loading.get
  9. +spinner
  10. else if orgSetting.get
  11. span
  12. i.fa.fa-sitemap
  13. unless isMiniScreen
  14. | {{_ 'organizations'}}
  15. input#searchOrgInput(placeholder="{{_ 'search'}}")
  16. button#searchOrgButton
  17. i.fa.fa-search
  18. | {{_ 'search'}}
  19. .ext-box-right
  20. span {{#unless isMiniScreen}}{{_ 'org-number'}}{{/unless}} #{orgNumber}
  21. else if teamSetting.get
  22. span
  23. i.fa.fa-users
  24. unless isMiniScreen
  25. | {{_ 'teams'}}
  26. input#searchTeamInput(placeholder="{{_ 'search'}}")
  27. button#searchTeamButton
  28. i.fa.fa-search
  29. | {{_ 'search'}}
  30. .ext-box-right
  31. span {{#unless isMiniScreen}}{{_ 'team-number'}}{{/unless}} #{teamNumber}
  32. else if peopleSetting.get
  33. span
  34. i.fa.fa-user
  35. unless isMiniScreen
  36. | {{_ 'people'}}
  37. input#searchInput(placeholder="{{_ 'search'}}")
  38. button#searchButton
  39. i.fa.fa-search
  40. | {{_ 'search'}}
  41. .ext-box-right
  42. span {{#unless isMiniScreen}}{{_ 'people-number'}}{{/unless}} #{peopleNumber}
  43. .divAddOrRemoveTeam#divAddOrRemoveTeam
  44. button#addOrRemoveTeam
  45. i.fa.fa-edit
  46. | {{_ 'add'}} / {{_ 'delete'}} {{_ 'teams'}}
  47. .content-body
  48. .side-menu
  49. ul
  50. li.active
  51. a.js-org-menu(data-id="org-setting")
  52. i.fa.fa-sitemap
  53. | {{_ 'organizations'}}
  54. li
  55. a.js-team-menu(data-id="team-setting")
  56. i.fa.fa-users
  57. | {{_ 'teams'}}
  58. li
  59. a.js-people-menu(data-id="people-setting")
  60. i.fa.fa-user
  61. | {{_ 'people'}}
  62. .main-body
  63. if loading.get
  64. +spinner
  65. else if orgSetting.get
  66. +orgGeneral
  67. else if teamSetting.get
  68. +teamGeneral
  69. else if peopleSetting.get
  70. +peopleGeneral
  71. template(name="orgGeneral")
  72. table
  73. tbody
  74. tr
  75. th {{_ 'displayName'}}
  76. th {{_ 'description'}}
  77. th {{_ 'shortName'}}
  78. th {{_ 'autoAddUsersWithDomainName'}}
  79. th {{_ 'website'}}
  80. th {{_ 'createdAt'}}
  81. th {{_ 'active'}}
  82. th
  83. +newOrgRow
  84. each org in orgList
  85. +orgRow(orgId=org._id)
  86. template(name="teamGeneral")
  87. table
  88. tbody
  89. tr
  90. th {{_ 'displayName'}}
  91. th {{_ 'description'}}
  92. th {{_ 'shortName'}}
  93. th {{_ 'website'}}
  94. th {{_ 'createdAt'}}
  95. th {{_ 'active'}}
  96. th
  97. +newTeamRow
  98. each team in teamList
  99. +teamRow(teamId=team._id)
  100. template(name="peopleGeneral")
  101. #divAddOrRemoveTeamContainer
  102. +modifyTeamsUsers
  103. table
  104. tbody
  105. tr
  106. th
  107. +selectAllUser
  108. th {{_ 'username'}}
  109. th {{_ 'fullname'}}
  110. th {{_ 'initials'}}
  111. th {{_ 'admin'}}
  112. th {{_ 'email'}}
  113. th {{_ 'verified'}}
  114. th {{_ 'createdAt'}}
  115. th {{_ 'active'}}
  116. th {{_ 'authentication-method'}}
  117. th {{_ 'import-usernames'}}
  118. th {{_ 'organizations'}}
  119. th {{_ 'teams'}}
  120. th
  121. +newUserRow
  122. each user in peopleList
  123. +peopleRow(userId=user._id)
  124. template(name="selectAllUser")
  125. | {{_ 'dueCardsViewChange-choice-all'}}
  126. input.allUserChkBox(type="checkbox", id="chkSelectAll")
  127. template(name="newOrgRow")
  128. a.new-org
  129. i.fa.fa-plus-square
  130. | {{_ 'new'}}
  131. template(name="newTeamRow")
  132. a.new-team
  133. i.fa.fa-plus-square
  134. | {{_ 'new'}}
  135. template(name="newUserRow")
  136. a.new-user
  137. i.fa.fa-plus-square
  138. | {{_ 'new'}}
  139. template(name="orgRow")
  140. tr
  141. if orgData.orgIsActive
  142. td {{ orgData.orgDisplayName }}
  143. else
  144. td <s>{{ orgData.orgDisplayName }}</s>
  145. if orgData.orgIsActive
  146. td {{ orgData.orgDesc }}
  147. else
  148. td <s>{{ orgData.orgDesc }}</s>
  149. if orgData.orgIsActive
  150. td {{ orgData.orgShortName }}
  151. else
  152. td <s>{{ orgData.orgShortName }}</s>
  153. if orgData.orgIsActive
  154. td {{ orgData.orgAutoAddUsersWithDomainName }}
  155. else
  156. td <s>{{ orgData.orgAutoAddUsersWithDomainName }}</s>
  157. if orgData.orgIsActive
  158. td {{ orgData.orgWebsite }}
  159. else
  160. td <s>{{ orgData.orgWebsite }}</s>
  161. if orgData.orgIsActive
  162. td {{ moment orgData.createdAt 'LLL' }}
  163. else
  164. td <s>{{ moment orgData.createdAt 'LLL' }}</s>
  165. td
  166. if orgData.orgIsActive
  167. | {{_ 'yes'}}
  168. else
  169. | {{_ 'no'}}
  170. td
  171. a.edit-org
  172. i.fa.fa-edit
  173. | {{_ 'edit'}}
  174. a.more-settings-org
  175. i.fa.fa-ellipsis-h
  176. template(name="teamRow")
  177. tr
  178. if teamData.teamIsActive
  179. td {{ teamData.teamDisplayName }}
  180. else
  181. td <s>{{ teamData.teamDisplayName }}</s>
  182. if teamData.teamIsActive
  183. td {{ teamData.teamDesc }}
  184. else
  185. td <s>{{ teamData.teamDesc }}</s>
  186. if teamData.teamIsActive
  187. td {{ teamData.teamShortName }}
  188. else
  189. td <s>{{ teamData.teamShortName }}</s>
  190. if teamData.teamIsActive
  191. td {{ teamData.teamWebsite }}
  192. else
  193. td <s>{{ teamData.teamWebsite }}</s>
  194. if teamData.teamIsActive
  195. td {{ moment teamData.createdAt 'LLL' }}
  196. else
  197. td <s>{{ moment teamData.createdAt 'LLL' }}</s>
  198. td
  199. if teamData.teamIsActive
  200. | {{_ 'yes'}}
  201. else
  202. | {{_ 'no'}}
  203. td
  204. a.edit-team
  205. i.fa.fa-edit
  206. | {{_ 'edit'}}
  207. a.more-settings-team
  208. i.fa.fa-ellipsis-h
  209. template(name="peopleRow")
  210. tr
  211. if userData.loginDisabled
  212. td
  213. input.selectUserChkBox(type="checkbox", disabled="disabled", id="{{userData._id}}")
  214. else
  215. td
  216. input.selectUserChkBox(type="checkbox", id="{{userData._id}}")
  217. if userData.loginDisabled
  218. td.username <s>{{ userData.username }}</s>
  219. else
  220. td.username {{ userData.username }}
  221. if userData.loginDisabled
  222. td <s>{{ userData.profile.fullname }}</s>
  223. else
  224. td {{ userData.profile.fullname }}
  225. if userData.loginDisabled
  226. td <s>{{ userData.profile.initials }}</s>
  227. else
  228. td {{ userData.profile.initials }}
  229. if userData.loginDisabled
  230. td
  231. if userData.isAdmin
  232. | <s>{{_ 'yes'}}</s>
  233. else
  234. | <s>{{_ 'no'}}</s>
  235. else
  236. td
  237. if userData.isAdmin
  238. | {{_ 'yes'}}
  239. else
  240. | {{_ 'no'}}
  241. if userData.loginDisabled
  242. td <s>{{ userData.emails.[0].address }}</s>
  243. else
  244. td {{ userData.emails.[0].address }}
  245. if userData.loginDisabled
  246. td
  247. if userData.emails.[0].verified
  248. | <s>{{_ 'yes'}}</s>
  249. else
  250. | <s>{{_ 'no'}}</s>
  251. else
  252. td
  253. if userData.emails.[0].verified
  254. | {{_ 'yes'}}
  255. else
  256. | {{_ 'no'}}
  257. if userData.loginDisabled
  258. td <s>{{ moment userData.createdAt 'LLL' }}</s>
  259. else
  260. td {{ moment userData.createdAt 'LLL' }}
  261. td
  262. if userData.loginDisabled
  263. | {{_ 'no'}}
  264. else
  265. | {{_ 'yes'}}
  266. if userData.loginDisabled
  267. td <s>{{_ userData.authenticationMethod }}</s>
  268. else
  269. td {{_ userData.authenticationMethod }}
  270. if userData.loginDisabled
  271. td <s>{{ userData.importUsernamesString }}</s>
  272. else
  273. td {{ userData.importUsernamesString }}
  274. if userData.loginDisabled
  275. td <s>{{ userData.orgsUserBelongs }}</s>
  276. else
  277. td {{ userData.orgsUserBelongs }}
  278. if userData.loginDisabled
  279. td <s>{{ userData.teamsUserBelongs }}</s>
  280. else
  281. td {{ userData.teamsUserBelongs }}
  282. td
  283. a.edit-user
  284. i.fa.fa-edit
  285. | {{_ 'edit'}}
  286. a.more-settings-user
  287. i.fa.fa-ellipsis-h
  288. template(name="editOrgPopup")
  289. form
  290. label.hide.orgId(type="text" value=org._id)
  291. label
  292. | {{_ 'displayName'}}
  293. input.js-orgDisplayName(type="text" value=org.orgDisplayName required)
  294. span.error.hide.orgname-taken
  295. | {{_ 'error-orgname-taken'}}
  296. label
  297. | {{_ 'description'}}
  298. input.js-orgDesc(type="text" value=org.orgDesc required)
  299. label
  300. | {{_ 'shortName'}}
  301. input.js-orgShortName(type="text" value=org.orgShortName required)
  302. label
  303. | {{_ 'autoAddUsersWithDomainName'}}
  304. input.js-orgAutoAddUsersWithDomainName(type="text" value=org.orgAutoAddUsersWithDomainName)
  305. label
  306. | {{_ 'website'}}
  307. input.js-orgWebsite(type="text" value=org.orgWebsite required)
  308. label
  309. | {{_ 'active'}}
  310. select.select-active.js-org-isactive
  311. option(value="false") {{_ 'no'}}
  312. option(value="true" selected="{{org.orgIsActive}}") {{_ 'yes'}}
  313. hr
  314. div.buttonsContainer
  315. input.primary.wide(type="submit" value="{{_ 'save'}}")
  316. template(name="editTeamPopup")
  317. form
  318. label.hide.teamId(type="text" value=team._id)
  319. label
  320. | {{_ 'displayName'}}
  321. input.js-teamDisplayName(type="text" value=team.teamDisplayName required)
  322. span.error.hide.teamname-taken
  323. | {{_ 'error-teamname-taken'}}
  324. label
  325. | {{_ 'description'}}
  326. input.js-teamDesc(type="text" value=team.teamDesc required)
  327. label
  328. | {{_ 'shortName'}}
  329. input.js-teamShortName(type="text" value=team.teamShortName required)
  330. label
  331. | {{_ 'website'}}
  332. input.js-teamWebsite(type="text" value=team.teamWebsite required)
  333. label
  334. | {{_ 'active'}}
  335. select.select-active.js-team-isactive
  336. option(value="false") {{_ 'no'}}
  337. option(value="true" selected="{{team.teamIsActive}}") {{_ 'yes'}}
  338. hr
  339. div.buttonsContainer
  340. input.primary.wide(type="submit" value="{{_ 'save'}}")
  341. template(name="editUserPopup")
  342. form
  343. label.hide.userId(type="text" value=user._id)
  344. label
  345. | {{_ 'username'}}
  346. span.error.hide.username-taken
  347. | {{_ 'error-username-taken'}}
  348. if isLdap
  349. input.js-profile-username(type="text" value=user.username readonly)
  350. else
  351. input.js-profile-username(type="text" value=user.username required)
  352. label
  353. | {{_ 'fullname'}}
  354. input.js-profile-fullname(type="text" value=user.profile.fullname required)
  355. label
  356. | {{_ 'initials'}}
  357. input.js-profile-initials(type="text" value=user.profile.initials)
  358. label
  359. | {{_ 'admin'}}
  360. select.select-role.js-profile-isadmin
  361. option(value="false") {{_ 'no'}}
  362. option(value="true" selected="{{user.isAdmin}}") {{_ 'yes'}}
  363. label
  364. | {{_ 'email'}}
  365. span.error.hide.email-taken
  366. | {{_ 'error-email-taken'}}
  367. if isLdap
  368. input.js-profile-email(type="email" value="{{user.emails.[0].address}}" readonly)
  369. else
  370. input.js-profile-email(type="email" value="{{user.emails.[0].address}}" required)
  371. label
  372. | {{_ 'import-usernames'}}
  373. input.js-import-usernames(type="text" value=user.importUsernames)
  374. label
  375. | {{_ 'verified'}}
  376. select.select-verified.js-profile-email-verified
  377. option(value="false") {{_ 'no'}}
  378. option(value="true" selected="{{userData.emails.[0].verified}}") {{_ 'yes'}}
  379. label
  380. | {{_ 'active'}}
  381. select.select-active.js-profile-isactive
  382. option(value="false") {{_ 'yes'}}
  383. option(value="true" selected="{{user.loginDisabled}}") {{_ 'no'}}
  384. label
  385. | {{_ 'authentication-type'}}
  386. select.select-authenticationMethod.js-authenticationMethod
  387. each authentications
  388. if isSelected value
  389. option(value="{{value}}" selected) {{_ value}}
  390. else
  391. option(value="{{value}}") {{_ value}}
  392. label
  393. | {{_ 'organizations'}}
  394. i.fa.fa-plus-square#addUserOrg
  395. i.fa.fa-minus-square#removeUserOrg
  396. select.js-orgs#jsOrgs
  397. option(value="-1") {{_ 'organizations'}} :
  398. each value in orgsDatas
  399. option(value="{{value._id}}") {{value.orgDisplayName}}
  400. input#jsUserOrgsInPut.js-userOrgs(type="text" value=user.orgsUserBelongs, disabled)
  401. input#jsUserOrgIdsInPut.js-userOrgIds.hide(type="text" value=user.orgIdsUserBelongs)
  402. label
  403. | {{_ 'teams'}}
  404. i.fa.fa-plus-square#addUserTeam
  405. i.fa.fa-minus-square#removeUserTeam
  406. select.js-teams#jsTeams
  407. option(value="-1") {{_ 'teams'}} :
  408. each value in teamsDatas
  409. option(value="{{value._id}}") {{_ value.teamDisplayName}}
  410. input#jsUserTeamsInPut.js-userteams(type="text" value=user.teamsUserBelongs, disabled)
  411. input#jsUserTeamIdsInPut.js-userteamIds.hide(type="text" value=user.teamIdsUserBelongs)
  412. hr
  413. label
  414. | {{_ 'password'}}
  415. input.js-profile-password(type="password")
  416. div.buttonsContainer
  417. input.primary.wide(type="submit" value="{{_ 'save'}}")
  418. template(name="newOrgPopup")
  419. form
  420. //label.hide.userId(type="text" value=user._id)
  421. label
  422. | {{_ 'displayName'}}
  423. input.js-orgDisplayName(type="text" value="" required)
  424. label
  425. | {{_ 'description'}}
  426. input.js-orgDesc(type="text" value="" required)
  427. label
  428. | {{_ 'shortName'}}
  429. input.js-orgShortName(type="text" value="" required)
  430. label
  431. | {{_ 'autoAddUsersWithDomainName'}}
  432. input.js-orgAutoAddUsersWithDomainName(type="text" value="")
  433. label
  434. | {{_ 'website'}}
  435. input.js-orgWebsite(type="text" value="" required)
  436. label
  437. | {{_ 'active'}}
  438. select.select-active.js-org-isactive
  439. option(value="false" selected="selected") {{_ 'no'}}
  440. option(value="true") {{_ 'yes'}}
  441. hr
  442. div.buttonsContainer
  443. input.primary.wide(type="submit" value="{{_ 'save'}}")
  444. template(name="newTeamPopup")
  445. form
  446. //label.hide.teamId(type="text" value=team._id)
  447. label
  448. | {{_ 'displayName'}}
  449. input.js-teamDisplayName(type="text" value="" required)
  450. label
  451. | {{_ 'description'}}
  452. input.js-teamDesc(type="text" value="" required)
  453. label
  454. | {{_ 'shortName'}}
  455. input.js-teamShortName(type="text" value="" required)
  456. label
  457. | {{_ 'website'}}
  458. input.js-teamWebsite(type="text" value="" required)
  459. label
  460. | {{_ 'active'}}
  461. select.select-active.js-team-isactive
  462. option(value="false" selected="selected") {{_ 'no'}}
  463. option(value="true") {{_ 'yes'}}
  464. hr
  465. div.buttonsContainer
  466. input.primary.wide(type="submit" value="{{_ 'save'}}")
  467. template(name="modifyTeamsUsers")
  468. label
  469. | {{_ 'teams'}}
  470. select.js-teamsUser#jsteamsUser
  471. each value in teamsDatas
  472. option(value="{{value._id}}") {{_ value.teamDisplayName}}
  473. hr
  474. label
  475. | {{_ 'r-action'}}
  476. .form-group.flex
  477. input.wekan-form-control#addAction(type="radio" name="action" value="true" checked="checked")
  478. span {{_ 'add'}}
  479. input.wekan-form-control#deleteAction(type="radio" name="action" value="false")
  480. span {{_ 'delete'}}
  481. div.buttonsContainer
  482. input.primary.wide#addTeamBtn(type="submit" value="{{_ 'save'}}")
  483. input.primary.wide#cancelBtn(type="submit" value="{{_ 'cancel'}}")
  484. template(name="newUserPopup")
  485. form
  486. //label.hide.userId(type="text" value=user._id)
  487. label
  488. | {{_ 'fullname'}}
  489. input.js-profile-fullname(type="text" value="" required)
  490. label
  491. | {{_ 'username'}}
  492. span.error.hide.username-taken
  493. | {{_ 'error-username-taken'}}
  494. //if isLdap
  495. // input.js-profile-username(type="text" value=user.username readonly)
  496. //else
  497. input.js-profile-username(type="text" value="" required)
  498. label
  499. | {{_ 'initials'}}
  500. input.js-profile-initials(type="text" value="")
  501. label
  502. | {{_ 'email'}}
  503. span.error.hide.email-taken
  504. | {{_ 'error-email-taken'}}
  505. //if isLdap
  506. // input.js-profile-email(type="email" value="{{user.emails.[0].address}}" readonly)
  507. //else
  508. input.js-profile-email(type="email" value="" required)
  509. label
  510. | {{_ 'import-usernames'}}
  511. input.js-import-usernames(type="text" value="")
  512. label
  513. | {{_ 'admin'}}
  514. select.select-role.js-profile-isadmin
  515. option(value="false" selected="selected") {{_ 'no'}}
  516. option(value="true") {{_ 'yes'}}
  517. label
  518. | {{_ 'active'}}
  519. select.select-active.js-profile-isactive
  520. option(value="false" selected="selected") {{_ 'yes'}}
  521. option(value="true") {{_ 'no'}}
  522. label
  523. | {{_ 'authentication-type'}}
  524. select.select-authenticationMethod.js-authenticationMethod
  525. each authentications
  526. if isSelected value
  527. option(value="{{value}}" selected) {{_ value}}
  528. else
  529. option(value="{{value}}") {{_ value}}
  530. label
  531. | {{_ 'organizations'}}
  532. i.fa.fa-plus-square#addUserOrgNewUser
  533. i.fa.fa-minus-square#removeUserOrgNewUser
  534. select.js-orgsNewUser#jsOrgsNewUser
  535. option(value="-1") {{_ 'organizations'}} :
  536. each value in orgsDatas
  537. option(value="{{value._id}}") {{value.orgDisplayName}}
  538. input#jsUserOrgsInPutNewUser.js-userOrgsNewUser(type="text" value=user.orgsUserBelongs, disabled)
  539. input#jsUserOrgIdsInPutNewUser.js-userOrgIdsNewUser.hide(type="text" value=user.orgIdsUserBelongs)
  540. label
  541. | {{_ 'teams'}}
  542. i.fa.fa-plus-square#addUserTeamNewUser
  543. i.fa.fa-minus-square#removeUserTeamNewUser
  544. select.js-teamsNewUser#jsTeamsNewUser
  545. option(value="-1") {{_ 'teams'}} :
  546. each value in teamsDatas
  547. option(value="{{value._id}}") {{_ value.teamDisplayName}}
  548. input#jsUserTeamsInPutNewUser.js-userteamsNewUser(type="text" value=user.teamsUserBelongs, disabled)
  549. input#jsUserTeamIdsInPutNewUser.js-userteamIdsNewUser.hide(type="text" value=user.teamIdsUserBelongs)
  550. hr
  551. label
  552. | {{_ 'password'}}
  553. input.js-profile-password(type="password" required)
  554. div.buttonsContainer
  555. input.primary.wide(type="submit" value="{{_ 'save'}}")
  556. template(name="settingsOrgPopup")
  557. ul.pop-over-list
  558. li
  559. form
  560. label#deleteOrgWarningMessage.hide
  561. | {{_ 'delete-org-warning-message'}}
  562. br
  563. label
  564. | {{_ 'delete-org-confirm-popup'}}
  565. br
  566. label.hide.orgId(type="text" value=org._id)
  567. labeldelete-org-confirm-popup
  568. div.buttonsContainer
  569. input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
  570. // It's not yet possible to impersonate organization. Only impersonate user,
  571. // because that changes current user ID. What would it mean in practice
  572. // to impersonate organization?
  573. // li
  574. // a.impersonate-org
  575. // i.fa.fa-user
  576. // | {{_ 'impersonate-org'}}
  577. //
  578. //
  579. template(name="settingsTeamPopup")
  580. ul.pop-over-list
  581. li
  582. form
  583. label#deleteTeamWarningMessage.hide
  584. | {{_ 'delete-team-warning-message'}}
  585. br
  586. label
  587. | {{_ 'delete-team-confirm-popup'}}
  588. br
  589. label.hide.teamId(type="text" value=team._id)
  590. div.buttonsContainer
  591. input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
  592. template(name="settingsUserPopup")
  593. ul.pop-over-list
  594. li
  595. a.impersonate-user
  596. i.fa.fa-user
  597. | {{_ 'impersonate-user'}}
  598. br
  599. hr
  600. li
  601. form
  602. label.hide.userId(type="text" value=user._id)
  603. label
  604. | {{_ 'delete-user-confirm-popup' }}
  605. br
  606. div.buttonsContainer
  607. input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
  608. // Delete is enabled, but there is still bug of leaving empty user avatars
  609. // to boards: boards members, card members and assignees have
  610. // empty users. So it is better to remove user from all boards before removing user.
  611. // See:
  612. // - wekan/client/components/settings/peopleBody.jade deleteButton
  613. // - wekan/client/components/settings/peopleBody.js deleteButton
  614. // - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
  615. // that does now remove member from board, card members and assignees correctly,
  616. // but that should be used to remove user from all boards similarly
  617. // - wekan/models/users.js Delete is not enabled