diff --git a/CHANGELOG b/CHANGELOG index fa97c52d34a9bff80c8fa1461090d89f18ed3028..593b3d274669caf89dab2e491308f9f4455900ab 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,6 +29,7 @@ v 7.10.0 (unreleased) - Improve oauth accounts UI in profile page - Add ability to unlink connected accounts - Replace commits calendar with faster contribution calendar that includes issues and merge requests + - Add inifinite scroll to user page activity v 7.9.0 - Add HipChat integration documentation (Stan Hu) diff --git a/app/assets/javascripts/dispatcher.js.coffee b/app/assets/javascripts/dispatcher.js.coffee index edf482f33d8ffd0a362c6ee1aeba1e80900b8a85..deabaf8a78443c9398485b7f43f3733a199789a7 100644 --- a/app/assets/javascripts/dispatcher.js.coffee +++ b/app/assets/javascripts/dispatcher.js.coffee @@ -97,6 +97,7 @@ class Dispatcher new ProjectFork() when 'users:show' new User() + new Activities() switch path.first() when 'admin' diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index f9b568b8af9fd7b3e6aad3257b3382869802027c..679d6897ce97a38db06b7578387b431f6731c522 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -13,17 +13,21 @@ class UsersController < ApplicationController # Collect only groups common for both users @groups = @user.groups & GroupsFinder.new.execute(current_user) - # Get user activity feed for projects common for both users - @events = @user.recent_events. - where(project_id: authorized_projects_ids). - with_associations.limit(30) - @title = @user.name @title_url = user_path(@user) respond_to do |format| format.html - format.atom { render layout: false } + + format.atom do + load_events + render layout: false + end + + format.json do + load_events + pager_json("events/_events", @events.count) + end end end @@ -81,4 +85,13 @@ class UsersController < ApplicationController @contributions_calendar ||= Gitlab::ContributionsCalendar. new(contributed_projects.reject(&:forked?), @user) end + + def load_events + # Get user activity feed for projects common for both users + @events = @user.recent_events. + where(project_id: authorized_projects_ids). + with_associations + + @events = @events.limit(20).offset(params[:offset] || 0) + end end diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml index fd96020d1294be2e5066ea19205e9abd1bb56a52..0653fb871ae870b91ee2cba6be2cd23248e93a73 100644 --- a/app/views/users/show.html.haml +++ b/app/views/users/show.html.haml @@ -40,7 +40,8 @@ %strong %i.fa.fa-rss - = render @events + .content_list + = spinner %aside.col-md-4 = render 'profile', user: @user = render 'projects'