images_controller.rb
1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
module Kanjai
class Admin::ImagesController < AdminController
before_action :generate_s3_options, only: [:index, :edit, :get_gallery]
def index
end
def list
collection = Kanjai::Image.all
if params[:tags] && params[:tags].count > 0 && !params[:tags].include?('all')
collection = collection.tagged_with(params[:tags], :any => true)
end
render partial: 'kanjai/admin/images/gallery_exist_images', locals: {collection: collection}
end
def edit
@file = Kanjai::Image.find(params[:id])
render layout: false
end
def update
@file = Kanjai::Image.find(params[:id])
if @file.update(permitted_params[:image])
@file.resize! if params[:image] && params[:image][:image_link].present?
render json: {status: 'ok', id: @file.id, link: @file.preview_link}
else
render json: {status: 'error', message: @file.errors.full_message}
end
end
def update_gallery
params[:gallery_image] ||= {}
params[:gallery_image].each do |key, data|
obj = S3_BUCKET.object(data['file'].split('/')[3..-1].join('/'))
image = Image.create({
title: data['name'],
file_type: data['type'],
file_size: obj.content_length,
image_link: data['file'],
tag_list: data['tags']
})
image.resize!
end
end
def delete_gallery_image
@image = Image.find(params[:id])
@image.destroy
render json: {status: 'ok', id: @image.id}
end
def get_gallery
@collection = Image.where(file_type: Kanjai::Image::IMAGE_MIME_TYPE)
render :layout => false
end
private
def generate_s3_options
@s3_direct_post = S3_BUCKET.presigned_post(key: "#{Image.get_image_file_path}${filename}", success_action_status: '201', acl: 'public-read')
end
def permitted_params
params.permit(:image => [:title, :tag_list, :image_link, :file_type])
end
end
end