Files
dunlop-core/app/helpers/dunlop/state_badge_helper.rb
T
2018-01-20 13:02:44 -03:00

32 lines
1.3 KiB
Ruby

module Dunlop::StateBadgeHelper
# Display the state badge html for a specific record.
def state_badge(target, options = {})
state_badge = Dunlop::StateBadge.new(self, target, options)
return ''.html_safe unless state_badge.valid?
state_badge.html
end
def workflow_instance_state_badges_for(workflow_instance_class)
output = ""
workflow_instance_class.scope_for(current_user, archived: session[:archived_mode]).sorted_state_count.each do |state, count|
badge = state_badge(workflow_instance_class.new(state: state), state_append_text: " (#{count})", link_to: main_app.polymorphic_path(workflow_instance_class, q: {state_eq: state}))
output << badge
end
output.html_safe
end
def workflow_step_state_badges_for(workflow_step_class)
output = ""
workflow_step_class.scope_for(current_user, archived: session[:archived_mode]).sorted_state_count.each do |state, count|
badge = state_badge workflow_step_class.new(state: state), state_append_text: " (#{count})"
output << badge
end
output.html_safe
end
def show_workflow_progress_of(record)
workflow_steps = record.workflow_steps.select{|workflow_step| can? :read, workflow_step }
workflow_steps.map{|workflow_step| state_badge(workflow_step) }.join.html_safe
end
end