]> source.dussan.org Git - redmine.git/commitdiff
Redirect to the parent issue after adding a subtask.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 30 Jan 2017 21:24:18 +0000 (21:24 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 30 Jan 2017 21:24:18 +0000 (21:24 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16317 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
app/helpers/issues_helper.rb
app/views/issues/_form.html.erb

index efd22108784aad7d6e812f9aa142878d9d96cf9f..ee24d53a12d16e00c7ac7cebb51aa253367e3c44 100644 (file)
@@ -578,15 +578,18 @@ class IssuesController < ApplicationController
   # Redirects user after a successful issue creation
   def redirect_after_create
     if params[:continue]
-      attrs = {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?}
+      url_params = {}
+      url_params[:issue] = {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?}
+      url_params[:back_url] = params[:back_url].presence
+
       if params[:project_id]
-        redirect_to new_project_issue_path(@issue.project, :issue => attrs)
+        redirect_to new_project_issue_path(@issue.project, url_params)
       else
-        attrs.merge! :project_id => @issue.project_id
-        redirect_to new_issue_path(:issue => attrs)
+        url_params[:issue].merge! :project_id => @issue.project_id
+        redirect_to new_issue_path(url_params)
       end
     else
-      redirect_to issue_path(@issue)
+      redirect_back_or_default issue_path(@issue)
     end
   end
 end
index bf692285b39babc33717eb962c0ca3488bc29253..f953382845253aa5ac8c11ef7e1f1ad9a0d702d4 100644 (file)
@@ -184,7 +184,7 @@ module IssuesHelper
       :parent_issue_id => issue
     }
     attrs[:tracker_id] = issue.tracker unless issue.tracker.disabled_core_fields.include?('parent_issue_id')
-    link_to(l(:button_add), new_project_issue_path(issue.project, :issue => attrs))
+    link_to(l(:button_add), new_project_issue_path(issue.project, :issue => attrs, :back_url => issue_path(issue)))
   end
 
   def trackers_options_for_select(issue)
index f11c71faf74fd3d5018f3403c9a1f0472d43f22b..011928db894423b58c42cfa9ec84975c7a3fbf8e 100644 (file)
@@ -1,6 +1,7 @@
 <%= labelled_fields_for :issue, @issue do |f| %>
 <%= call_hook(:view_issues_form_details_top, { :issue => @issue, :form => f }) %>
 <%= hidden_field_tag 'form_update_triggered_by', '' %>
+<%= hidden_field_tag 'back_url', params[:back_url], :id => nil if params[:back_url].present? %>
 
 <% if @issue.safe_attribute? 'is_private' %>
 <p id="issue_is_private_wrap">