# 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
: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)
<%= 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">