module AgentHelper def agent_show_view(agent) name = agent.short_type.underscore if File.exist?(Rails.root.join("app", "views", "agents", "agent_views", name, "_show.html.erb")) File.join("agents", "agent_views", name, "show") end end def scenario_links(agent) agent.scenarios.map { |scenario| link_to(scenario.name, scenario, class: "label", style: style_colors(scenario)) }.join(" ").html_safe end def agent_show_class(agent) agent.short_type.underscore.dasherize end def agent_schedule(agent, delimiter = ', ') return 'n/a' unless agent.can_be_scheduled? case agent.schedule when nil, 'never' agent_controllers(agent, delimiter) || 'Never' else [ agent.schedule.humanize.titleize, *(agent_controllers(agent, delimiter)) ].join(delimiter).html_safe end end def agent_controllers(agent, delimiter = ', ') if agent.controllers.present? agent.controllers.map { |agent| link_to(agent.name, agent_path(agent)) }.join(delimiter).html_safe end end def agent_dry_run_with_event_mode(agent) case when agent.cannot_receive_events? 'no'.freeze when agent.cannot_be_scheduled? # incoming event is the only trigger for the agent 'yes'.freeze else 'maybe'.freeze end end end