150 lines
2.3 KiB
Ruby
150 lines
2.3 KiB
Ruby
# -*- encoding : utf-8 -*-
|
|
class Admin::SlidesController < ApplicationController
|
|
|
|
before_filter :authenticate_admin!
|
|
load_and_authorize_resource
|
|
|
|
layout "admin"
|
|
|
|
navigation :home_pages
|
|
|
|
|
|
def new
|
|
|
|
@slide = Slide.new(:slider_id => params[:slider_id])
|
|
|
|
@slide.cible = CibleArticle.new()
|
|
|
|
end
|
|
|
|
def create
|
|
|
|
@slides = Slide.order(:position)
|
|
|
|
|
|
|
|
|
|
params[:resource => "slide"]
|
|
|
|
params_content = params[:slide].delete(:cible_attributes)
|
|
content_type = params[:slide][:cible_type]
|
|
|
|
cible_id = params[:slide][:cible_id].to_i if params[:slide][:cible_id].to_i != 0
|
|
|
|
|
|
|
|
if !cible_id
|
|
content = content_type.constantize.new(params_content)
|
|
else
|
|
content = content_type.constantize.find(cible_id)
|
|
|
|
content.attributes = params_content
|
|
end
|
|
|
|
|
|
@slide = Slide.new(params[:slide])
|
|
@slide.cible = content
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if @slide.save
|
|
flash[:notice] = "La slide à bien été créé."
|
|
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
|
|
else
|
|
|
|
respond_to do |format|
|
|
format.js { render :action => :new}
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
def update
|
|
|
|
@slide = Slide.find(params[:id])
|
|
@slides = Slide.order(:position)
|
|
|
|
|
|
|
|
params[:resource => "slide"]
|
|
|
|
params_content = params[:slide].delete(:cible_attributes)
|
|
content_type = params[:slide][:cible_type]
|
|
|
|
cible_id = params[:slide][:cible_id].to_i if params[:slide][:cible_id].to_i != 0
|
|
|
|
puts cible_id.to_i
|
|
|
|
if !cible_id
|
|
content = content_type.constantize.new(params_content)
|
|
else
|
|
content = content_type.constantize.find(cible_id)
|
|
|
|
content.attributes = params_content
|
|
end
|
|
|
|
|
|
|
|
@slide.cible = content
|
|
|
|
|
|
|
|
|
|
|
|
if @slide.update_attributes(params[:slide])
|
|
flash[:notice] = "Le slide à bien été modifiée."
|
|
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
|
|
else
|
|
respond_to do |format|
|
|
format.js { render :action => :edit}
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
def edit
|
|
@slide = Slide.find(params[:id])
|
|
end
|
|
|
|
def show
|
|
@slide = Slide.find(params[:id])
|
|
end
|
|
|
|
def destroy
|
|
@slide = Slide.find(params[:id])
|
|
@slide.destroy
|
|
|
|
|
|
flash[:notice] = "Le slide à bien été supprimée."
|
|
end
|
|
|
|
|
|
def reorder
|
|
i = 0
|
|
params[:slide].each do |slide_id|
|
|
i += 1
|
|
slide = Slide.find(slide_id)
|
|
slide.position = i
|
|
slide.save
|
|
end
|
|
render :inline => "ok"
|
|
end
|
|
|
|
end
|