Commit 09e60782 authored by Jan Provaznik's avatar Jan Provaznik

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
parents 770a15b0 8501e13b
......@@ -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)
......
---
title: Use moved instead of closed in issue references
merge_request: 32277
author: juliette-derancourt
type: changed
......@@ -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
......
......@@ -6191,6 +6191,9 @@ msgstr ""
msgid "IssuableStatus|Closed (%{moved_link_start}moved%{moved_link_end})"
msgstr ""
msgid "IssuableStatus|moved"
msgstr ""
msgid "Issue"
msgstr ""
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment