Merge remote-tracking branch 'switz/chat' into develop
Conflicts: src/app/helpers.coffee
This commit is contained in:
+2
-1
@@ -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",
|
||||
|
||||
@@ -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 }
|
||||
@@ -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()
|
||||
|
||||
@@ -22,4 +22,4 @@ module.exports.allowCrossDomain = (req, res, next) ->
|
||||
if req.method is 'OPTIONS'
|
||||
res.send(200);
|
||||
else
|
||||
next()
|
||||
next()
|
||||
|
||||
@@ -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
|
||||
position relative
|
||||
height 500px
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</form>
|
||||
<ul class='unstyled tavern-chat'>
|
||||
{#each _tavern.chat.messages as :message}
|
||||
<li><app:party:chat-message message={{:message}} /></li>
|
||||
<app:party:chat-message message={{:message}} />
|
||||
{/}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
+10
-9
@@ -22,12 +22,12 @@
|
||||
<div class="span6">
|
||||
<h3>Chat</h3>
|
||||
<form x-bind='submit:partySendChat'>
|
||||
<textarea>{_chatMessage}</textarea><br/>
|
||||
<textarea x-bind='keyup:partyMessageKeyup'>{_chatMessage}</textarea><br/>
|
||||
<input class=btn type=submit value=Submit />
|
||||
</form>
|
||||
<ul class='unstyled'>
|
||||
<ul class='party-chat unstyled'>
|
||||
{#each _party.chat as :message}
|
||||
<li><app:party:chat-message message={{:message}} /></li>
|
||||
<app:party:chat-message message={{:message}} />
|
||||
{/}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -58,9 +58,10 @@
|
||||
|
||||
|
||||
<chat-message:>
|
||||
<hr/>
|
||||
<span
|
||||
class="label {{#if @message.npc}}label-success{{else if @message.contributor}}label-inverse{{else if equal(@message.uuid,_user.id)}}label-info{{/}} chat-message"
|
||||
rel='tooltip' title="{{@message.contributor}}{{@message.npc}}">
|
||||
{{@message.user}}</span> {{@message.text}} - <span class='muted'>{{friendlyTimestamp(@message.timestamp)}}
|
||||
</span>
|
||||
<li class="{{#if indexOf(:message.text, _user.profile.name)}}highlight{{/if}}">
|
||||
<span
|
||||
class="label {{#if @message.npc}}label-success{{else if @message.contributor}}label-inverse{{else if equal(@message.uuid,_user.id)}}label-info{{/}} chat-message"
|
||||
rel='tooltip' title="{{@message.contributor}}{{@message.npc}}">
|
||||
{{@message.user}}</span> {{@message.text}} - <span class='muted time'>{relativeDate(@message.timestamp, _currentTime)}
|
||||
</span>
|
||||
</li>
|
||||
|
||||
Reference in New Issue
Block a user