class Wco::PhotosController

def destroy

def destroy
  authorize! :destroy, Wco::Photo
  if params[:id]
    @photos = [ Wco::Photo.unscoped.find( params[:id] ) ]
  elsif params[:ids]
    @photos = Wco::Photo.where( :id.in => params[:ids] )
  end
  outs = []
  @photos.map do |photo|
    photo.gallery.touch if photo.gallery
    outs.push photo.delete
  end
  flash_notice "Outcomes: #{outs}"
  redirect_to request.referrer || root_path
end

def index

def index
  authorize! :index, Wco::Photo
  @photos = Wco::Photo.where( user_profile: @current_profile ).page( params[:photos_page] )
end

def j_create

def j_create
  if params[:slug]
    gallery = Wco::Gallery.unscoped.where( :slug => params[:slug] ).first
    gallery ||= Wco::Gallery.unscoped.find params[:slug]
  elsif params[:gallery_id]
    gallery = Wco::Gallery.unscoped.find( params[:gallery_id] )
    gallery ||= Wco::Gallery.unscoped.where( :slug => params[:gallery_id] ).first
  end
  authorize! :create_photo, gallery
  @photo = Wco::Photo.new params[:photo].permit!
  @photo.is_public = true
  @photo.gallery = gallery
  @photo.gallery.touch
  if @photo.save
    j = {
      :name => @photo.photo.original_filename,
      :size => @photo.photo.size,
      :url => @photo.photo.url( :large ),
      :thumbnail_url => @photo.photo.url( :thumb ),
      :delete_url => photo_path(@photo),
      :delete_type => 'DELETE'
    }
    render :json => [ j ]
  else
    render :json => {
      message: @photo.errors.full_messages.join(", "),
      filename: @photo.photo.original_filename,
    }, status: 400
  end
end

def move

def move
  authorize! :move, Wco::Photo
  photos  = Wco::Photo.where({ :id.in => params[:ids] })
  if params['delete'] == '1'
    flash_notice 'deleting'
    flag = photos.map &:delete
  else
    flag = photos.update_all({ gallery_id: params[:gallery_id] })
    flash_notice 'moving'
  end
  flash_notice flag
  redirect_to request.referrer
end

def new

def new
  authorize! :new, Wco::Photo
  @photo = Wco::Photo.new
end

def show

def show
  @photo = Wco::Photo.unscoped.find params[:id]
  authorize! :show, @photo
end

def without_gallery

def without_gallery
  @photos = Wco::Photo.unscoped.where( :gallery => nil, :is_trash => false )
end