DTP Base provides a scalable and secure Node.js application development harness ready for production service.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

99 lines
3.9 KiB

include ../../user/components/profile-picture
mixin renderChatMemberListItem (room, member, options)
-
options = Object.assign({
isHost: false,
isGuest: false,
}, options);
var isRoomOwner = room.owner._id.equals(member._id);
var isSystemMod = user && user.flags && (user.flags.isAdmin || user.flags.isModerator);
var memberName = member.displayName || member.username;
// var isChannelMod = user && Array.isArray(message.channel.moderators) && !!message.channel.moderators.find((moderator) => moderator._id.equals(user._id));
li(data-member-id= member._id, data-member-username= member.username)
div(uk-grid).uk-grid-collapse.uk-flex-middle.member-list-item
.uk-width-auto
img(src='/img/default-member.png').member-profile-icon
.uk-width-expand.uk-text-small
a(href=`/member/${member.username}`, uk-tooltip={ title: `Visit ${member.username}`}).uk-link-reset
.member-display-name= member.displayName || member.username
.member-username @#{member.username}
.uk-width-auto.chat-user-menu
button(type="button").dtp-button-dropdown
i.fas.fa-ellipsis-v
div(
data-room-id= room._id,
uk-dropdown={ animation: "uk-animation-scale-up", duration: 250 },
data-mode="click",
).dtp-chatmsg-menu
ul.uk-nav.uk-dropdown-nav
li.uk-nav-header= member.username
li
a(
href="",
data-username= member.username,
onclick="return dtp.app.mentionChatUser(event);",
) Mention
li
a(
href="",
data-room-id= room._id,
data-room-name= room.name,
data-user-id= member._id,
data-username= member.username,
onclick="return dtp.app.muteChatUser(event);",
) Mute
if (options.isHost || options.isGuest) && !isRoomOwner
li.uk-nav-divider
if options.isHost
li
a(
href,
data-environment="ChatRoom",
data-room-id= room._id,
data-room-name= room.name,
data-user-id= member._id,
data-username= member.username,
data-display-name= member.displayName,
onclick="return dtp.app.removeRoomHost(event);",
) Remove host
if options.isGuest
li
a(
href,
data-environment="ChatRoom",
data-room-id= room._id,
data-room-name= room.name,
data-user-id= member._id,
data-username= member.username,
data-display-name= member.displayName,
onclick="return dtp.app.removeRoomGuest(event);",
) Remove guest
if isSystemMod || isChannelMod
li.uk-nav-divider
li
a(
href="",
data-environment="ChatRoom",
data-room-id= room._id,
data-room-name= room.name,
data-user-id= member._id,
data-username= member.username,
data-display-name= member.displayName,
onclick="return dtp.app.confirmBanUserFromEnvironment(event);",
) Ban from room
if isSystemMod
li
a(
href="",
data-room-id= room._id,
data-room-name= room.name,
data-user-id= member._id,
data-username= member.username,
data-display-name= member.displayName,
onclick="return dtp.adminApp.confirmBanUser(event);",
) Ban from #{site.name}