Merge branch '19702-define_show_html_vars' into 'master'
Be explicit on merge request discussion variables ## What does this MR do? To avoid conditionals and to messing with request.format and accept headers to know in which format we're going to response I've decided to be explicit in when we need the discussion variables ## Why was this MR needed? Solve a bug https://sentry.gitlap.com/gitlab/staginggitlabcom/issues/8492/ ## What are the relevant issue numbers? Closes #19702 ## Does this MR meet the acceptance criteria? - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added - ~~[ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~ - ~~[ ] API support added~~ - Tests - [ ] Added for this feature/bug - [ ] All builds are passing - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if you do - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) See merge request !5204
This commit is contained in:
commit
179be71dc5
|
@ -56,6 +56,7 @@ v 8.10.0 (unreleased)
|
|||
- Add API endpoint for a group issues !4520 (mahcsig)
|
||||
- Add Bugzilla integration !4930 (iamtjg)
|
||||
- Instrument Rinku usage
|
||||
- Be explicit to define merge request discussion variables
|
||||
- Metrics for Rouge::Plugins::Redcarpet and Rouge::Formatters::HTMLGitlab
|
||||
- RailsCache metris now includes fetch_hit/fetch_miss and read_hit/read_miss info.
|
||||
- Allow [ci skip] to be in any case and allow [skip ci]. !4785 (simon_w)
|
||||
|
|
|
@ -56,7 +56,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
|
||||
def show
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.html { define_discussion_vars }
|
||||
|
||||
format.json do
|
||||
render json: @merge_request
|
||||
|
@ -82,7 +82,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
@merge_request_diff = @merge_request.merge_request_diff
|
||||
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.html { define_discussion_vars }
|
||||
format.json { render json: { html: view_to_html_string("projects/merge_requests/show/_diffs") } }
|
||||
end
|
||||
end
|
||||
|
@ -108,7 +108,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
|
||||
def commits
|
||||
respond_to do |format|
|
||||
format.html { render 'show' }
|
||||
format.html do
|
||||
define_discussion_vars
|
||||
|
||||
render 'show'
|
||||
end
|
||||
format.json do
|
||||
# Get commits from repository
|
||||
# or from cache if already merged
|
||||
|
@ -123,7 +127,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
|
||||
def builds
|
||||
respond_to do |format|
|
||||
format.html { render 'show' }
|
||||
format.html do
|
||||
define_discussion_vars
|
||||
|
||||
render 'show'
|
||||
end
|
||||
format.json { render json: { html: view_to_html_string('projects/merge_requests/show/_builds') } }
|
||||
end
|
||||
end
|
||||
|
@ -353,14 +361,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
|||
@merge_request.unlock_mr
|
||||
@merge_request.close
|
||||
end
|
||||
|
||||
if request.format == :html || action_name == 'show'
|
||||
define_show_html_vars
|
||||
end
|
||||
end
|
||||
|
||||
# Discussion tab data is only required on html requests
|
||||
def define_show_html_vars
|
||||
# Discussion tab data is rendered on html responses of actions
|
||||
# :show, :diff, :commits, :builds. but not when request the data through AJAX
|
||||
def define_discussion_vars
|
||||
# Build a note object for comment form
|
||||
@note = @project.notes.new(noteable: @noteable)
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Diffs URL', js: true, feature: true do
|
||||
before do
|
||||
login_as :admin
|
||||
@merge_request = create(:merge_request)
|
||||
@project = @merge_request.source_project
|
||||
end
|
||||
|
||||
context 'when visit with */* as accept header' do
|
||||
before(:each) do
|
||||
page.driver.add_header('Accept', '*/*')
|
||||
end
|
||||
|
||||
it 'renders the notes' do
|
||||
create :note_on_merge_request, project: @project, noteable: @merge_request, note: 'Rebasing with master'
|
||||
|
||||
visit diffs_namespace_project_merge_request_path(@project.namespace, @project, @merge_request)
|
||||
|
||||
# Load notes and diff through AJAX
|
||||
expect(page).to have_css('.note-text', visible: false, text: 'Rebasing with master')
|
||||
expect(page).to have_css('.diffs.tab-pane.active')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue