peopleBody.jade 20 KB

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