15 changed files with 566 additions and 94 deletions
@ -0,0 +1,2 @@ |
|||
include member-list-item |
|||
+renderChatMemberListItem (room, member, { isHost, isGuest }) |
@ -0,0 +1,99 @@ |
|||
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} |
@ -1,4 +1,5 @@ |
|||
@import "site/main.less"; |
|||
@import "site/button.less"; |
|||
@import "site/navbar.less"; |
|||
@import "site/stage.less"; |
|||
@import "site/image.less"; |
@ -0,0 +1,23 @@ |
|||
button.dtp-button-dropdown { |
|||
/* |
|||
* This is a series of settings that improve the "clickable area" of the |
|||
* button without making it take up more space in the layout. |
|||
*/ |
|||
display: inline-block; |
|||
position: relative; |
|||
padding: 1em; |
|||
margin: -1em; |
|||
|
|||
&.always-on-top { |
|||
z-index: 1; |
|||
} |
|||
|
|||
/* |
|||
* The actual "style" of the thing |
|||
*/ |
|||
background: none; |
|||
border: none; |
|||
outline: none; |
|||
color: #e8e8e8; |
|||
cursor: pointer; |
|||
} |
After Width: | Height: | Size: 37 KiB |
Loading…
Reference in new issue