Sha256: 6dc60cb872eb6f4b5fe72765750af01ab6aa5bc1d587da0bc7e332fc94ddf5a2

Contents?: true

Size: 725 Bytes

Versions: 1

Compression:

Stored size: 725 Bytes

Contents

module RocketJobMissionControl
  class ScheduledJobsDatatable < JobsDatatable
    private

    def data
      jobs.map do |job|
        {
          '0' => class_with_link(job),
          '1' => h(job.description.try(:truncate, 50)),
          '2' => h(time_till_run(job)),
          '3' => h(cron_schedule(job)),
          'DT_RowClass' => "card callout callout-#{job.state}"
        }
      end
    end

    def sort_column(index)
      columns = %w[_type description run_at cron_schedule]
      columns[index.to_i]
    end

    def time_till_run(job)
      RocketJob.seconds_as_duration(job.run_at - Time.now)
    end

    def cron_schedule(job)
      job.cron_schedule if job.respond_to?(:cron_schedule)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rocketjob_mission_control-2.0.0.rc1 app/datatables/rocket_job_mission_control/scheduled_jobs_datatable.rb