]> source.dussan.org Git - redmine.git/commitdiff
Moving a custom field value in the order switches in the edit view (#21535).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Dec 2015 10:40:30 +0000 (10:40 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Dec 2015 10:40:30 +0000 (10:40 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@14985 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/custom_fields_controller.rb
app/views/custom_fields/_index.html.erb
test/ui/custom_fields_test_ui.rb [new file with mode: 0644]

index 169e93c29b16f2a59b5d618cc5615ba76554f9de..aa9c6aff0f205dd0175edb6c90ac91894357559b 100644 (file)
@@ -56,7 +56,7 @@ class CustomFieldsController < ApplicationController
     if @custom_field.update_attributes(params[:custom_field])
       flash[:notice] = l(:notice_successful_update)
       call_hook(:controller_custom_fields_edit_after_save, :params => params, :custom_field => @custom_field)
-      redirect_to edit_custom_field_path(@custom_field)
+      redirect_back_or_default edit_custom_field_path(@custom_field)
     else
       render :action => 'edit'
     end
index 858665e93d298d0c98e54205b8ddb9a80b03cf9b..b0d3c277b20ae68c824c9e96162409998db50feb 100644 (file)
@@ -12,6 +12,7 @@
   </tr></thead>
   <tbody>
   <% (@custom_fields_by_type[tab[:name]] || []).sort.each do |custom_field| -%>
+    <% back_url = custom_fields_path(:tab => tab[:name]) %>
     <tr class="<%= cycle("odd", "even") %>">
       <td class="name"><%= link_to custom_field.name, edit_custom_field_path(custom_field) %></td>
       <td><%= l(custom_field.format.label) %></td>
@@ -20,7 +21,7 @@
       <td><%= checked_image custom_field.is_for_all? %></td>
       <td><%= l(:label_x_projects, :count => custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
       <% end %>
-      <td class="reorder"><%= reorder_links('custom_field', {:action => 'update', :id => custom_field}, :put) %></td>
+      <td class="reorder"><%= reorder_links('custom_field', {:action => 'update', :id => custom_field, :back_url => back_url}, :put) %></td>
       <td class="buttons">
         <%= delete_link custom_field_path(custom_field) %>
       </td>
diff --git a/test/ui/custom_fields_test_ui.rb b/test/ui/custom_fields_test_ui.rb
new file mode 100644 (file)
index 0000000..7a2c391
--- /dev/null
@@ -0,0 +1,38 @@
+# Redmine - project management software
+# Copyright (C) 2006-2015  Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+require File.expand_path('../base', __FILE__)
+
+class Redmine::UiTest::CustomFieldsTest < Redmine::UiTest::Base
+  fixtures :projects, :users, :email_addresses, :roles, :members, :member_roles,
+           :trackers, :projects_trackers, :enabled_modules, 
+           :custom_fields, :custom_values, :custom_fields_trackers
+
+  def test_reordering_should_redirect_to_index
+    assert_equal 1, UserCustomField.find(4).position
+    log_user 'admin', 'admin'
+    visit '/custom_fields'
+
+    # click 'User' tab
+    page.first('a#tab-UserCustomField').click
+    # click 'Move down' link on the first row
+    page.first('td.reorder a:nth-child(3)').click
+
+    assert_equal "/custom_fields?tab=UserCustomField", URI.parse(current_url).request_uri
+    assert_equal 2, UserCustomField.find(4).position
+  end
+end