summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2019-08-30 06:16:02 +0000
committerJan Provaznik <jprovaznik@gitlab.com>2019-08-30 06:16:02 +0000
commit09e607822adcb7a342508504735f7fee270a9de8 (patch)
tree5843dd67539c2e37029c1f18894879c9da13b4ad
parent770a15b0217a7449da381b6adb5b1dd378903e79 (diff)
parent8501e13bbc5f423b90c0ebbf20da90801a6fa410 (diff)
downloadgitlab-ce-09e607822adcb7a342508504735f7fee270a9de8.tar.gz
Merge branch '66264-moved-issue-reference' into 'master'
Resolve "Use "moved" instead of "closed" in issue references" Closes #66264 See merge request gitlab-org/gitlab-ce!32277
-rw-r--r--app/models/issue.rb2
-rw-r--r--changelogs/unreleased/66264-moved-issue-reference.yml5
-rw-r--r--lib/banzai/filter/issuable_state_filter.rb7
-rw-r--r--locale/gitlab.pot3
-rw-r--r--spec/lib/banzai/filter/issuable_state_filter_spec.rb8
5 files changed, 23 insertions, 2 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index caea8eadd18..75d4fc8c1c5 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -178,7 +178,7 @@ class Issue < ApplicationRecord
end
def moved?
- !moved_to.nil?
+ !moved_to_id.nil?
end
def can_move?(user, to_project = nil)
diff --git a/changelogs/unreleased/66264-moved-issue-reference.yml b/changelogs/unreleased/66264-moved-issue-reference.yml
new file mode 100644
index 00000000000..5876e9bbf79
--- /dev/null
+++ b/changelogs/unreleased/66264-moved-issue-reference.yml
@@ -0,0 +1,5 @@
+---
+title: Use moved instead of closed in issue references
+merge_request: 32277
+author: juliette-derancourt
+type: changed
diff --git a/lib/banzai/filter/issuable_state_filter.rb b/lib/banzai/filter/issuable_state_filter.rb
index 8e2358694d4..9dfd77b1759 100644
--- a/lib/banzai/filter/issuable_state_filter.rb
+++ b/lib/banzai/filter/issuable_state_filter.rb
@@ -21,7 +21,8 @@ module Banzai
next if !can_read_cross_project? && cross_reference?(issuable)
if VISIBLE_STATES.include?(issuable.state) && issuable_reference?(node.inner_html, issuable)
- node.content += " (#{issuable.state})"
+ state = moved_issue?(issuable) ? s_("IssuableStatus|moved") : issuable.state
+ node.content += " (#{state})"
end
end
@@ -30,6 +31,10 @@ module Banzai
private
+ def moved_issue?(issuable)
+ issuable.instance_of?(Issue) && issuable.moved?
+ end
+
def issuable_reference?(text, issuable)
CGI.unescapeHTML(text) == issuable.reference_link_text(project || group)
end
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 705c2921298..49de7787151 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -6191,6 +6191,9 @@ msgstr ""
msgid "IssuableStatus|Closed (%{moved_link_start}moved%{moved_link_end})"
msgstr ""
+msgid "IssuableStatus|moved"
+msgstr ""
+
msgid "Issue"
msgstr ""
diff --git a/spec/lib/banzai/filter/issuable_state_filter_spec.rb b/spec/lib/banzai/filter/issuable_state_filter_spec.rb
index 9f6dcded56f..cb431df7551 100644
--- a/spec/lib/banzai/filter/issuable_state_filter_spec.rb
+++ b/spec/lib/banzai/filter/issuable_state_filter_spec.rb
@@ -131,6 +131,14 @@ describe Banzai::Filter::IssuableStateFilter do
expect(doc.css('a').last.text).to eq("#{closed_issue.to_reference} (closed)")
end
+
+ it 'appends state to moved issue references' do
+ moved_issue = create(:issue, :closed, project: project, moved_to: create_issue(:opened))
+ link = create_link(moved_issue.to_reference, issue: moved_issue.id, reference_type: 'issue')
+ doc = filter(link, context)
+
+ expect(doc.css('a').last.text).to eq("#{moved_issue.to_reference} (moved)")
+ end
end
context 'for merge request references' do