Skip to content
Snippets Groups Projects
Commit 0383afc6 authored by Stan Hu's avatar Stan Hu
Browse files

Add user preference to view project activity and starred project activity as default dashboard

Closes #2662
parent 6d691810
No related branches found
No related tags found
1 merge request!1446Add user preference to view project activity and starred project activity as default dashboard
Please view this file on the master branch, on stable branches it's out of date.
 
v 8.1.0 (unreleased)
- Add user preference to view activities as default dashboard (Stan Hu)
- Fix bug where projects would appear to be stuck in the forked import state (Stan Hu)
- Fix Error 500 in creating merge requests with > 1000 diffs (Stan Hu)
- Show CI status on all pages where commits list is rendered
Loading
Loading
Loading
Loading
@@ -22,6 +22,10 @@ class RootController < Dashboard::ProjectsController
when 'stars'
flash.keep
redirect_to starred_dashboard_projects_path
when 'project_activity'
redirect_to activity_dashboard_path
when 'starred_project_activity'
redirect_to activity_dashboard_path(filter: 'starred')
else
return
end
Loading
Loading
Loading
Loading
@@ -3,7 +3,9 @@ module PreferencesHelper
# Maps `dashboard` values to more user-friendly option text
DASHBOARD_CHOICES = {
projects: 'Your Projects (default)',
stars: 'Starred Projects'
stars: 'Starred Projects',
project_activity: "Your Projects' Activity",
starred_project_activity: "Starred Projects' Activity"
}.with_indifferent_access.freeze
 
# Returns an Array usable by a select field for more user-friendly option text
Loading
Loading
Loading
Loading
@@ -172,7 +172,7 @@ class User < ActiveRecord::Base
 
# User's Dashboard preference
# Note: When adding an option, it MUST go on the end of the array.
enum dashboard: [:projects, :stars]
enum dashboard: [:projects, :stars, :project_activity, :starred_project_activity]
 
# User's Project preference
# Note: When adding an option, it MUST go on the end of the array.
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ describe RootController do
allow(subject).to receive(:current_user).and_return(user)
end
 
context 'who has customized their dashboard setting' do
context 'who has customized their dashboard setting for starred projects' do
before do
user.update_attribute(:dashboard, 'stars')
end
Loading
Loading
@@ -21,6 +21,28 @@ describe RootController do
end
end
 
context 'who has customized their dashboard setting for project activities' do
before do
user.update_attribute(:dashboard, 'project_activity')
end
it 'redirects to the activity list' do
get :index
expect(response).to redirect_to activity_dashboard_path
end
end
context 'who has customized their dashboard setting for starred project activities' do
before do
user.update_attribute(:dashboard, 'starred_project_activity')
end
it 'redirects to the activity list' do
get :index
expect(response).to redirect_to activity_dashboard_path(filter: 'starred')
end
end
context 'who uses the default dashboard setting' do
it 'renders the default dashboard' do
get :index
Loading
Loading
Loading
Loading
@@ -8,14 +8,18 @@ describe PreferencesHelper do
end
 
it 'raises an exception when defined choices may be using the wrong key' do
expect(User).to receive(:dashboards).and_return(foo: 'foo', bar: 'bar')
dashboards = User.dashboards.dup
dashboards[:projects_changed] = dashboards.delete :projects
expect(User).to receive(:dashboards).and_return(dashboards)
expect { helper.dashboard_choices }.to raise_error(KeyError)
end
 
it 'provides better option descriptions' do
expect(helper.dashboard_choices).to match_array [
['Your Projects (default)', 'projects'],
['Starred Projects', 'stars']
['Starred Projects', 'stars'],
["Your Projects' Activity", 'project_activity'],
["Starred Projects' Activity", 'starred_project_activity']
]
end
end
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment