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