template(name="userAvatar") a.member.js-member(title="{{userData.profile.fullname}} ({{userData.username}})") if userData.profile.avatarUrl img.avatar.avatar-image(src="{{userData.profile.avatarUrl}}") else +userAvatarInitials(userId=userData._id) if showStatus span.member-presence-status(class=presenceStatusClassName) span.member-type(class=memberType) unless isSandstorm if showEdit if $eq currentUser._id userData._id a.edit-avatar.js-change-avatar i.fa.fa-pencil template(name="userAvatarInitials") svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15") text(x="50%" y="13" text-anchor="middle")= initials template(name="userPopup") .board-member-menu .mini-profile-info +userAvatar(userId=user._id) .info h3= user.profile.fullname p.quiet @{{ user.username }} template(name="memberName") if showBoth = user.profile.fullname | ({{ user.username }}) else if user.profile.fullname = user.profile.fullname else = user.username template(name="changeAvatarPopup") if error.get .warning {{_ error.get}} ul.pop-over-list each uploadedAvatars li: a.js-select-avatar .member img.avatar.avatar-image(src="{{url avatarUrlOptions}}") | {{_ 'uploaded-avatar'}} if isSelected i.fa.fa-check p.sub-name unless isSelected a.js-delete-avatar {{_ 'delete'}} | - = original.name li: a.js-select-initials .member +userAvatarInitials(userId=currentUser._id) | {{_ 'initials' }} if noAvatarUrl i.fa.fa-check p.sub-name {{_ 'default-avatar'}} input.hide.js-upload-avatar-input(accept="image/*;capture=camera" type="file") button.full.js-upload-avatar i.fa.fa-upload | {{_ 'upload-avatar'}} template(name="cardMemberPopup") .board-member-menu .mini-profile-info +userAvatar(userId=user._id showEdit=true) .info h3= user.profile.fullname p.quiet @{{ user.username }} ul.pop-over-list if currentUser.isNotCommentOnly li: a.js-remove-member {{_ 'remove-member-from-card'}} if $eq currentUser._id user._id with currentUser li: a.js-edit-profile {{_ 'edit-profile'}}