boissier_app/app/controllers/admin/slides_controller.rb
Nicolas Bally 6abf7679fd initial
2011-05-14 13:36:30 +02:00

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