negos_app/app/controllers/admin/annonce_cats_controller.rb
2016-02-16 21:09:48 +01:00

171 lines
3.1 KiB
Ruby
Executable File

# -*- encoding : utf-8 -*-
class Admin::AnnonceCatsController < ApplicationController
before_filter :auth_admin
layout "admin"
before_filter :find_annonce_cats
def index
end
def reorder
i = 1
params[:annonce_cats_ids].each do |id|
annonce_cat = AnnonceCat.find(id)
annonce_cat.position = i
puts i
annonce_cat.update_attributes :position => i
i = i + 1
end
if params[:menu_id] and params[:menu_id] != "" and @menu = Menu.find(params[:menu_id])
find_annonce_cats
end
flash[:success] = "Menus réorganisés avec succcès."
end
def cible
@annonce_cats = AnnonceCat.all
render :layout => false
end
def new
@annonce_cat = AnnonceCat.new(:parent_id => params[:parent_id])
end
def edit
@annonce_cat = AnnonceCat.find(params[:id])
end
def create
@annonce_cat = AnnonceCat.new(params.require(:annonce_cat).permit!)
if @annonce_cat.save
params[:parent_id] =@annonce_cat.parent_id
self.find_annonce_cats
flash[:notice] = "La catégorie à été ajouté avec succès."
else
render :action => "new"
end
end
def update
@annonce_cat = AnnonceCat.find(params[:id])
if request.xhr?
@annonce_cat_parent = @annonce_cat.parent if @annonce_cat.parent
@annonce_cats = AnnonceCat.where(:parent_id => @annonce_cat.parent_id).order(:position)
end
if params[:annonce_cat][:parent_id] and params[:annonce_cat][:parent_id] == "no-menu-selected"
params[:annonce_cat][:parent_id] = nil
end
@reorder = true if params[:reorder]
respond_to do |format|
if @annonce_cat.update_attributes(params.require(:annonce_cat).permit!)
#AnnonceCat.all.each do |mi|
# mi.set_permalink
#end
flash[:notice] = "Le menu à été modifié avec succès."
format.html { redirect_to(admin_annonce_cats_path(:parent_id => @annonce_cat.parent_id)) }
if @reorder
format.js {
render :action => "update" }
else
format.js {
@annonce_cat = AnnonceCat.find(@annonce_cat.id)
render :action => "update_row" }
end
else
flash[:error] = "Cet élément de menu n'a pas pu être déplacé. Vérifiez que son lien permanent n'éxiste pas déjà dans l'élément cible."
if @reorder
format.js { render :action => "update_reorder_failled" }
else
format.html { render :action => "edit" }
format.js { render :action => "edit" }
end
end
end
end
def destroy
@annonce_cat = AnnonceCat.find(params[:id])
params[:parent_id] = @annonce_cat.parent_id
@annonce_cat.destroy
find_annonce_cats
flash[:notice] = "La catégorie à bien été supprimée."
end
protected
def find_annonce_cats
params[:parent_id] = nil if !params[:parent_id] or params[:parent_id] == ""
@annonce_cat_parent = AnnonceCat.find(params[:parent_id]) if params[:parent_id]
@annonce_cats = AnnonceCat.where(:parent_id => params[:parent_id]).order("position ASC")
end
end