diff --git a/ruby/lib/jam_ruby/models/feed.rb b/ruby/lib/jam_ruby/models/feed.rb index 71b10d054..a3f751c3f 100644 --- a/ruby/lib/jam_ruby/models/feed.rb +++ b/ruby/lib/jam_ruby/models/feed.rb @@ -35,7 +35,7 @@ module JamRuby query = Feed.joins("LEFT OUTER JOIN recordings ON recordings.id = feeds.recording_id") .joins("LEFT OUTER JOIN music_sessions ON music_sessions.id = feeds.music_session_id") .limit(limit) - .where('recordings is NULL OR (recordings.all_discarded = false AND recordings.deleted = false)') # remove any 'all_discarded recordings from the search results' or 'deleted' + .where('feeds.recording_id is NULL OR (recordings.all_discarded = false AND recordings.deleted = false)') # remove any 'all_discarded recordings from the search results' or 'deleted' # handle sort if sort == 'date' @@ -65,31 +65,31 @@ module JamRuby if target_user query = query.joins("LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND (claimed_recordings.user_id = '#{target_user}' OR (recordings.band_id IN (SELECT band_id FROM bands_musicians where user_id='#{target_user}')))") query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id AND music_sessions_user_history.user_id = '#{target_user}'") - query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") + query = query.group("feeds.id") if sort == 'plays' query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") elsif sort == 'likes' query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)") end - query = query.where('recordings.id is NULL OR claimed_recordings.id IS NOT NULL') - query = query.where('music_sessions.id is NULL OR music_sessions_user_history.id IS NOT NULL') + query = query.where('feeds.recording_id is NULL OR claimed_recordings.id IS NOT NULL') + query = query.where('feeds.music_session_id is NULL OR music_sessions_user_history.id IS NOT NULL') elsif target_band - query = query.joins("LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND recordings.band_id = '#{target_band}'") - query = query.where("music_sessions IS NULL OR music_sessions.band_id = '#{target_band}'") - query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") + query = query.joins("LEFT OUTER JOIN claimed_recordings ON feeds.recording_id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND recordings.band_id = '#{target_band}'") + query = query.where("feeds.music_session_id IS NULL OR music_sessions.band_id = '#{target_band}'") + query = query.group("feeds.id") if sort == 'plays' query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") elsif sort == 'likes' query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)") end - query = query.where('recordings.id is NULL OR claimed_recordings.id IS NOT NULL') + query = query.where('feeds.recording_id is NULL OR claimed_recordings.id IS NOT NULL') #query = query.where('music_sessions.id is NULL OR music_sessions_user_history.id IS NOT NULL') else - query = query.joins('LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE') + query = query.joins('LEFT OUTER JOIN claimed_recordings ON feeds.recording_id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE') query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id") - query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") + query = query.group("feeds.id") if sort == 'plays' query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") elsif sort == 'likes' @@ -124,4 +124,4 @@ module JamRuby end end end -end +end \ No newline at end of file diff --git a/web/app/assets/javascripts/feedHelper.js b/web/app/assets/javascripts/feedHelper.js index 61f7b69e8..fd40de8af 100644 --- a/web/app/assets/javascripts/feedHelper.js +++ b/web/app/assets/javascripts/feedHelper.js @@ -13,7 +13,7 @@ var userId = null; var bandId = null; var currentFeedPage = 0; - var feedBatchSize = 10; + var feedBatchSize = 100; var $screen = null; var $scroller = null; var $content = null; diff --git a/websocket-gateway/Gemfile b/websocket-gateway/Gemfile index c5a397d95..96bc46cac 100644 --- a/websocket-gateway/Gemfile +++ b/websocket-gateway/Gemfile @@ -17,6 +17,7 @@ else gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}" ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true" end + gem 'activerecord', '> 4.2' gem 'actionpack', '> 4.2' gem 'actionmailer', '> 4.2'