Module: WorkflowsHelper
- Defined in:
- app/helpers/workflows_helper.rb
Overview
Redmine - project management software Copyright (C) 2006-2017 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.
Instance Method Summary collapse
- #field_permission_tag(permissions, status, field, roles) ⇒ Object
- #field_required?(field) ⇒ Boolean
- #options_for_workflow_select(name, objects, selected, options = {}) ⇒ Object
- #transition_tag(workflows, old_status, new_status, name) ⇒ Object
Instance Method Details
#field_permission_tag(permissions, status, field, roles) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/helpers/workflows_helper.rb', line 49 def (, status, field, roles) name = field.is_a?(CustomField) ? field.id.to_s : field = [["", ""], [l(:label_readonly), "readonly"]] << [l(:label_required), "required"] unless field_required?(field) = {} if perm = [status.id][name] if perm.uniq.size > 1 || perm.size < @roles.size * @trackers.size << [l(:label_no_change_option), "no_change"] selected = 'no_change' else selected = perm.first end end hidden = field.is_a?(CustomField) && !field.visible? && !roles.detect {|role| role.custom_fields.to_a.include?(field)} if hidden [0][0] = l(:label_hidden) selected = '' [:disabled] = true end select_tag("permissions[#{status.id}][#{name}]", (, selected), ) end |
#field_required?(field) ⇒ Boolean
45 46 47 |
# File 'app/helpers/workflows_helper.rb', line 45 def field_required?(field) field.is_a?(CustomField) ? field.is_required? : %w(project_id tracker_id subject priority_id is_private).include?(field) end |
#options_for_workflow_select(name, objects, selected, options = {}) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'app/helpers/workflows_helper.rb', line 21 def (name, objects, selected, ={}) = ''.html_safe multiple = false if selected if selected.size == objects.size selected = 'all' else selected = selected.map(&:id) if selected.size > 1 multiple = true end end else selected = objects.first.try(:id) end = {:value => 'all', :selected => (selected == 'all')} if multiple .merge!(:style => "display:none;") end << content_tag('option', l(:label_all), ) << (objects, "id", "name", selected) select_tag name, , {:multiple => multiple}.merge() end |
#transition_tag(workflows, old_status, new_status, name) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'app/helpers/workflows_helper.rb', line 77 def transition_tag(workflows, old_status, new_status, name) w = workflows.select {|w| w.old_status == old_status && w.new_status == new_status}.size tag_name = "transitions[#{ old_status.try(:id) || 0 }][#{new_status.id}][#{name}]" if old_status == new_status check_box_tag(tag_name, "1", true, {:disabled => true, :class => "old-status-#{old_status.try(:id) || 0} new-status-#{new_status.id}"}) elsif w == 0 || w == @roles.size * @trackers.size hidden_field_tag(tag_name, "0", :id => nil) + check_box_tag(tag_name, "1", w != 0, :class => "old-status-#{old_status.try(:id) || 0} new-status-#{new_status.id}") else select_tag tag_name, ([ [l(:general_text_Yes), "1"], [l(:general_text_No), "0"], [l(:label_no_change_option), "no_change"] ], "no_change") end end |