cc20812674
* v3: fixes calls to user.ops from views and deleting tags * v3: fix tests that use user._statsComputed
46 lines
3.6 KiB
Plaintext
46 lines
3.6 KiB
Plaintext
mixin chatMessages(inbox)
|
|
ul.list-unstyled.tavern-chat
|
|
-
|
|
var ngRepeat = inbox ?
|
|
'message in user.inbox.messages | toArray:true | orderBy:"sort":true' :
|
|
'message in group.chat | orderBy:"timestamp":!user.preferences.reverseChatOrder track by message.id'
|
|
li.chat-message(ng-repeat=ngRepeat, ng-class=':: {highlight: isUserMentioned(user,message) || message.uuid=="system", "own-message": user._id == message.uuid}')
|
|
span.pull-right.text-danger(ng-if="user.contributor.admin && message.flagCount > 0")
|
|
| {{message.flagCount > 1 ? "Message Hidden" : "1 flag"}}
|
|
.scrollable-message(ng-class='{"transparent": message.sent || message.flags[user._id] || (user.contributor.admin && message.flagCount > 1)}')
|
|
span(ng-if='::message.user')
|
|
a.label.label-default.chat-message.hidden-label
|
|
span.glyphicon.glyphicon-arrow-right(ng-if='::message.sent')
|
|
|
|
|
span {{::message.user}}
|
|
span(ng-class='userAdminGlyphiconStyleFromLevel(message.contributor.level)')
|
|
// this invisible username label is here to push the message text far enough right that the visible label can be floated to this point without covering up any of the text
|
|
markdown(text='::message.text', remove-watch='true')
|
|
| -
|
|
span.muted.time(from-now='::message.timestamp' tooltip="{{::message.timestamp | date:user.preferences.dateFormat.concat(' HH:mm:ss')}}")
|
|
unless inbox
|
|
span
|
|
a.label.label-default(ng-show='countExists(message.likes)', ng-class='{"label-success":message.likes[user._id]}', ng-click='likeChatMessage(group,message)', tooltip=env.t('likePost')) +{{countExists(message.likes)}}
|
|
a.chat-plus-one.muted(ng-show='!countExists(message.likes)', ng-click='likeChatMessage(group, message)', tooltip=env.t('likePost')) +1
|
|
span(ng-if=":: message.uuid != 'system'")
|
|
a(ng-click="quickReply(message.uuid)")
|
|
span.glyphicon.glyphicon-envelope(tooltip=env.t('sendPM'))
|
|
if inbox
|
|
a(ng-click="quickReply(message.uuid)")
|
|
span.glyphicon.glyphicon-share-alt(tooltip=env.t('pm-reply'))
|
|
span(ng-if='#{inbox ? "true" : ":: user.contributor.admin || message.uuid == user.id"}')
|
|
a(ng-click='#{inbox? "User.deletePM({params:{id:message.$key}})" : "deleteChatMessage(group, message)"}')
|
|
span.glyphicon.glyphicon-trash(tooltip=env.t('delete'))
|
|
span(ng-if=':: user.contributor.admin || (!message.sent && user.flags.communityGuidelinesAccepted && message.uuid != user.id && message.uuid != "system")')
|
|
a(ng-click="flagChatMessage(group._id, message)")
|
|
span.glyphicon.glyphicon-flag(tooltip="{{message.flags[user._id] ? env.t('abuseAlreadyReported') : env.t('abuseFlag')}}" ng-class='message.flags[user._id] ? "text-danger" : ""')
|
|
span
|
|
a(ng-click="copyToDo(message)")
|
|
span.glyphicon.glyphicon-share(tooltip=env.t('copyMessageAsToDo'))
|
|
span.float-label(ng-class='::contribText(message.contributor, message.backer).length > 30 ? "long-title" : ""')
|
|
a.label.label-default.chat-message(ng-if=':: message.user', ng-class='::userLevelStyleFromLevel(message.contributor.level, message.backer.npc, style)', ng-click='clickMember(message.uuid, true)')
|
|
span.glyphicon.glyphicon-arrow-right(ng-if='::message.sent')
|
|
|
|
|
span(tooltip='{{::contribText(message.contributor, message.backer)}}') {{::message.user}}
|
|
span(ng-class='::userAdminGlyphiconStyleFromLevel(message.contributor.level)')
|