From ea8c0e4103ea710b2ee5443eb09b30a3ac64ce65 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Mon, 22 Sep 2014 15:56:56 -0300 Subject: [PATCH] proposals_discussion: fix infinite loading bug --- controllers/public/proposals_discussion_plugin_public_controller.rb | 6 +----- public/proposals_list.js | 15 ++++++++++----- test/functional/proposals_discussion_plugin_public_controller_test.rb | 4 ++-- views/content_viewer/_proposals_list_content.html.erb | 2 +- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/controllers/public/proposals_discussion_plugin_public_controller.rb b/controllers/public/proposals_discussion_plugin_public_controller.rb index 992d36b..dc4bf7a 100644 --- a/controllers/public/proposals_discussion_plugin_public_controller.rb +++ b/controllers/public/proposals_discussion_plugin_public_controller.rb @@ -11,11 +11,7 @@ class ProposalsDiscussionPluginPublicController < ApplicationController @proposals = order_proposals(@holder.proposals.public, order) @proposals = @proposals.page(page).per_page(4) - unless @proposals.empty? - render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => @holder, :page => page+1, :order => order} - else - render :text => '' - end + render :partial => 'content_viewer/proposals_list_content', :locals => {:proposals => @proposals, :holder => @holder, :page => page+1, :order => order} end private diff --git a/public/proposals_list.js b/public/proposals_list.js index ff28bc0..79cca1c 100644 --- a/public/proposals_list.js +++ b/public/proposals_list.js @@ -10,11 +10,16 @@ jQuery(document).ready(function($) { }); function proposalsScroll() { - $('.article-body-proposals-discussion-plugin_topic .topic-content').data('jscroll', null); - $('.article-body-proposals-discussion-plugin_topic .topic-content').jscroll({ - loadingHtml: 'LoadingLoading...', - nextSelector: 'div.more a' - }); + var scroll = $('.article-body-proposals-discussion-plugin_topic .topic-content .proposals_list'); + var nextSelector = 'div.more a'; + if(scroll.data('jscroll')) scroll.jscroll.destroy(); + + if(scroll.find(nextSelector).length > 0) { + scroll.jscroll({ + loadingHtml: 'LoadingLoading...', + nextSelector: nextSelector + }); + } } $('.filters .random').click(); diff --git a/test/functional/proposals_discussion_plugin_public_controller_test.rb b/test/functional/proposals_discussion_plugin_public_controller_test.rb index 8c4a199..981647d 100644 --- a/test/functional/proposals_discussion_plugin_public_controller_test.rb +++ b/test/functional/proposals_discussion_plugin_public_controller_test.rb @@ -22,9 +22,9 @@ class ProposalsDiscussionPluginPublicControllerTest < ActionController::TestCase assert_match /href=.*page=2/, response.body end - should 'render blank text if it is the last page' do + should 'not render more link if it was the last page' do get :load_proposals, :profile => profile.identifier, :holder_id => topic.id - assert_equal '', response.body + assert_select 'div.more a', 0 end should 'load proposals with alphabetical order' do diff --git a/views/content_viewer/_proposals_list_content.html.erb b/views/content_viewer/_proposals_list_content.html.erb index 03d44ff..6df8274 100644 --- a/views/content_viewer/_proposals_list_content.html.erb +++ b/views/content_viewer/_proposals_list_content.html.erb @@ -3,5 +3,5 @@ <% extend ProposalsDiscussionPlugin::ProposalsListHelper %>
- <%= more_proposals(_('More'), holder, order, page) %> + <%= more_proposals(_('More'), holder, order, page) unless proposals.empty? %>
-- libgit2 0.21.2