dawarich/app/controllers/settings/background_jobs_controller.rb

38 lines
1 KiB
Ruby

# frozen_string_literal: true
class Settings::BackgroundJobsController < ApplicationController
before_action :authenticate_user!
before_action :authenticate_admin!, unless: lambda {
%w[start_immich_import start_photoprism_import].include?(params[:job_name])
}
def index
@queues = Sidekiq::Queue.all
end
def create
EnqueueBackgroundJob.perform_later(params[:job_name], current_user.id)
flash.now[:notice] = 'Job was successfully created.'
redirect_path =
case params[:job_name]
when 'start_immich_import', 'start_photoprism_import'
imports_path
else
settings_background_jobs_path
end
redirect_to redirect_path, notice: 'Job was successfully created.'
end
def destroy
# Clear all jobs in the queue, params[:id] contains queue name
queue = Sidekiq::Queue.new(params[:id])
queue.clear
flash.now[:notice] = 'Queue was successfully cleared.'
redirect_to settings_background_jobs_path, notice: 'Queue was successfully cleared.'
end
end