Sha256: c7f86395094a378b60ec28810a3cbc6fe1f7eeec35356c05df67e9092ae6b573

Contents?: true

Size: 1.51 KB

Versions: 2

Compression:

Stored size: 1.51 KB

Contents

module RocketJobMissionControl
  module JobsHelper
    STATE_ICON_MAP = {
      queued:    'fa-bed warning',
      paused:    'fa-pause warning',
      running:   'fa-cog fa-spin primary',
      completed: 'fa-check success',
      aborted:   'fa-times warning',
    }

    STATE_CLASS_MAP = {
      queued:    'warning',
      paused:    'warning',
      running:   'primary',
      completed: 'success',
      aborted:   'danger',
      failed:    'danger',
    }

    def job_state_icon(state)
      STATE_ICON_MAP[state.to_sym] || 'fa-times danger'
    end

    def job_class(job)
      STATE_CLASS_MAP[job.state.to_sym] || ""
    end

    def pretty_print_array_or_hash(arguments)
      return arguments unless arguments.kind_of?(Array) || arguments.kind_of?(Hash)
      json_string_options = {space: ' ', indent: '  ', array_nl: '<br />', object_nl: '<br />'}
      JSON.generate(arguments, json_string_options).html_safe
    end

    def job_card_class(job)
      map = {
        running:   'callout-info',
        completed: 'callout-success',
        failed:    'callout-alert',
        aborted:   'callout-warning',
      }
      "card callout " << map[job.state.to_sym].to_s
    end

    def job_selected_class(job, selected_job = nil)
      if selected_job.present? && job.id == selected_job.id
        ' text-info'
      else
        ' text-muted'
      end
    end

    def job_title(job)
      perform_method = job.perform_method == :perform ? '' : "##{job.perform_method}"
      "#{job.class.name}#{perform_method}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rocketjob_mission_control-1.0.0 app/helpers/rocket_job_mission_control/jobs_helper.rb
rocketjob_mission_control-0.9.2 app/helpers/rocket_job_mission_control/jobs_helper.rb