69 lines
1.5 KiB
Ruby
69 lines
1.5 KiB
Ruby
class Admin::BannersController < Admin::BaseController
|
|
include Translatable
|
|
|
|
has_filters %w[all with_active with_inactive], only: :index
|
|
|
|
before_action :banner_sections, only: [:edit, :new, :create, :update]
|
|
|
|
respond_to :html, :js
|
|
|
|
load_and_authorize_resource
|
|
|
|
def index
|
|
@banners = Banner.send(@current_filter).page(params[:page])
|
|
end
|
|
|
|
def create
|
|
@banner = Banner.new(banner_params)
|
|
if @banner.save
|
|
redirect_to admin_banners_path
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @banner.update(banner_params)
|
|
redirect_to admin_banners_path
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@banner.destroy
|
|
redirect_to admin_banners_path
|
|
end
|
|
|
|
private
|
|
|
|
def banner_params
|
|
attributes = [:target_url, :post_started_at, :post_ended_at,
|
|
:background_color, :font_color,
|
|
translation_params(Banner),
|
|
web_section_ids: []]
|
|
params.require(:banner).permit(*attributes)
|
|
end
|
|
|
|
def banner_styles
|
|
@banner_styles = Setting.all.banner_style.map do |banner_style|
|
|
[banner_style.value, banner_style.key.split(".")[1]]
|
|
end
|
|
end
|
|
|
|
def banner_imgs
|
|
@banner_imgs = Setting.all.banner_img.map do |banner_img|
|
|
[banner_img.value, banner_img.key.split(".")[1]]
|
|
end
|
|
end
|
|
|
|
def banner_sections
|
|
@banner_sections = WebSection.all
|
|
end
|
|
|
|
def resource
|
|
@banner = Banner.find(params[:id]) unless @banner
|
|
@banner
|
|
end
|
|
end
|