Changes to layout and added infinite scroll to mentions bar

pull/1701/head
Marcelo Schmidt 10 years ago
parent 82cc98887f
commit bbbbdca797
  1. 1
      packages/rocketchat-lib/server/models/Messages.coffee
  2. 15
      packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.coffee
  3. 38
      packages/rocketchat-mentions-flextab/client/views/mentionsFlexTab.html
  4. 13
      packages/rocketchat-mentions-flextab/client/views/stylesheets/mentionsFlexTab.less
  5. 2
      packages/rocketchat-mentions-flextab/i18n/en.i18n.json
  6. 1
      packages/rocketchat-mentions-flextab/package.js
  7. 4
      packages/rocketchat-mentions-flextab/server/publications/mentionedMessages.coffee
  8. 5
      packages/rocketchat-ui-message/message/message.coffee
  9. 5
      server/startup/migrations/v26.coffee

@ -155,6 +155,7 @@ RocketChat.models.Messages = new class extends RocketChat.models._Base
msg: ''
t: 'rm'
urls: []
mentions: []
attachments: []
editedAt: new Date()
editedBy:

@ -8,9 +8,17 @@ Template.mentionsFlexTab.helpers
notReadySubscription: ->
return 'notready' unless Template.instance().subscriptionsReady()
hasMore: ->
return Template.instance().hasMore.get()
Template.mentionsFlexTab.onCreated ->
@hasMore = new ReactiveVar true
@limit = new ReactiveVar 50
@autorun =>
@subscribe 'mentionedMessages', @data.rid
sub = @subscribe 'mentionedMessages', @data.rid, @limit.get()
if sub.ready()
if MentionedMessage.find({ rid: @data.rid }).count() < @limit.get()
@hasMore.set false
Template.mentionsFlexTab.events
'click .message-cog': (e) ->
@ -25,3 +33,8 @@ Template.mentionsFlexTab.events
$(".mentioned-messages-list \##{message_id} .message-cog-container").append el
dropDown = $(".mentioned-messages-list \##{message_id} .message-dropdown")
dropDown.show()
'scroll .content': _.throttle (e, instance) ->
if e.target.scrollTop >= e.target.scrollHeight - e.target.clientHeight
instance.limit.set(instance.limit.get() + 50)
, 200

@ -1,22 +1,28 @@
<template name="mentionsFlexTab">
<div class="control">
<div class="header">
<h2>{{_ "Mentions"}}</h2>
</div>
</div>
<ul class="mentioned-messages-list scrollable">
{{#if Template.subscriptionsReady}}
{{#if hasMessages}}
<div class="content">
<div class="list-view mentioned-messages-list">
<div class="status">
<h2>{{_ "Mentions"}}</h2>
</div>
<ul class="mentioned-messages-list list clearfix">
{{#each messages}}
{{#nrr nrrargs 'message' .}}{{/nrr}}
{{/each}}
{{else}}
<li class="empty">
{{_ "No_mentioned_messages"}}
</li>
{{#if hasMore}}
<li class="load-more">
{{#if Template.subscriptionsReady}}
<a href="">{{_ "Has_more"}}...</a>
{{else}}
<div class="load-more-loading">{{_ "Loading..."}}</div>
{{/if}}
</li>
{{/if}}
</ul>
{{#if Template.subscriptionsReady}}
{{#unless hasMessages}}
<h2>{{_ "No_mentions_found"}}</h2>
{{/unless}}
{{/if}}
{{else}}
{{> loading}}
{{/if}}
</ul>
</div>
</div>
</template>

@ -1,6 +1,4 @@
.mentioned-messages-list {
padding: 70px 0 30px 0;
&.notready {
background-image: url(/images/logo/loading.gif);
background-repeat: no-repeat;
@ -34,4 +32,15 @@
}
}
}
.load-more {
text-transform: lowercase;
text-align: center;
line-height: 40px;
font-style: italic;
.load-more-loading {
color: #aaa;
}
}
}

@ -1,5 +1,5 @@
{
"Jump_to_message": "Jump to message",
"Mentions": "Mentions",
"No_mentioned_messages": "No mentioned messages"
"No_mentions_found": "No mentions found"
}

@ -10,6 +10,7 @@ Package.onUse(function(api) {
api.use([
'coffeescript',
'underscore',
'less@2.5.0',
'rocketchat:lib@0.0.1'
]);

@ -1,4 +1,4 @@
Meteor.publish 'mentionedMessages', (rid, options = {}) ->
Meteor.publish 'mentionedMessages', (rid, limit=50) ->
unless this.userId
return this.ready()
@ -8,7 +8,7 @@ Meteor.publish 'mentionedMessages', (rid, options = {}) ->
unless user
return this.ready()
cursorHandle = RocketChat.models.Messages.findByMentionAndRoomId(user.username, rid, { sort: { ts: -1 }, limit: 50 }).observeChanges
cursorHandle = RocketChat.models.Messages.findByMentionAndRoomId(user.username, rid, { sort: { ts: -1 }, limit: limit }).observeChanges
added: (_id, record) ->
record.mentionedList = true
publication.added('rocketchat_mentioned_message', _id, record)

@ -123,7 +123,10 @@ Template.message.onViewRendered = (context) ->
$previousNode = $(previousNode)
$nextNode = $(nextNode)
if previousNode?.dataset?
unless previousNode?
$currentNode.addClass('new-day').removeClass('sequential')
else if previousNode?.dataset?
previousDataset = previousNode.dataset
if previousDataset.date isnt currentDataset.date

@ -0,0 +1,5 @@
Meteor.startup ->
Migrations.add
version: 26
up: ->
RocketChat.models.Messages.update({ t: 'rm' }, { $set: { mentions: [] } }, { multi: true })
Loading…
Cancel
Save