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