diff --git a/public/js/controllers/rootCtrl.js b/public/js/controllers/rootCtrl.js index 6df101883d..2f6b42c72a 100644 --- a/public/js/controllers/rootCtrl.js +++ b/public/js/controllers/rootCtrl.js @@ -42,18 +42,31 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$ // styling helpers $scope.userLevelStyle = function(user,style){ style = style || ''; - if(user && user.backer && user.backer.npc) - style += ' label-npc'; - if(user && user.contributor && user.contributor.level) - style += ' label-contributor-'+user.contributor.level; + var npc = (user && user.backer && user.backer.npc) ? user.backer.npc : ''; + var level = (user && user.contributor && user.contributor.level) ? user.contributor.level : ''; + style += $scope.userLevelStyleFromLevel(level,npc,style) return style; } $scope.userAdminGlyphiconStyle = function(user,style){ style = style || ''; if(user && user.contributor && user.contributor.level) - if(user.contributor.level==8) + style += $scope.userAdminGlyphiconStyleFromLevel(user.contributor.level,style) + return style; + } + $scope.userLevelStyleFromLevel = function(level,npc,style){ + style = style || ''; + if(npc) + style += ' label-npc'; + if(level) + style += ' label-contributor-'+level; + return style; + } + $scope.userAdminGlyphiconStyleFromLevel = function(level,style){ + style = style || ''; + if(level) + if(level==8) style += ' glyphicon glyphicon-star'; // moderator - if(user.contributor.level==9) + if(level==9) style += ' glyphicon glyphicon-tower'; // staff return style; } diff --git a/src/models/user.js b/src/models/user.js index eab3bd340e..e59398fac7 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -444,10 +444,6 @@ UserSchema.methods.unlink = function(options, cb) { module.exports.schema = UserSchema; module.exports.model = mongoose.model("User", UserSchema); -mongoose.model("User").find({'contributor.admin':true},function(err,mods){ - module.exports.mods = _.map(mods,function(m){ - var lvl = (m.backer && m.backer.npc) ? 'label-npc' : - 'label-contributor-' + m.contributor.level; - return ' '+ m.profile.name + '' - }); +mongoose.model("User").find({$query:{'contributor.admin':true}, $orderby:{'contributor.level':-1, 'profile.name':1}},function(err,mods){ + module.exports.mods = mods }); diff --git a/views/options/social/chat-message.jade b/views/options/social/chat-message.jade index 170a4a22c6..3d8fe37494 100644 --- a/views/options/social/chat-message.jade +++ b/views/options/social/chat-message.jade @@ -13,5 +13,6 @@ li.chat-message(ng-repeat='message in group.chat', ng-class=':: {highlight: isUs |   a(ng-if=':: user.contributor.admin || message.uuid == user.id', ng-click='deleteChatMessage(group, message)') span.glyphicon.glyphicon-trash(tooltip=env.t('delete')) - a.label.label-default.chat-message(ng-if=':: message.user', class='float-label', ng-class=':: {"label-npc": message.backer.npc, "label-contributor-{{message.contributor.level}}":message.contributor.level}', ng-click='clickMember(message.uuid, true)') + a.label.label-default.chat-message(ng-if=':: message.user', class='float-label', ng-class='userLevelStyleFromLevel(message.contributor.level, message.backer.npc, style)', ng-click='clickMember(message.uuid, true)') span(tooltip='{{::contribText(message.contributor, message.backer)}}') {{::message.user}}  + span(ng-class='userAdminGlyphiconStyleFromLevel(message.contributor.level)') diff --git a/views/options/social/tavern.jade b/views/options/social/tavern.jade index 92e25913f9..f96d5ab01f 100644 --- a/views/options/social/tavern.jade +++ b/views/options/social/tavern.jade @@ -143,6 +143,13 @@ h3=env.t('tavernTalk') include ./chat-box .alert.alert-info.alert-sm - != ' ' + env.t('tavernAlert1') + ' ' + env.t('tavernAlert2') + '.
' + env.t('moderatorIntro1') + env.mods + env.t('moderatorIntro2') + != ' ' + env.t('tavernAlert1') + ' ' + env.t('tavernAlert2') + '.
' + env.t('moderatorIntro1') + span(ng-repeat='mod in env.mods') + |   + span(ng-if='mod.contributor.admin',popover=env.t('gamemaster'),popover-trigger='mouseenter',popover-placement='right') + a.label.label-default(ng-class='userLevelStyle(mod)', ng-click='clickMember(mod._id, true)') + {{mod.profile.name}}  + span(ng-class='userAdminGlyphiconStyle(mod)') + ul.list-unstyled.tavern-chat include ./chat-message