32 lines
1.3 KiB
Ruby
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
|