Merge branch 'kkm/gitlab-ce-user-diff-view-pref-cookie' into 'master'
Remember user's inline/tabular diff view preference in a cookie _Originally opened at !1677 by @kkm._ --- As per #3071, some users (we have a local EE installation) prefer 2-column view in diff. In this MR I add an implementation for this feature, using a cookie. Fixes #3071. See merge request !2723
This commit is contained in:
commit
9fdd605fd2
|
@ -22,6 +22,7 @@ v 8.5.0 (unreleased)
|
||||||
- Fix visibility level text in admin area (Zeger-Jan van de Weg)
|
- Fix visibility level text in admin area (Zeger-Jan van de Weg)
|
||||||
- Warn admin during OAuth of granting admin rights (Zeger-Jan van de Weg)
|
- Warn admin during OAuth of granting admin rights (Zeger-Jan van de Weg)
|
||||||
- Update the ExternalIssue regex pattern (Blake Hitchcock)
|
- Update the ExternalIssue regex pattern (Blake Hitchcock)
|
||||||
|
- Remember user's inline/side-by-side diff view preference in a cookie (Kirill Katsnelson)
|
||||||
- Optimized performance of finding issues to be closed by a merge request
|
- Optimized performance of finding issues to be closed by a merge request
|
||||||
- Revert "Add IP check against DNSBLs at account sign-up"
|
- Revert "Add IP check against DNSBLs at account sign-up"
|
||||||
- Fix API to keep request parameters in Link header (Michael Potthoff)
|
- Fix API to keep request parameters in Link header (Michael Potthoff)
|
||||||
|
|
|
@ -28,6 +28,11 @@ class Projects::ApplicationController < ApplicationController
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def apply_diff_view_cookie!
|
||||||
|
view = params[:view] || cookies[:diff_view]
|
||||||
|
cookies.permanent[:diff_view] = params[:view] = view if view
|
||||||
|
end
|
||||||
|
|
||||||
def builds_enabled
|
def builds_enabled
|
||||||
return render_404 unless @project.builds_enabled?
|
return render_404 unless @project.builds_enabled?
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,6 +13,8 @@ class Projects::CommitController < Projects::ApplicationController
|
||||||
def show
|
def show
|
||||||
return git_not_found! unless @commit
|
return git_not_found! unless @commit
|
||||||
|
|
||||||
|
apply_diff_view_cookie!
|
||||||
|
|
||||||
@line_notes = commit.notes.inline
|
@line_notes = commit.notes.inline
|
||||||
@note = @project.build_commit_note(commit)
|
@note = @project.build_commit_note(commit)
|
||||||
@notes = commit.notes.not_inline.fresh
|
@notes = commit.notes.not_inline.fresh
|
||||||
|
|
|
@ -57,6 +57,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def diffs
|
def diffs
|
||||||
|
apply_diff_view_cookie!
|
||||||
|
|
||||||
@commit = @merge_request.last_commit
|
@commit = @merge_request.last_commit
|
||||||
@base_commit = @merge_request.diff_base_commit
|
@base_commit = @merge_request.diff_base_commit
|
||||||
|
|
||||||
|
|
|
@ -199,6 +199,32 @@ describe Projects::MergeRequestsController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'GET diffs with view' do
|
||||||
|
def go(extra_params = {})
|
||||||
|
params = {
|
||||||
|
namespace_id: project.namespace.to_param,
|
||||||
|
project_id: project.to_param,
|
||||||
|
id: merge_request.iid
|
||||||
|
}
|
||||||
|
|
||||||
|
get :diffs, params.merge(extra_params)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'saves the preferred diff view in a cookie' do
|
||||||
|
go view: 'parallel'
|
||||||
|
|
||||||
|
expect(response.cookies['diff_view']).to eq('parallel')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'assigns :view param based on cookie' do
|
||||||
|
request.cookies['diff_view'] = 'parallel'
|
||||||
|
|
||||||
|
go
|
||||||
|
|
||||||
|
expect(controller.params[:view]).to eq 'parallel'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'GET commits' do
|
describe 'GET commits' do
|
||||||
def go(format: 'html')
|
def go(format: 'html')
|
||||||
get :commits,
|
get :commits,
|
||||||
|
|
Loading…
Reference in New Issue