diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index 482e97abb..6f4223977 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -25,8 +25,6 @@ class AspectsController < ApplicationController end params[:page] = params[:page] ? params[:page].to_i : 1 - - @selected_contacts = @aspects.map { |aspect| aspect.contacts }.flatten.uniq @aspect_ids = @aspects.map { |a| a.id } @posts = current_user.raw_visible_posts(:by_members_of => @aspect_ids, :type => 'StatusMessage', :order => session[:sort_order] + ' DESC', :page => params[:page]).includes( diff --git a/app/views/aspects/_aspect_stream.haml b/app/views/aspects/_aspect_stream.haml index 448990759..2dad6c40d 100644 --- a/app/views/aspects/_aspect_stream.haml +++ b/app/views/aspects/_aspect_stream.haml @@ -12,6 +12,7 @@ #main_stream.stream{:data => {:guids => aspect_ids.join(',')}} - if posts.length > 0 = render 'shared/stream', :posts => fakes - =link_to(t('more'), aspects_path(:a_ids => params[:a_ids], :page => params[:page] + 1), :class => 'paginate') + #pagination + =link_to(t('more'), aspects_path(:page => (params[:page] + 1), :a_ids => params[:a_ids]), :class => 'paginate') - else = render 'aspects/no_posts_message', :post_count => posts.length diff --git a/app/views/aspects/index.html.haml b/app/views/aspects/index.html.haml index 0fc41d645..667b7053c 100644 --- a/app/views/aspects/index.html.haml +++ b/app/views/aspects/index.html.haml @@ -5,7 +5,6 @@ - content_for :head do = include_javascripts :home - .span-15.append-2 #aspect_stream_container = render 'aspect_stream', diff --git a/app/views/aspects/index.js.erb b/app/views/aspects/index.js.erb index 8e1bf9dd6..02fc82740 100644 --- a/app/views/aspects/index.js.erb +++ b/app/views/aspects/index.js.erb @@ -1,21 +1,3 @@ $('#aspect_stream_container').html("<%= escape_javascript(render('aspects/aspect_stream', :aspect => @aspect, :aspect_ids => @aspect_ids, :posts => @posts, :fakes => @fakes)) %>"); $('#aspect_listings').html("<%= escape_javascript(render('aspects/aspect_listings', :aspects => @aspects)) %>"); $('a[rel*=facebox]').facebox(); - -$(document).ready(function() { - $('#main_stream').infinitescroll({ - navSelector : "#main_stream + div.pagination", - // selector for the paged navigation (it will be hidden) - nextSelector : ".pagination a.next_page", - // selector for the NEXT link (to page 2) - itemSelector : "#main_stream .stream_element", - // selector for all items you'll retrieve - bufferPx: 300, - donetext: "no more.", - loadingText: "", - loadingImg: '/images/ajax-loader.gif' - }); - - Diaspora.widgets.timeago.updateTimeAgo(); - Publisher.initialize(); -}); diff --git a/config/assets.yml b/config/assets.yml index d74f73d53..0966f9d59 100644 --- a/config/assets.yml +++ b/config/assets.yml @@ -33,6 +33,7 @@ javascripts: - public/javascripts/stream.js - public/javascripts/application.js - public/javascripts/search.js + - public/javascripts/infinite_scroll.js mobile: - public/javascripts/vendor/jquery152.min.js - public/javascripts/custom-mobile-scripting.js diff --git a/public/javascripts/application.js b/public/javascripts/application.js index 67ff1dbb1..a6c19946d 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1,33 +1,6 @@ $(document).ready(function() { - var scrolled = 0; - - $('#main_stream').infinitescroll({ - navSelector : ".paginate", - // selector for the paged navigation (it will be hidden) - nextSelector : ".paginate", - // selector for the NEXT link (to page 2) - itemSelector : "#main_stream .stream_element", - // selector for all items you'll retrieve - bufferPx: 300, - debug: false, - donetext: "no more.", - loadingText: "", - loadingImg: '/images/ajax-loader.gif' - }, function() { - scrolled++; - - if(scrolled > 2) { - (scrolled === 3) && $(window).unbind('.infscr'); - - $("a.paginate") - .detach() - .appendTo("#main_stream") - .css("display", "block"); - } - Diaspora.widgets.timeago.updateTimeAgo(); - }); - + InfiniteScroll.initialize(); $("a.paginate").live("click", function() { $(this).css("display", "none"); diff --git a/public/javascripts/aspect-filters.js b/public/javascripts/aspect-filters.js index 9c70fc7d9..fd1e62d61 100644 --- a/public/javascripts/aspect-filters.js +++ b/public/javascripts/aspect-filters.js @@ -176,6 +176,9 @@ $(document).ready(function(){ // reinit listeners on stream photozone.html(photos_html); Stream.initialize(); + InfiniteScroll.initialize(); + + Publisher.initialize(); // fade contents back in if(requests == 0){ diff --git a/public/javascripts/infinite_scroll.js b/public/javascripts/infinite_scroll.js new file mode 100644 index 000000000..5ab83fa8d --- /dev/null +++ b/public/javascripts/infinite_scroll.js @@ -0,0 +1,23 @@ +var InfiniteScroll = { + options: { + navSelector : "#pagination", + // selector for the paged navigation (it will be hidden) + nextSelector : ".paginate", + // selector for the NEXT link (to page 2) + itemSelector : "#main_stream .stream_element", + // selector for all items you'll retrieve + pathParse : function( pathStr, nextPage ){ + return pathStr.replace( "page=2", "page=" + nextPage) + }, + bufferPx: 300, + debug: false, + donetext: "no more.", + loadingText: "", + loadingImg: '/images/ajax-loader.gif' + }, + initialize: function(){ + $('#main_stream').infinitescroll(InfiniteScroll.options, function() { + Diaspora.widgets.timeago.updateTimeAgo(); + }); + } +}