summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Greiling <mike@pixelcog.com>2018-12-20 21:10:50 +0000
committerMike Greiling <mike@pixelcog.com>2018-12-20 21:10:50 +0000
commit62d250ff666770f9807eec2199a7b208ea8b518a (patch)
tree15034db1e7b8b9d8896ff58409280c82aaac62c8
parenta39008fed3d16b081c8a694f6ea4d2a556075a71 (diff)
parent795b4a307f5e03714e022978a0a0f14a47a23eb4 (diff)
downloadgitlab-ce-62d250ff666770f9807eec2199a7b208ea8b518a.tar.gz
Merge branch 'winh-discussion-header-commented' into 'master'
Display "commented" only for commit discussions on merge requests Closes #53950 and #53681 See merge request gitlab-org/gitlab-ce!23622
-rw-r--r--app/assets/javascripts/notes/components/noteable_discussion.vue11
-rw-r--r--app/assets/javascripts/notes/components/noteable_note.vue35
-rw-r--r--app/helpers/notes_helper.rb2
-rw-r--r--changelogs/unreleased/winh-discussion-header-commented.yml5
-rw-r--r--locale/gitlab.pot3
-rw-r--r--spec/features/merge_request/user_sees_discussions_spec.rb8
-rw-r--r--spec/helpers/notes_helper_spec.rb4
7 files changed, 58 insertions, 10 deletions
diff --git a/app/assets/javascripts/notes/components/noteable_discussion.vue b/app/assets/javascripts/notes/components/noteable_discussion.vue
index d9dd08a7a6b..bba215852b7 100644
--- a/app/assets/javascripts/notes/components/noteable_discussion.vue
+++ b/app/assets/javascripts/notes/components/noteable_discussion.vue
@@ -211,6 +211,16 @@ export default {
return this.line;
},
+ commit() {
+ if (!this.discussion.for_commit) {
+ return null;
+ }
+
+ return {
+ id: this.discussion.commit_id,
+ url: this.discussion.discussion_path,
+ };
+ },
},
watch: {
isReplying() {
@@ -376,6 +386,7 @@ Please check your network connection and try again.`;
:note="componentData(initialDiscussion)"
:line="line"
:help-page-path="helpPagePath"
+ :commit="commit"
@handleDeleteNote="deleteNoteHandler"
>
<note-edited-text
diff --git a/app/assets/javascripts/notes/components/noteable_note.vue b/app/assets/javascripts/notes/components/noteable_note.vue
index 4c02588127e..6edc65c856e 100644
--- a/app/assets/javascripts/notes/components/noteable_note.vue
+++ b/app/assets/javascripts/notes/components/noteable_note.vue
@@ -2,6 +2,8 @@
import $ from 'jquery';
import { mapGetters, mapActions } from 'vuex';
import { escape } from 'underscore';
+import { truncateSha } from '~/lib/utils/text_utility';
+import { s__, sprintf } from '~/locale';
import TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';
import Flash from '../../flash';
import userAvatarLink from '../../vue_shared/components/user_avatar/user_avatar_link.vue';
@@ -37,6 +39,11 @@ export default {
required: false,
default: '',
},
+ commit: {
+ type: Object,
+ required: false,
+ default: () => null,
+ },
},
data() {
return {
@@ -73,6 +80,24 @@ export default {
isTarget() {
return this.targetNoteHash === this.noteAnchorId;
},
+ actionText() {
+ if (this.commit) {
+ const { id, url } = this.commit;
+ const linkStart = `<a class="commit-sha monospace" href="${escape(url)}">`;
+ const linkEnd = '</a>';
+ return sprintf(
+ s__('MergeRequests|commented on commit %{linkStart}%{commitId}%{linkEnd}'),
+ {
+ commitId: truncateSha(id),
+ linkStart,
+ linkEnd,
+ },
+ false,
+ );
+ }
+
+ return '<span class="d-none d-sm-inline">&middot;</span>';
+ },
},
created() {
@@ -200,13 +225,9 @@ export default {
</div>
<div class="timeline-content">
<div class="note-header">
- <note-header
- v-once
- :author="author"
- :created-at="note.created_at"
- :note-id="note.id"
- action-text="commented"
- />
+ <note-header v-once :author="author" :created-at="note.created_at" :note-id="note.id">
+ <span v-html="actionText"></span>
+ </note-header>
<note-actions
:author-id="author.id"
:note-id="note.id"
diff --git a/app/helpers/notes_helper.rb b/app/helpers/notes_helper.rb
index 033686823a2..293dd20ad49 100644
--- a/app/helpers/notes_helper.rb
+++ b/app/helpers/notes_helper.rb
@@ -85,7 +85,7 @@ module NotesHelper
diffs_project_merge_request_path(discussion.project, discussion.noteable, path_params)
elsif discussion.for_commit?
- anchor = discussion.line_code if discussion.diff_discussion?
+ anchor = discussion.diff_discussion? ? discussion.line_code : "note_#{discussion.first_note.id}"
project_commit_path(discussion.project, discussion.noteable, anchor: anchor)
end
diff --git a/changelogs/unreleased/winh-discussion-header-commented.yml b/changelogs/unreleased/winh-discussion-header-commented.yml
new file mode 100644
index 00000000000..8d08409b504
--- /dev/null
+++ b/changelogs/unreleased/winh-discussion-header-commented.yml
@@ -0,0 +1,5 @@
+---
+title: Display "commented" only for commit discussions on merge requests
+merge_request: 23622
+author:
+type: fixed
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index fed490309cc..c79df09229f 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -4126,6 +4126,9 @@ msgstr ""
msgid "MergeRequests|View replaced file @ %{commitId}"
msgstr ""
+msgid "MergeRequests|commented on commit %{linkStart}%{commitId}%{linkEnd}"
+msgstr ""
+
msgid "MergeRequests|started a discussion"
msgstr ""
diff --git a/spec/features/merge_request/user_sees_discussions_spec.rb b/spec/features/merge_request/user_sees_discussions_spec.rb
index 4ab9a87ad4b..d130ea05654 100644
--- a/spec/features/merge_request/user_sees_discussions_spec.rb
+++ b/spec/features/merge_request/user_sees_discussions_spec.rb
@@ -88,5 +88,13 @@ describe 'Merge request > User sees discussions', :js do
expect(page).to have_content "started a discussion on commit #{note.commit_id[0...7]}"
end
end
+
+ context 'a commit non-diff discussion' do
+ let(:note) { create(:discussion_note_on_commit, project: project) }
+
+ it 'displays correct header' do
+ expect(page).to have_content "commented on commit #{note.commit_id[0...7]}"
+ end
+ end
end
end
diff --git a/spec/helpers/notes_helper_spec.rb b/spec/helpers/notes_helper_spec.rb
index 21461e46cf4..0715f34dafe 100644
--- a/spec/helpers/notes_helper_spec.rb
+++ b/spec/helpers/notes_helper_spec.rb
@@ -185,8 +185,8 @@ describe NotesHelper do
context 'for a non-diff discussion' do
let(:discussion) { create(:discussion_note_on_commit, project: project).to_discussion }
- it 'returns the commit path' do
- expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit))
+ it 'returns the commit path with the note anchor' do
+ expect(helper.discussion_path(discussion)).to eq(project_commit_path(project, commit, anchor: "note_#{discussion.first_note.id}"))
end
end
end