health_check/app/controllers/admin/health_check_monitors_contr...

67 lines
1.8 KiB
Ruby

class Admin::HealthCheckMonitorsController < OrbitAdminController
before_action ->(module_app = @app_title) { set_variables module_app }
before_action :set_monitor, only: [:show, :edit, :update, :destroy, :manual_check, :logs, :clean_logs]
def index
@monitors = HealthCheckMonitor.all.desc(:created_at).page(params[:page]).per(10)
render :partial => "index" if request.xhr?
end
def show
redirect_to logs_admin_health_check_monitor_path(@monitor)
end
def new
session[:return_to] = request.referer
@monitor = HealthCheckMonitor.new
end
def create
@monitor = HealthCheckMonitor.new(monitor_params)
@monitor.create_user_id = current_user.id
@monitor.update_user_id = current_user.id
@monitor.save
redirect_to session.delete(:return_to) || admin_health_check_monitors_path
end
def edit
session[:return_to] = request.referer
end
def update
@monitor.update_attributes(monitor_params)
@monitor.update_user_id = current_user.id
@monitor.save
redirect_to session.delete(:return_to) || admin_health_check_monitors_path
end
def destroy
@monitor.destroy
redirect_to admin_health_check_monitors_path
end
def manual_check
@monitor.update_attributes(:check_now => true)
redirect_to logs_admin_health_check_monitor_path(@monitor)
end
def logs
@logs = HealthCheckLog.where(:health_check_monitor_id => @monitor.id).desc(:created_at).page(params[:page]).per(20)
end
def clean_logs
HealthCheckLog.where(:health_check_monitor_id => @monitor.id).destroy_all
redirect_to logs_admin_health_check_monitor_path(@monitor)
end
private
def set_monitor
@monitor = HealthCheckMonitor.find(params[:id])
end
def monitor_params
params.require(:health_check_monitor).permit!
end
end