]> source.dussan.org Git - redmine.git/commitdiff
"Create and continue" button for custom fields (#31159).
authorGo MAEDA <maeda@farend.jp>
Tue, 9 Apr 2019 14:53:55 +0000 (14:53 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 9 Apr 2019 14:53:55 +0000 (14:53 +0000)
Patch by Mizuki ISHIKAWA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18054 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/custom_fields_controller.rb
app/views/custom_fields/_form.html.erb
test/functional/custom_fields_controller_test.rb

index ebd4e919872ec8b3a7d8ddb191e9f2d3abb15bcb..7f7beed64116b085c0540f5d50928161c236af23 100644 (file)
@@ -48,7 +48,11 @@ class CustomFieldsController < ApplicationController
     if @custom_field.save
       flash[:notice] = l(:notice_successful_create)
       call_hook(:controller_custom_fields_new_after_save, :params => params, :custom_field => @custom_field)
-      redirect_to edit_custom_field_path(@custom_field)
+      if params[:continue]
+        redirect_to new_custom_field_path({:type => @custom_field.type})
+      else
+        redirect_to edit_custom_field_path(@custom_field)
+      end
     else
       render :action => 'new'
     end
index 1407385053737d9cf1706bfa0564a0639a995195..cac457ce2cb3f439ad3ef627f95e540b91decab1 100644 (file)
 
 <%= call_hook(:view_custom_fields_form_upper_box, :custom_field => @custom_field, :form => f) %>
 </div>
-<p><%= submit_tag l(:button_save) %></p>
+<p>
+  <% if @custom_field.new_record? %>
+    <%= submit_tag l(:button_create) %>
+    <%= submit_tag l(:button_create_and_continue), :name => 'continue' %>
+  <% else %>
+    <%= submit_tag l(:button_save) %>
+  <% end %>
+</p>
 </div>
 
 <div class="splitcontentright">
index c243902e5d5ea693facb216733f1da229c50ef50..e9c5bdf0b621793e1f6cb1789402f24eb9bccfda 100644 (file)
@@ -256,6 +256,20 @@ class CustomFieldsControllerTest < Redmine::ControllerTest
     assert_equal [1, 3], field.projects.map(&:id).sort
   end
 
+  def test_create_with_continue_params
+    assert_difference 'CustomField.count' do
+      post :create, :params => {
+          :type => 'IssueCustomField',
+          :continue => 'Create and Continue',
+          :custom_field => {
+            :name => 'foo',
+            :field_format => 'string'
+          }
+        }
+    end
+    assert_redirected_to '/custom_fields/new?type=IssueCustomField'
+  end
+
   def test_create_with_failure
     assert_no_difference 'CustomField.count' do
       post :create, :params => {