Fix view of notes in search results when noteable is a snippet
Also, streamline the view. Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
091b8a6ede
commit
e60f034126
|
|
@ -14,6 +14,9 @@ v 8.7.0 (unreleased)
|
||||||
- Implement 'TODOs View' as an option for dashboard preferences !3379 (Elias W.)
|
- Implement 'TODOs View' as an option for dashboard preferences !3379 (Elias W.)
|
||||||
- Gracefully handle notes on deleted commits in merge requests (Stan Hu)
|
- Gracefully handle notes on deleted commits in merge requests (Stan Hu)
|
||||||
|
|
||||||
|
v 8.6.3 (unreleased)
|
||||||
|
- Fix Error 500 when searching for a comment in a project snippet. !3468
|
||||||
|
|
||||||
v 8.6.2
|
v 8.6.2
|
||||||
- Fix dropdown alignment. !3298
|
- Fix dropdown alignment. !3298
|
||||||
- Fix issuable sidebar overlaps on tablet. !3299
|
- Fix issuable sidebar overlaps on tablet. !3299
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,20 @@
|
||||||
- project = note.project
|
- project = note.project
|
||||||
|
- note_url = Gitlab::UrlBuilder.new(:note).build(note.id)
|
||||||
|
- noteable_identifier = note.noteable.try(:iid) || note.noteable.id
|
||||||
.search-result-row
|
.search-result-row
|
||||||
%h5.note-search-caption.str-truncated
|
%h5.note-search-caption.str-truncated
|
||||||
%i.fa.fa-comment
|
%i.fa.fa-comment
|
||||||
= link_to_member(project, note.author, avatar: false)
|
= link_to_member(project, note.author, avatar: false)
|
||||||
commented on
|
commented on
|
||||||
|
= link_to project.name_with_namespace, project
|
||||||
|
·
|
||||||
|
|
||||||
- if note.for_commit?
|
- if note.for_commit?
|
||||||
= link_to project do
|
= link_to "Commit #{truncate_sha(note.commit_id)}", note_url
|
||||||
= project.name_with_namespace
|
|
||||||
·
|
|
||||||
= link_to namespace_project_commit_path(project.namespace, project, note.commit_id, anchor: dom_id(note)) do
|
|
||||||
Commit #{truncate_sha(note.commit_id)}
|
|
||||||
- else
|
- else
|
||||||
= link_to project do
|
%span #{note.noteable_type.titleize} ##{noteable_identifier}
|
||||||
= project.name_with_namespace
|
|
||||||
·
|
·
|
||||||
%span #{note.noteable_type.titleize} ##{note.noteable.iid}
|
= link_to note.noteable.title, note_url
|
||||||
·
|
|
||||||
= link_to [project.namespace.becomes(Namespace), project, note.noteable, anchor: dom_id(note)] do
|
|
||||||
= note.noteable.title
|
|
||||||
|
|
||||||
.note-search-result
|
.note-search-result
|
||||||
.term
|
.term
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ module Gitlab
|
||||||
class UrlBuilder
|
class UrlBuilder
|
||||||
include Gitlab::Application.routes.url_helpers
|
include Gitlab::Application.routes.url_helpers
|
||||||
include GitlabRoutingHelper
|
include GitlabRoutingHelper
|
||||||
|
include ActionView::RecordIdentifier
|
||||||
|
|
||||||
def initialize(type)
|
def initialize(type)
|
||||||
@type = type
|
@type = type
|
||||||
|
|
@ -37,19 +38,16 @@ module Gitlab
|
||||||
namespace_project_commit_url(namespace_id: note.project.namespace,
|
namespace_project_commit_url(namespace_id: note.project.namespace,
|
||||||
id: note.commit_id,
|
id: note.commit_id,
|
||||||
project_id: note.project,
|
project_id: note.project,
|
||||||
anchor: "note_#{note.id}")
|
anchor: dom_id(note))
|
||||||
elsif note.for_issue?
|
elsif note.for_issue?
|
||||||
issue = Issue.find(note.noteable_id)
|
issue = Issue.find(note.noteable_id)
|
||||||
issue_url(issue,
|
issue_url(issue, anchor: dom_id(note))
|
||||||
anchor: "note_#{note.id}")
|
|
||||||
elsif note.for_merge_request?
|
elsif note.for_merge_request?
|
||||||
merge_request = MergeRequest.find(note.noteable_id)
|
merge_request = MergeRequest.find(note.noteable_id)
|
||||||
merge_request_url(merge_request,
|
merge_request_url(merge_request, anchor: dom_id(note))
|
||||||
anchor: "note_#{note.id}")
|
|
||||||
elsif note.for_snippet?
|
elsif note.for_snippet?
|
||||||
snippet = Snippet.find(note.noteable_id)
|
snippet = Snippet.find(note.noteable_id)
|
||||||
project_snippet_url(snippet,
|
project_snippet_url(snippet, anchor: dom_id(note))
|
||||||
anchor: "note_#{note.id}")
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,46 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe "Search", feature: true do
|
describe "Search", feature: true do
|
||||||
before do
|
let(:user) { create(:user) }
|
||||||
login_as :user
|
let(:project) { create(:project, namespace: user.namespace) }
|
||||||
@project = create(:project, namespace: @user.namespace)
|
|
||||||
@project.team << [@user, :reporter]
|
|
||||||
visit search_path
|
|
||||||
|
|
||||||
|
before do
|
||||||
|
login_with(user)
|
||||||
|
project.team << [user, :reporter]
|
||||||
|
visit search_path
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'searching for Projects' do
|
||||||
|
it 'finds a project' do
|
||||||
page.within '.search-holder' do
|
page.within '.search-holder' do
|
||||||
fill_in "search", with: @project.name[0..3]
|
fill_in "search", with: project.name[0..3]
|
||||||
click_button "Search"
|
click_button "Search"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
expect(page).to have_content project.name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it "should show project in search results" do
|
context 'search for comments' do
|
||||||
expect(page).to have_content @project.name
|
it 'finds a snippet' do
|
||||||
|
snippet = create(:project_snippet, :private, project: project, author: user, title: 'Some title')
|
||||||
|
note = create(:note,
|
||||||
|
noteable: snippet,
|
||||||
|
author: user,
|
||||||
|
note: 'Supercalifragilisticexpialidocious',
|
||||||
|
project: project)
|
||||||
|
# Must visit project dashboard since global search won't search
|
||||||
|
# everything (e.g. comments, snippets, etc.)
|
||||||
|
visit namespace_project_path(project.namespace, project)
|
||||||
|
|
||||||
|
page.within '.search' do
|
||||||
|
fill_in 'search', with: note.note
|
||||||
|
click_button 'Go'
|
||||||
|
end
|
||||||
|
|
||||||
|
click_link 'Comments'
|
||||||
|
|
||||||
|
expect(page).to have_link(snippet.title)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue