Adds option for displaying all statuses on workflow permissions.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9995 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-07-15 15:46:14 +00:00
parent 712e5be29f
commit a7bdc5e0af
3 changed files with 22 additions and 9 deletions

View File

@ -62,17 +62,19 @@ class WorkflowsController < ApplicationController
@role = Role.find_by_id(params[:role_id]) if params[:role_id]
@tracker = Tracker.find_by_id(params[:tracker_id]) if params[:tracker_id]
if @role && @tracker
if request.post?
WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {})
redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker
return
end
if request.post? && @role && @tracker
WorkflowPermission.replace_permissions(@tracker, @role, params[:permissions] || {})
redirect_to :action => 'permissions', :role_id => @role, :tracker_id => @tracker
return
end
@used_statuses_only = (params[:used_statuses_only] == '0' ? false : true)
if @tracker && @used_statuses_only && @tracker.issue_statuses.any?
@statuses = @tracker.issue_statuses
if @statuses.empty?
@statuses = IssueStatus.sorted.all
end
end
@statuses ||= IssueStatus.sorted.all
if @role && @tracker
@fields = (Tracker::CORE_FIELDS_ALL - @tracker.disabled_core_fields).map {|field| [field, l("field_"+field.sub(/_id$/, ''))]}
@custom_fields = @tracker.custom_fields

View File

@ -20,6 +20,9 @@
<%= select_tag 'tracker_id', options_from_collection_for_select(@trackers, "id", "name", @tracker && @tracker.id) %></label>
<%= submit_tag l(:button_edit), :name => nil %>
<%= hidden_field_tag 'used_statuses_only', '0' %>
<label><%= check_box_tag 'used_statuses_only', '1', @used_statuses_only %> <%= l(:label_display_used_statuses_only) %></label>
</p>
<% end %>

View File

@ -191,6 +191,14 @@ class WorkflowsControllerTest < ActionController::TestCase
end
end
def test_get_permissions_with_role_and_tracker_and_all_statuses
WorkflowTransition.delete_all
get :permissions, :role_id => 1, :tracker_id => 2, :used_statuses_only => '0'
assert_response :success
assert_equal IssueStatus.sorted.all, assigns(:statuses)
end
def test_post_permissions
WorkflowPermission.delete_all