summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2021-11-06 09:11:58 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2021-11-06 09:11:58 +0000
commite9b94a19de65c6548d9f97e82f957d7eaf1729d5 (patch)
tree951df015491aa66c1491f0d1f32df004fa9fc251
parent7b9f5af952ba9396b47408234db2a4a4c860948c (diff)
downloadredmine-e9b94a19de65c6548d9f97e82f957d7eaf1729d5.tar.gz
redmine-e9b94a19de65c6548d9f97e82f957d7eaf1729d5.zip
Adds button to "Create and follow" when adding a subtask from the parent issue. Now the user have the following options:
* Create: redirects the user to the parent task (existing behaviour) * Create and follow: redirects the user to the newly created subtask (new behaviour) * Create and add another: redirects the user to new subtask (existing behaviour). (#29076). git-svn-id: http://svn.redmine.org/redmine/trunk@21269 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/issues_controller.rb2
-rw-r--r--app/views/issues/new.html.erb3
-rw-r--r--config/locales/en.yml1
-rw-r--r--test/functional/issues_controller_test.rb24
4 files changed, 30 insertions, 0 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 96a8341d0..eca53d7f5 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -701,6 +701,8 @@ class IssuesController < ApplicationController
url_params[:issue][:project_id] = @issue.project_id
redirect_to new_issue_path(url_params)
end
+ elsif params[:follow]
+ redirect_to issue_path(@issue)
else
redirect_back_or_default issue_path(@issue)
end
diff --git a/app/views/issues/new.html.erb b/app/views/issues/new.html.erb
index 22a174a11..92f6f251a 100644
--- a/app/views/issues/new.html.erb
+++ b/app/views/issues/new.html.erb
@@ -38,6 +38,9 @@
</div>
<%= submit_tag l(:button_create) %>
+ <% if params[:back_url] && params[:issue] && params[:issue][:parent_issue_id] %>
+ <%= submit_tag l(:button_create_and_follow), name: 'follow' %>
+ <% end %>
<%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
<% end %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e9352dd02..18d7e2615 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1186,6 +1186,7 @@ en:
button_save_object: "Save %{object_name}"
button_edit_object: "Edit %{object_name}"
button_delete_object: "Delete %{object_name}"
+ button_create_and_follow: Create and follow
status_active: active
status_registered: registered
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index d90dcfacc..e0e05c97e 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -3212,6 +3212,11 @@ class IssuesControllerTest < Redmine::ControllerTest
assert_select 'select[name=?]', 'issue[done_ratio]'
assert_select 'input[name=?][value=?]', 'issue[custom_field_values][2]', 'Default string'
assert_select 'input[name=?]', 'issue[watcher_user_ids][]'
+
+ # Assert submit buttons
+ assert_select 'input[type=submit][name=?]', 'commit'
+ assert_select 'input[type=submit][name=?]', 'continue'
+ assert_select 'input[type=submit][name=?]', 'follow', 0
end
# Be sure we don't display inactive IssuePriorities
@@ -3824,6 +3829,25 @@ class IssuesControllerTest < Redmine::ControllerTest
assert_select 'div#trackers_description', 0
end
+ def test_get_new_should_show_create_and_follow_button_when_issue_is_subtask_and_back_urL_is_present
+ @request.session[:user_id] = 2
+ get :new, params: {
+ project_id: 1,
+ issue: {
+ parent_issue_id: 2
+ },
+ back_url: "/issues/2"
+ }
+ assert_response :success
+
+ assert_select 'form#issue-form' do
+ # Assert submit buttons
+ assert_select 'input[type=submit][name=?]', 'commit'
+ assert_select 'input[type=submit][name=?]', 'continue'
+ assert_select 'input[type=submit][name=?]', 'follow'
+ end
+ end
+
def test_update_form_for_new_issue
@request.session[:user_id] = 2
post(