diff --git a/package.json b/package.json index d84f018c8c..3c931612b8 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,8 @@ "resolve": "~0.2.3", "browserify": "1.17.3", "expect.js": "~0.2.0", - "derby-i18n": "0.0.1" + "derby-i18n": "0.0.1", + "relative-date": "~1.1.1" }, "private": true, "subdomain": "habitrpg", diff --git a/src/app/helpers.coffee b/src/app/helpers.coffee index 75cbd5a498..29c2ca4d94 100644 --- a/src/app/helpers.coffee +++ b/src/app/helpers.coffee @@ -1,13 +1,8 @@ moment = require 'moment' _ = require 'underscore' +relative = require 'relative-date' algos = require './algos' -uuid = -> - "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace /[xy]/g, (c) -> - r = Math.random() * 16 | 0 - v = (if c is "x" then r else (r & 0x3 | 0x8)) - v.toString 16 - # Absolute diff between two dates daysBetween = (yesterday, now, dayStart) -> #sanity-check reset-time (is it 24h time?) @@ -168,4 +163,10 @@ viewHelpers = (view) -> return false unless messages?.length > 0 messages && messages[0].id != lastMessageSeen -module.exports = { viewHelpers, removeWhitespace, randomVal, daysBetween, dayMapping, username, uuid } + view.fn 'indexOf', (str1, str2) -> + return false unless str1 && str2 + str1.indexOf(str2) != -1 + + view.fn 'relativeDate', relative + +module.exports = { viewHelpers, removeWhitespace, randomVal, daysBetween, dayMapping, username } \ No newline at end of file diff --git a/src/app/party.coffee b/src/app/party.coffee index 74fdff6b86..5d04418aa2 100644 --- a/src/app/party.coffee +++ b/src/app/party.coffee @@ -76,6 +76,16 @@ module.exports.app = (appExports, model, app) -> browser = require './browser' helpers = require './helpers' + _currentTime = model.at '_currentTime' + + _currentTime.setNull +new Date() + + # Every 60 seconds, reset the current time so that the chat + # can update relative times + setInterval -> + _currentTime.set +new Date() + , 60000 + user = model.at('_user') model.on 'set', '_user.party.invitation', (after, before) -> @@ -187,6 +197,10 @@ module.exports.app = (appExports, model, app) -> model.setNull '_tavern.chat', {messages:[]} #we can remove this later, first time run only sendChat('_tavern.chat.messages', '_tavernMessage') + appExports.partyMessageKeyup = (e, el, next) -> + return next() unless e.keyCode is 13 + appExports.partySendChat() + appExports.tavernMessageKeyup = (e, el, next) -> return next() unless e.keyCode is 13 appExports.tavernSendChat() diff --git a/src/server/middleware.coffee b/src/server/middleware.coffee index 8e9cb29cb8..d9a5fed22f 100644 --- a/src/server/middleware.coffee +++ b/src/server/middleware.coffee @@ -22,4 +22,4 @@ module.exports.allowCrossDomain = (req, res, next) -> if req.method is 'OPTIONS' res.send(200); else - next() \ No newline at end of file + next() diff --git a/styles/app/game-pane.styl b/styles/app/game-pane.styl index fc1c829866..072047bc24 100644 --- a/styles/app/game-pane.styl +++ b/styles/app/game-pane.styl @@ -1,20 +1,30 @@ .full-width - width: 100% + width 100% .border-right - border-right: 1px solid #ddd + border-right 1px solid #ddd .game-tabs a - cursor:pointer + cursor pointer .tab-notification - color: #fff; - background-color: #51a351 + color #fff + background-color #51a351 .tavern-pane - position:relative - height:300px + position relative + height 300px + +.tavern-chat, .party-chat + + li + height 60px + line-height 60px + border-bottom 1px solid #ddd + + &.highlight + background #EEE #market-tab - position: relative - height: 500px \ No newline at end of file + position relative + height 500px diff --git a/views/app/game-pane.html b/views/app/game-pane.html index b3ebbb611e..5524ecad31 100644 --- a/views/app/game-pane.html +++ b/views/app/game-pane.html @@ -91,7 +91,7 @@