CustomFieldsController refactoring.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2273 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
5ed2e78ae2
commit
48295a6c4b
|
@ -30,19 +30,14 @@ class CustomFieldsController < ApplicationController
|
|||
end
|
||||
|
||||
def new
|
||||
case params[:type]
|
||||
when "IssueCustomField"
|
||||
@custom_field = IssueCustomField.new(params[:custom_field])
|
||||
when "UserCustomField"
|
||||
@custom_field = UserCustomField.new(params[:custom_field])
|
||||
when "ProjectCustomField"
|
||||
@custom_field = ProjectCustomField.new(params[:custom_field])
|
||||
when "TimeEntryCustomField"
|
||||
@custom_field = TimeEntryCustomField.new(params[:custom_field])
|
||||
else
|
||||
redirect_to :action => 'list'
|
||||
return
|
||||
@custom_field = begin
|
||||
if params[:type].to_s.match(/.+CustomField$/)
|
||||
params[:type].to_s.constantize.new(params[:custom_field])
|
||||
end
|
||||
rescue
|
||||
end
|
||||
redirect_to(:action => 'list') and return unless @custom_field.is_a?(CustomField)
|
||||
|
||||
if request.post? and @custom_field.save
|
||||
flash[:notice] = l(:notice_successful_create)
|
||||
redirect_to :action => 'list', :tab => @custom_field.class.name
|
||||
|
|
|
@ -22,7 +22,7 @@ require 'custom_fields_controller'
|
|||
class CustomFieldsController; def rescue_action(e) raise e end; end
|
||||
|
||||
class CustomFieldsControllerTest < Test::Unit::TestCase
|
||||
fixtures :custom_fields, :trackers
|
||||
fixtures :custom_fields, :trackers, :users
|
||||
|
||||
def setup
|
||||
@controller = CustomFieldsController.new
|
||||
|
@ -53,4 +53,9 @@ class CustomFieldsControllerTest < Test::Unit::TestCase
|
|||
assert_equal ["0.1", "0.2"], field.possible_values
|
||||
assert_equal 1, field.trackers.size
|
||||
end
|
||||
|
||||
def test_invalid_custom_field_class_should_redirect_to_list
|
||||
get :new, :type => 'UnknownCustomField'
|
||||
assert_redirected_to '/custom_fields/list'
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue