Class: ErpApp::Desktop::JobTracker::BaseController

Inherits:
BaseController show all
Defined in:
app/controllers/erp_app/desktop/job_tracker/base_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#index

Instance Method Details

#jobsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/controllers/erp_app/desktop/job_tracker/base_controller.rb', line 6

def jobs
  sort_hash = params[:sort].blank? ? {} : Hash.symbolize_keys(JSON.parse(params[:sort]).first)
  sort = sort_hash[:property] || 'id'
  dir = sort_hash[:direction] || 'ASC'
  limit = params[:limit] || 15
  start = params[:start] || 0

  job_trackers = ::JobTracker.order("#{sort} #{dir}").offset(start).limit(limit).all
  total_count = ::JobTracker.count(:id)

  render :json => {:total_count => total_count, :success => true,
                   :jobs => job_trackers.collect { |tracker| tracker.to_hash(
                       :only => [:id, :job_name, :job_klass, :run_time],
                       :scheduled => (tracker.scheduled?),
                       :last_run_at => (tracker.last_run_at.nil? ? '' : tracker.last_run_at.utc),
                       :next_run_at => (tracker.next_run_at.nil? ? '' : tracker.next_run_at.utc),
                   ) }}
end

#scheduleObject



25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/controllers/erp_app/desktop/job_tracker/base_controller.rb', line 25

def schedule
  job_tracker = ::JobTracker.find(params[:id])

  job = job_tracker.tracked_job
  unless job
    job_tracker.job_klass.constantize.schedule_job(Time.now)
    job_tracker.next_run_at = job_tracker.tracked_job.run_at
    job_tracker.save
  end

  render :json => {:success => true}
end

#unscheduleObject



38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/erp_app/desktop/job_tracker/base_controller.rb', line 38

def unschedule
  job_tracker = ::JobTracker.find(params[:id])

  job = job_tracker.tracked_job
  job.destroy unless job.nil?

  job_tracker.next_run_at = nil
  job_tracker.save

  render :json => {:success => true}
end