diff --git a/app/helpers/workflows_helper.rb b/app/helpers/workflows_helper.rb
index 62dca80b3..912b8f153 100644
--- a/app/helpers/workflows_helper.rb
+++ b/app/helpers/workflows_helper.rb
@@ -18,13 +18,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
module WorkflowsHelper
+ def field_required?(field)
+ field.is_a?(CustomField) ? field.is_required? : %w(project_id tracker_id subject priority_id).include?(field)
+ end
+
def field_permission_tag(permissions, status, field)
name = field.is_a?(CustomField) ? field.id.to_s : field
- options = [["", ""], [l(:label_readonly), "readonly"], [l(:label_required), "required"]]
-
- if field.is_a?(CustomField) && field.is_required?
- options = [["(#{l(:label_required)})", ""], [l(:label_readonly), "readonly"]]
- end
+ options = [["", ""], [l(:label_readonly), "readonly"]]
+ options << [l(:label_required), "required"] unless field_required?(field)
select_tag("permissions[#{name}][#{status.id}]", options_for_select(options, permissions[status.id][name]))
end
diff --git a/app/views/workflows/permissions.html.erb b/app/views/workflows/permissions.html.erb
index ecfadec02..c5979b0e3 100644
--- a/app/views/workflows/permissions.html.erb
+++ b/app/views/workflows/permissions.html.erb
@@ -58,7 +58,7 @@
<% @fields.each do |field, name| %>
">
|
- <%=h name %>
+ <%=h name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %>
|
<% for status in @statuses -%>
@@ -77,7 +77,7 @@
<% @custom_fields.each do |field| %>
|
">
|
- <%=h field.name %>
+ <%=h field.name %> <%= content_tag('span', '*', :class => 'required') if field_required?(field) %>
|
<% for status in @statuses -%>
diff --git a/test/functional/workflows_controller_test.rb b/test/functional/workflows_controller_test.rb
index 32ac03b97..a7d67822d 100644
--- a/test/functional/workflows_controller_test.rb
+++ b/test/functional/workflows_controller_test.rb
@@ -191,7 +191,7 @@ class WorkflowsControllerTest < ActionController::TestCase
end
end
- def test_get_permissions_with_always_required_custom_field
+ def test_get_permissions_with_required_custom_field_should_not_show_required_option
cf = IssueCustomField.create!(:name => 'Foo', :field_format => 'string', :tracker_ids => [1], :is_required => true)
get :permissions, :role_id => 1, :tracker_id => 1
@@ -201,7 +201,7 @@ class WorkflowsControllerTest < ActionController::TestCase
# Custom field that is always required
# The default option is "(Required)"
assert_select 'select[name=?]', "permissions[#{cf.id}][3]" do
- assert_select 'option[value=]', :text => '(Required)'
+ assert_select 'option[value=]'
assert_select 'option[value=readonly]', :text => 'Read-only'
assert_select 'option[value=required]', 0
end
|