summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Fontaine <afontaine@gitlab.com>2019-01-17 17:31:05 -0500
committerAndrew Fontaine <afontaine@gitlab.com>2019-01-25 14:59:41 -0500
commit01a713d64c69fb1b1785c614a336f20ad911bbef (patch)
treeef7b9abec21704ff3898e0c241cd47cfd6728dfa
parent2b8f19435bd81b24f512236245445109c14a2297 (diff)
downloadgitlab-ce-36445-better-indication-that-an-issue-has-been-moved-or-marked-as-duplicated.tar.gz
Add the text `(moved)` to the `Closed` status indicator on a closed issue if the reason the issue was closed was due to moving it. This only applies to closed issues. Issues that were closed and moved then later re-opened only show `Open`. This makes it more immidately clear why the issue was closed.
-rw-r--r--app/views/projects/issues/show.html.haml5
-rw-r--r--changelogs/unreleased/36445-better-indication-that-an-issue-has-been-moved-or-marked-as-duplicated.yml5
-rw-r--r--locale/gitlab.pot3
-rw-r--r--spec/views/projects/issues/show.html.haml_spec.rb51
4 files changed, 63 insertions, 1 deletions
diff --git a/app/views/projects/issues/show.html.haml b/app/views/projects/issues/show.html.haml
index f048fb91304..653b7d4c6f3 100644
--- a/app/views/projects/issues/show.html.haml
+++ b/app/views/projects/issues/show.html.haml
@@ -15,7 +15,10 @@
.issuable-status-box.status-box.status-box-issue-closed{ class: issue_button_visibility(@issue, false) }
= sprite_icon('mobile-issue-close', size: 16, css_class: 'd-block d-sm-none')
%span.d-none.d-sm-block
- Closed
+ - if @issue.moved?
+ = _("Closed (moved)")
+ - else
+ = _("Closed")
.issuable-status-box.status-box.status-box-open{ class: issue_button_visibility(@issue, true) }
= sprite_icon('issue-open-m', size: 16, css_class: 'd-block d-sm-none')
%span.d-none.d-sm-block Open
diff --git a/changelogs/unreleased/36445-better-indication-that-an-issue-has-been-moved-or-marked-as-duplicated.yml b/changelogs/unreleased/36445-better-indication-that-an-issue-has-been-moved-or-marked-as-duplicated.yml
new file mode 100644
index 00000000000..70b561ccbf6
--- /dev/null
+++ b/changelogs/unreleased/36445-better-indication-that-an-issue-has-been-moved-or-marked-as-duplicated.yml
@@ -0,0 +1,5 @@
+---
+title: Indicate on Issue Status if an Issue was Moved
+merge_request: 24470
+author:
+type: added
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 8f793d7d576..ab993b26f0a 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -1488,6 +1488,9 @@ msgstr ""
msgid "Closed"
msgstr ""
+msgid "Closed (moved)"
+msgstr ""
+
msgid "ClusterIntegration| is the default environment scope for this cluster. This means that all jobs, regardless of their environment, will use this cluster. %{environment_scope_start}More information%{environment_scope_end}"
msgstr ""
diff --git a/spec/views/projects/issues/show.html.haml_spec.rb b/spec/views/projects/issues/show.html.haml_spec.rb
new file mode 100644
index 00000000000..ff88efd0e31
--- /dev/null
+++ b/spec/views/projects/issues/show.html.haml_spec.rb
@@ -0,0 +1,51 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe 'projects/issues/show' do
+ let(:project) { create(:project, :repository) }
+ let(:issue) { create(:issue, project: project, author: user) }
+ let(:user) { create(:user) }
+
+ before do
+ assign(:project, project)
+ assign(:issue, issue)
+ assign(:noteable, issue)
+ stub_template 'shared/issuable/_sidebar' => ''
+ stub_template 'projects/issues/_discussion' => ''
+ allow(view).to receive(:issuable_meta).and_return('')
+ end
+
+ context 'when the issue is closed' do
+ before do
+ allow(issue).to receive(:closed?).and_return(true)
+ end
+
+ it 'shows "Closed (moved)" if an issue has been moved' do
+ allow(issue).to receive(:moved?).and_return(true)
+
+ render
+
+ expect(rendered).to have_selector('.status-box-issue-closed:not(.hidden)', text: 'Closed (moved)')
+ end
+
+ it 'shows "Closed" if an issue has not been moved' do
+ render
+
+ expect(rendered).to have_selector('.status-box-issue-closed:not(.hidden)', text: 'Closed')
+ end
+ end
+
+ context 'when the issue is open' do
+ before do
+ allow(issue).to receive(:closed?).and_return(false)
+ allow(issue).to receive(:disscussion_locked).and_return(false)
+ end
+
+ it 'shows "Open" if an issue has been moved' do
+ render
+
+ expect(rendered).to have_selector('.status-box-open:not(.hidden)', text: 'Open')
+ end
+ end
+end