Moving a custom field value in the order switches in the edit view (#21535).

git-svn-id: http://svn.redmine.org/redmine/trunk@14985 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2015-12-20 10:40:30 +00:00
parent 48afc0b151
commit 227594481e
3 changed files with 41 additions and 2 deletions

View File

@@ -56,7 +56,7 @@ class CustomFieldsController < ApplicationController
if @custom_field.update_attributes(params[:custom_field]) if @custom_field.update_attributes(params[:custom_field])
flash[:notice] = l(:notice_successful_update) flash[:notice] = l(:notice_successful_update)
call_hook(:controller_custom_fields_edit_after_save, :params => params, :custom_field => @custom_field) 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 else
render :action => 'edit' render :action => 'edit'
end end

View File

@@ -12,6 +12,7 @@
</tr></thead> </tr></thead>
<tbody> <tbody>
<% (@custom_fields_by_type[tab[:name]] || []).sort.each do |custom_field| -%> <% (@custom_fields_by_type[tab[:name]] || []).sort.each do |custom_field| -%>
<% back_url = custom_fields_path(:tab => tab[:name]) %>
<tr class="<%= cycle("odd", "even") %>"> <tr class="<%= cycle("odd", "even") %>">
<td class="name"><%= link_to custom_field.name, edit_custom_field_path(custom_field) %></td> <td class="name"><%= link_to custom_field.name, edit_custom_field_path(custom_field) %></td>
<td><%= l(custom_field.format.label) %></td> <td><%= l(custom_field.format.label) %></td>
@@ -20,7 +21,7 @@
<td><%= checked_image custom_field.is_for_all? %></td> <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> <td><%= l(:label_x_projects, :count => custom_field.projects.count) if custom_field.is_a? IssueCustomField and !custom_field.is_for_all? %></td>
<% end %> <% 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"> <td class="buttons">
<%= delete_link custom_field_path(custom_field) %> <%= delete_link custom_field_path(custom_field) %>
</td> </td>

View File

@@ -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