From 189e765315f0e327b97b5a5226be481d0345c770 Mon Sep 17 00:00:00 2001 From: Gabriel Cebrian Date: Wed, 20 Mar 2013 18:27:08 -0700 Subject: [PATCH] Fixes to deal with empty channels --- .../backbone/helpers/channels.js.coffee | 17 +++++++++++++---- .../backbone/views/channel_pane.js.coffee | 6 ++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/backbone/helpers/channels.js.coffee b/app/assets/javascripts/backbone/helpers/channels.js.coffee index c7923cf9..45357e5b 100644 --- a/app/assets/javascripts/backbone/helpers/channels.js.coffee +++ b/app/assets/javascripts/backbone/helpers/channels.js.coffee @@ -20,7 +20,7 @@ class Kandan.Helpers.Channels @scrollToLatestMessage: (channelId)-> if channelId - theScrollArea = $('#channels-'+channelId) + theScrollArea = @channelPane(channelId) theScrollArea.scrollTop(theScrollArea.prop('scrollHeight')) else $('.channels-pane').scrollTop($('.channels-pane').prop('scrollHeight')) @@ -28,6 +28,9 @@ class Kandan.Helpers.Channels @currentScrollPosition: (channelId)-> $('channels-pane').scrollTop() + @channelPane: (channelId)-> + $("#channels-#{channelId}") + @channelActivitiesEl: (channelId)-> $("#channel-activities-#{channelId}") @@ -92,12 +95,12 @@ class Kandan.Helpers.Channels @channelExists: (channelId)-> - return true if $("#channels-#{channelId}").length > 0 + return true if @channelPane(channelId).length > 0 false @createChannelArea: (channel)-> - channelArea = "#channels-#{channel.get('id')}" + channelArea = @channelPane(channel.get('id')) totalTabs = $("#kandan").tabs("length") $createTab = $("#create_channel").parents("li").detach() $("#kandan").tabs("add", channelArea, "#{channel.get("name")}", totalTabs) @@ -161,12 +164,18 @@ class Kandan.Helpers.Channels @setPaginationState: (channelId, moreActivities, oldest)-> - @channelPaginationEl(channelId).data("oldest", oldest) console.log "pagination element", moreActivities, @channelPaginationEl(channelId) if moreActivities == true + # Only set pagination data if there are more activities. Otherwise is useless + @channelPaginationEl(channelId).data("oldest", oldest.get("id")) + @channelPaginationEl(channelId).show() else @channelPaginationEl(channelId).hide() + + # If there are no more messages we will unbind the scroll event + @channelPane(channelId).unbind("scroll") + @setPaginationData: (channelId)-> diff --git a/app/assets/javascripts/backbone/views/channel_pane.js.coffee b/app/assets/javascripts/backbone/views/channel_pane.js.coffee index dde9420a..613735af 100644 --- a/app/assets/javascripts/backbone/views/channel_pane.js.coffee +++ b/app/assets/javascripts/backbone/views/channel_pane.js.coffee @@ -55,12 +55,14 @@ class Kandan.Views.ChannelPane extends Backbone.View activityView = new Kandan.Views.ShowActivity({activity: activity, silence_mentions: true}) $container.find(".channel-activities").prepend(activityView.render().el) - $container.scrollTop($current_top_element.offset().top) + if $current_top_element.length != 0 + $container.scrollTop($current_top_element.offset().top) Kandan.Helpers.Channels.setPaginationState( collection.channelId, collection.moreActivities, - _.last(collection.models).get("id") + _.last(collection.models), + $container ) @loading_new_messages = false