Commit 2384339613797c1da9a60b5f329608ab27097402

Authored by Rodrigo Souto
1 parent cf12a5f2

checkpoint ensure_scroll

Showing 1 changed file with 14 additions and 1 deletions   Show diff stats
public/javascripts/chat.js
... ... @@ -578,7 +578,7 @@ jQuery(function($) {
578 578  
579 579 panel.find('.history').scroll(function(){
580 580 if($(this).scrollTop() == 0){
581   - var offset = panel.find('.message').size();
  581 + var offset = panel.find('.message p').size();
582 582 recent_messages(jid, offset);
583 583 }
584 584 });
... ... @@ -596,10 +596,22 @@ jQuery(function($) {
596 596 return panel;
597 597 }
598 598  
  599 + function ensure_scroll(jid, offset) {
  600 + var jid_id = Jabber.jid_to_id(jid);
  601 + var history = jQuery('#conversation-'+jid_id+' .history');
  602 + // Load more messages if was not enough to show the scroll
  603 + if(history.prop('scrollHeight') - history.prop('clientHeight') <= 0){
  604 + var offset = history.find('.message p').size();
  605 + recent_messages(jid, offset);
  606 + }
  607 + }
  608 +
599 609 function recent_messages(jid, offset) {
600 610 if(!offset) offset = 0;
601 611 start_fetching('.history');
602 612 $.getJSON('/chat/recent_messages', {identifier: getIdentifier(jid), offset: offset}, function(data) {
  613 + //TODO Register if no more messages returned and stop trying to load
  614 + // more messages in the future.
603 615 $.each(data, function(i, message) {
604 616 var body = message['body'];
605 617 var from = message['from'];
... ... @@ -610,6 +622,7 @@ jQuery(function($) {
610 622 Jabber.show_message(jid, from['name'], body, who, from['id'], date, offset);
611 623 });
612 624 stop_fetching('.history');
  625 + ensure_scroll(jid, offset);
613 626 });
614 627 }
615 628  
... ...