212 lines
4.3 KiB
Ruby
212 lines
4.3 KiB
Ruby
# -*- encoding : utf-8 -*-
|
|
class Admin::ShareImagesController < ApplicationController
|
|
include ActionController::Streaming
|
|
# enable zipline
|
|
include Zipline
|
|
|
|
|
|
|
|
before_filter :auth_admin, :except => [:show]
|
|
|
|
|
|
layout "admin"
|
|
|
|
|
|
def index
|
|
|
|
|
|
|
|
find_share_images
|
|
|
|
|
|
per_page = (params[:per_page] and params[:per_page] != "") ? params[:per_page] : 500
|
|
page = (params[:page] and params[:page] != "") ? params[:page] : 1
|
|
@share_images = @share_images.page(page).per(per_page)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
def new
|
|
|
|
|
|
|
|
@share_image = ShareImage.new()
|
|
@image_files = ImageFile.where(:id => params[:ids].split(",").map(&:to_i))
|
|
|
|
|
|
|
|
end
|
|
|
|
def create
|
|
|
|
@share_image= ShareImage.new(params.require(:share_image).permit!)
|
|
@image_files = ImageFile.where(:id => params[:ids].split(",").map(&:to_i))
|
|
@image_files.each do |image_file|
|
|
@share_image.image_files << image_file
|
|
|
|
end
|
|
|
|
respond_to do |format|
|
|
if @share_image.save
|
|
|
|
format.html {
|
|
|
|
}
|
|
format.js
|
|
|
|
else
|
|
|
|
format.html { render :action => "new" }
|
|
format.js { render :action => "new" }
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
def edit
|
|
|
|
@share_image= ShareImage.find(params[:id])
|
|
|
|
params[:lang] = params[:lang] || "fr"
|
|
|
|
@lang = LangSite.find_by_slug(params[:lang])
|
|
|
|
|
|
@admin = true
|
|
end
|
|
|
|
|
|
def update
|
|
|
|
params[:lang] = params[:lang] || "fr"
|
|
|
|
@lang = LangSite.find_by_slug(params[:lang])
|
|
|
|
@share_image= ShareImage.find(params[:id])
|
|
|
|
|
|
if request.xhr?
|
|
@share_image_parent = @share_image.parent if @share_image.parent
|
|
@share_images = ShareImage.where(:parent_id => @share_image.parent_id)
|
|
end
|
|
|
|
if params[:share_image][:parent_id] and params[:share_image][:parent_id] == "no-menu-selected"
|
|
@share_image.parent_id = nil
|
|
@share_image.save
|
|
params[:share_image].delete(:parent_id)
|
|
|
|
end
|
|
|
|
@reorder = true if params[:reorder]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
if @share_image.update_attributes(params.require(:share_image).permit!)
|
|
|
|
|
|
|
|
flash[:notice] = "Le share_image à été modifié avec succès."
|
|
format.html { redirect_to(admin_share_images_path(:parent_id => @share_image.parent_id)) }
|
|
if @reorder
|
|
|
|
|
|
format.js {
|
|
|
|
render :action => "update" }
|
|
else
|
|
|
|
format.js {
|
|
@share_image = ShareImage.find(@share_image.id)
|
|
}
|
|
end
|
|
else
|
|
|
|
flash[:error] = "Ce share_image n'a pas pu être déplacé."
|
|
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
|
|
|
|
params[:lang] = params[:lang] || "fr"
|
|
|
|
|
|
|
|
@share_image = ShareImage.find(params[:id])
|
|
@share_image.destroy
|
|
flash[:notice] = "Lien supprimé"
|
|
respond_to do |format|
|
|
|
|
|
|
format.html { redirect_to(admin_share_images_path()) }
|
|
format.js
|
|
|
|
|
|
end
|
|
end
|
|
|
|
def show
|
|
@share_image= ShareImage.find_by_slug(params[:id])
|
|
|
|
if @share_image.password? and params[:password] and params[:password].to_s == @share_image.password
|
|
session[:share_image_allowed] = session[:share_image_allowed] || {}
|
|
session[:share_image_allowed][@share_image.slug] = true
|
|
|
|
|
|
|
|
end
|
|
|
|
render :layout => false
|
|
end
|
|
|
|
|
|
def zip
|
|
@share_image= ShareImage.find_by_slug(params[:id])
|
|
|
|
if @share_image.password? and params[:password] and params[:password].to_s == @share_image.password
|
|
session[:share_image_allowed] = session[:share_image_allowed] || {}
|
|
session[:share_image_allowed][@share_image.slug] = true
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
files = []
|
|
|
|
@share_image.image_files.each do |image_file|
|
|
files << [File.open(image_file.file.current_path), image_file.id.to_s+File.extname(image_file.file.current_path) ]
|
|
|
|
end
|
|
|
|
puts files
|
|
|
|
zipline( files, @share_image.slug+'.zip')
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
end
|