Refactor: merge IssuesController#update_form into IssuesController#new
The #update_form action was only refreshing the issue attributes form, so it's just a specialized JavaScript version of #new. This also removed old code that was extracted in other places (@issue.new_statuses_allowed_to). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4011 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
9696557897
commit
dfd1d0c7fe
|
@ -21,7 +21,7 @@ class IssuesController < ApplicationController
|
||||||
|
|
||||||
before_filter :find_issue, :only => [:show, :edit, :update]
|
before_filter :find_issue, :only => [:show, :edit, :update]
|
||||||
before_filter :find_issues, :only => [:bulk_edit, :move, :perform_move, :destroy]
|
before_filter :find_issues, :only => [:bulk_edit, :move, :perform_move, :destroy]
|
||||||
before_filter :find_project, :only => [:new, :create, :update_form]
|
before_filter :find_project, :only => [:new, :create]
|
||||||
before_filter :authorize, :except => [:index, :changes]
|
before_filter :authorize, :except => [:index, :changes]
|
||||||
before_filter :find_optional_project, :only => [:index, :changes]
|
before_filter :find_optional_project, :only => [:index, :changes]
|
||||||
before_filter :check_for_default_issue_status, :only => [:new, :create]
|
before_filter :check_for_default_issue_status, :only => [:new, :create]
|
||||||
|
@ -132,7 +132,10 @@ class IssuesController < ApplicationController
|
||||||
# Add a new issue
|
# Add a new issue
|
||||||
# The new issue will be created from an existing one if copy_from parameter is given
|
# The new issue will be created from an existing one if copy_from parameter is given
|
||||||
def new
|
def new
|
||||||
render :action => 'new', :layout => !request.xhr?
|
respond_to do |format|
|
||||||
|
format.html { render :action => 'new', :layout => !request.xhr? }
|
||||||
|
format.js { render :partial => 'attributes' }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
|
@ -258,20 +261,6 @@ class IssuesController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_form
|
|
||||||
if params[:id].blank?
|
|
||||||
@issue = Issue.new
|
|
||||||
@issue.project = @project
|
|
||||||
else
|
|
||||||
@issue = @project.issues.visible.find(params[:id])
|
|
||||||
end
|
|
||||||
@issue.attributes = params[:issue]
|
|
||||||
@allowed_statuses = ([@issue.status] + @issue.status.find_new_statuses_allowed_to(User.current.roles_for_project(@project), @issue.tracker)).uniq
|
|
||||||
@priorities = IssuePriority.all
|
|
||||||
|
|
||||||
render :partial => 'attributes'
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
private
|
||||||
def find_issue
|
def find_issue
|
||||||
@issue = Issue.find(params[:id], :include => [:project, :tracker, :status, :author, :priority, :category])
|
@issue = Issue.find(params[:id], :include => [:project, :tracker, :status, :author, :priority, :category])
|
||||||
|
@ -310,9 +299,15 @@ private
|
||||||
|
|
||||||
# TODO: Refactor, lots of extra code in here
|
# TODO: Refactor, lots of extra code in here
|
||||||
def build_new_issue_from_params
|
def build_new_issue_from_params
|
||||||
|
if params[:id].blank?
|
||||||
@issue = Issue.new
|
@issue = Issue.new
|
||||||
@issue.copy_from(params[:copy_from]) if params[:copy_from]
|
@issue.copy_from(params[:copy_from]) if params[:copy_from]
|
||||||
@issue.project = @project
|
@issue.project = @project
|
||||||
|
else
|
||||||
|
@issue = @project.issues.visible.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
@issue.project = @project
|
||||||
# Tracker must be set before custom field values
|
# Tracker must be set before custom field values
|
||||||
@issue.tracker ||= @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
|
@issue.tracker ||= @project.trackers.find((params[:issue] && params[:issue][:tracker_id]) || params[:tracker_id] || :first)
|
||||||
if @issue.tracker.nil?
|
if @issue.tracker.nil?
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div id="issue_descr_fields" <%= 'style="display:none"' unless @issue.new_record? || @issue.errors.any? %>>
|
<div id="issue_descr_fields" <%= 'style="display:none"' unless @issue.new_record? || @issue.errors.any? %>>
|
||||||
<p><%= f.select :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %></p>
|
<p><%= f.select :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %></p>
|
||||||
<%= observe_field :issue_tracker_id, :url => { :action => :update_form, :project_id => @project, :id => @issue },
|
<%= observe_field :issue_tracker_id, :url => { :action => :new, :project_id => @project, :id => @issue },
|
||||||
:update => :attributes,
|
:update => :attributes,
|
||||||
:with => "Form.serialize('issue-form')" %>
|
:with => "Form.serialize('issue-form')" %>
|
||||||
|
|
||||||
|
|
|
@ -365,7 +365,7 @@ class IssuesControllerTest < ActionController::TestCase
|
||||||
|
|
||||||
def test_update_new_form
|
def test_update_new_form
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
xhr :post, :update_form, :project_id => 1,
|
xhr :post, :new, :project_id => 1,
|
||||||
:issue => {:tracker_id => 2,
|
:issue => {:tracker_id => 2,
|
||||||
:subject => 'This is the test_new issue',
|
:subject => 'This is the test_new issue',
|
||||||
:description => 'This is the description',
|
:description => 'This is the description',
|
||||||
|
@ -617,7 +617,7 @@ class IssuesControllerTest < ActionController::TestCase
|
||||||
|
|
||||||
def test_update_edit_form
|
def test_update_edit_form
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
xhr :post, :update_form, :project_id => 1,
|
xhr :post, :new, :project_id => 1,
|
||||||
:id => 1,
|
:id => 1,
|
||||||
:issue => {:tracker_id => 2,
|
:issue => {:tracker_id => 2,
|
||||||
:subject => 'This is the test_new issue',
|
:subject => 'This is the test_new issue',
|
||||||
|
|
Loading…
Reference in New Issue