diff --git a/bower.json b/bower.json
index 314e9d0456..51760dbeda 100644
--- a/bower.json
+++ b/bower.json
@@ -38,8 +38,7 @@
},
"resolutions": {
"jquery": "~2.0.3",
- "bootstrap": "v2.3.2",
- "angular": "~1.2.1"
+ "bootstrap": "v2.3.2"
},
"devDependencies": {
"angular-mocks": "~1.2.1"
diff --git a/migrations/20131117_fix_task_types.js b/migrations/20131117_fix_task_types.js
new file mode 100644
index 0000000000..14d86cb55f
--- /dev/null
+++ b/migrations/20131117_fix_task_types.js
@@ -0,0 +1,18 @@
+// TODO figure out why this is happening in the first place
+
+db.users.find({},{habits:1, dailys:1, todos:1, rewards:1}).forEach(function(user){
+ _.each(user.habits, function(task){
+ task.type = 'habit';
+ })
+ _.each(user.dailys, function(task){
+ task.type = 'daily';
+ })
+ _.each(user.todos, function(task){
+ task.type = 'todo';
+ })
+ _.each(user.rewards, function(task){
+ task.type = 'reward';
+ })
+
+ db.users.update({_id:user._id}, {$set:{habits: user.habits, dailys: user.dailys, todos: user.todos, rewards: user.rewards}});
+});
diff --git a/package.json b/package.json
index f1f5636c67..e1c1945076 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
"express": "*",
"gzippo": "*",
"guid": "*",
- "moment": "*",
+ "moment": "~2.4.0",
"stripe": "*",
"coffee-script": "*",
"nconf": "*",
@@ -19,7 +19,6 @@
"superagent": "~0.12.4",
"resolve": "~0.2.3",
"expect.js": "~0.2.0",
- "relative-date": "~1.1.1",
"lodash": "~2.2.1",
"async": "~0.2.9",
"optimist": "~0.5.2",
diff --git a/public/css/customizer.styl b/public/css/customizer.styl
index fd9391fa9d..021048869c 100644
--- a/public/css/customizer.styl
+++ b/public/css/customizer.styl
@@ -22,7 +22,7 @@ menu
line-height: 2
.customize-option
- border: 1px solid grey;
+ border: 0px solid grey;
background-color: hsl(0, 0%, 93%);
margin-bottom: 10px
diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js
index ab7c90e1c0..61266721df 100644
--- a/public/js/controllers/groupsCtrl.js
+++ b/public/js/controllers/groupsCtrl.js
@@ -128,6 +128,24 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
.controller('ChatCtrl', ['$scope', 'Groups', 'User', function($scope, Groups, User){
$scope.message = {content:''};
$scope._sending = false;
+
+ $scope.isUserMentioned = function(user, message) {
+ if(message.hasOwnProperty("highlight"))
+ return message.highlight;
+ message.highlight = false;
+ var messagetext = message.text.toLowerCase();
+ var username = user.profile.name;
+ var mentioned = messagetext.indexOf(username.toLowerCase());
+ var pattern = "(\s|@|^){1}"+username+"([^\w]|$){1}";
+ if(mentioned > -1) {
+ var preceedingchar = messagetext.substring(mentioned-1,mentioned);
+ if(mentioned == 0 || preceedingchar.trim() == '' || preceedingchar == '@'){
+ var regex = new RegExp(pattern,'i');
+ message.highlight = regex.test(messagetext);
+ }
+ }
+ return message.highlight;
+ }
$scope.postChat = function(group, message){
if (_.isEmpty(message) || $scope._sending) return;
diff --git a/views/options/social/chat-message.jade b/views/options/social/chat-message.jade
index 95f94a8678..f94d2820ea 100644
--- a/views/options/social/chat-message.jade
+++ b/views/options/social/chat-message.jade
@@ -1,10 +1,10 @@
-li(ng-repeat='message in group.chat', ng-class='{highlight: indexOf(message.text.toLowerCase(), user.profile.name.toLowerCase()), "own-message": user._id == message.uuid}')
+li(ng-repeat='message in group.chat', ng-class='{highlight: isUserMentioned(user,message), "own-message": user._id == message.uuid}')
a.label.chat-message(class='label-contributor-{{message.contributor.level}}', ng-class='{"label-npc": message.backer.npc}', ng-click='clickMember(message.uuid, true)')
span(tooltip='{{contribText(message.contributor, message.backer)}}') {{message.user}}
|
span(ng-bind-html="message.text | linky:'_blank'")
| -
span.muted.time
- | {{relativeDate(message.timestamp, _currentTime) + ' '}}
+ | {{moment(message.timestamp).fromNow() + ' '}}
a(ng-show='user.contributor.admin || message.uuid == user.id', ng-click='deleteChatMessage(group, message)')
i.icon-remove(tooltip='Delete')
diff --git a/views/options/social/tavern.jade b/views/options/social/tavern.jade
index 0fad9b0fe0..eded297e3a 100644
--- a/views/options/social/tavern.jade
+++ b/views/options/social/tavern.jade
@@ -47,10 +47,12 @@
// Player Tiers
.modal(style='position: relative;top: auto;left: auto;right: auto;margin: 0 auto 20px;z-index: 1;max-width: 100%;')
.modal-header
- h3 Player Tier Legend
+ h3 Player Tiers
.modal-body
small.
- Click labels to expand. See contribution details.
+ Click tier labels below for more information.
+ Learn more about contributor rewards
+ Learn how to contribute to HabitRPG
table.table.table-striped
tr
td