class Admin::ImagesController < OrbitAdminController before_filter :setup_vars def crop_process end def batch_crop images = params['image_ids'].split(',') @img = [] images.each do |image| @img << AlbumImage.find(image) end render 'batch_crop' end def edit @image = AlbumImage.find(params[:id]) render 'edit_image' end def show @image = AlbumImage.find(params[:id]) @albumid = @image.album_id @album = Album.find(@albumid) @images = @album.album_images.asc(:order) end def changeorder type = params[:type] if type == "imgholder" album = Album.find(params[:album_id]) rescue nil images = params[:imageids] operations = [] images.each_with_index.reverse_each do |image, i| next if image.blank? oid = begin; BSON::ObjectId(image); rescue; nil; end next if oid.nil? operations << { update_one: { filter: { _id: oid }, update: { "$set" => { order: i } } } } end AlbumImage.collection.bulk_write(operations) if operations.any? if album album.update(:min_order=>-1) end elsif type == "orbit_gallery" albums = params[:imageids] operations = [] albums.each_with_index.reverse_each do |albumid, i| next if albumid.blank? oid = begin; BSON::ObjectId(albumid); rescue; nil; end next if oid.nil? operations << { update_one: { filter: { _id: oid }, update: { "$set" => { order: i } } } } end Album.collection.bulk_write(operations) if operations.any? AlbumSetting.update_all(:min_order=>-1) end render :json => {"success" => true}.to_json end def delete_photos images = params['images'] images.each do |image| img = AlbumImage.find(image) img.destroy begin FileUtils.rm_rf(File.dirname(img.file.path)) rescue => e puts ["can't delete",e] end end if params['delete_cover'] == "true" album = Album.find(params['album_id']) album.update_attributes(:cover=>"default",:cover_path => nil) end render :json =>{"success"=>true}.to_json end def image_tagging images = params[:image_ids] tags = params[:tag_ids] || [] i = nil images.each do |image| img = AlbumImage.find(image) img.tags = tags img.save i = img end @album = Album.find(i.album_id.to_s) @images = @album.album_images @image_content = [] @images.each do |image| @image_content << {"id" => image.id.to_s, "description" => image.description_translations,"tags" => image.tags.collect{|t| t.id.to_s}} end render :json=>{"galleries" => @image_content}.to_json end def update_image image = AlbumImage.find(params[:image_id]) image.update_attributes(update_params) image.save! @album = Album.find(image.album_id.to_s) @images = @album.album_images @image_content = [] @images.each do |image| @image_content << {"id" => image.id.to_s, "description" => image.description_translations,"tags" => image.tags.collect{|t| t.id.to_s}} end render :json=>{"galleries" => @image_content}.to_json end private def setup_vars @module_app = ModuleApp.where(:key=>"gallery").first end def update_params params.require(:album_image).permit! end end