From f595197ecfd57e7c3a61564d7409dfed88a50eff Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Thu, 21 Jul 2011 15:51:58 +0000 Subject: [PATCH] Adds a 'Create and continue' button on project form. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6303 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/projects_controller.rb | 5 ++++- app/views/projects/new.html.erb | 3 ++- test/functional/projects_controller_test.rb | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 4b750dc0e..c8f26a96c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -87,7 +87,10 @@ class ProjectsController < ApplicationController respond_to do |format| format.html { flash[:notice] = l(:notice_successful_create) - redirect_to :controller => 'projects', :action => 'settings', :id => @project + redirect_to(params[:continue] ? + {:controller => 'projects', :action => 'new', :project => {:parent_id => @project.parent_id}.reject {|k,v| v.nil?}} : + {:controller => 'projects', :action => 'settings', :id => @project} + ) } format.api { render :action => 'show', :status => :created, :location => url_for(:controller => 'projects', :action => 'show', :id => @project.id) } end diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index 2642241bf..a10cf15a9 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -2,6 +2,7 @@ <% labelled_tabular_form_for :project, @project, :url => { :action => "create" } do |f| %> <%= render :partial => 'form', :locals => { :f => f } %> -<%= submit_tag l(:button_save) %> +<%= submit_tag l(:button_create) %> +<%= submit_tag l(:button_create_and_continue), :name => 'continue' %> <%= javascript_tag "Form.Element.focus('project_name');" %> <% end %> diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index bc0de15a0..bdff70c22 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -186,6 +186,13 @@ class ProjectsControllerTest < ActionController::TestCase assert_kind_of Project, project assert_equal Project.find(1), project.parent end + + should "continue" do + assert_difference 'Project.count' do + post :create, :project => {:name => "blog", :identifier => "blog"}, :continue => 'Create and continue' + end + assert_redirected_to '/projects/new?' + end end context "by non-admin user with add_project permission" do