1 class OriginalPicturesController < ApplicationController
2 before_filter :authenticate_user!, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
3 before_filter :authenticate_admin!, :only => [:list, :browse]
4 before_filter :authenticate_artist, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
10 if (f = prm[:original_picture][:file]).respond_to?(:read)
12 @original_picture.width = 0
13 @original_picture.height = 0
14 @original_picture.ext = 'none'
15 @original_picture.filesize = 1.megabytes
17 img = Magick::Image.from_blob(f.read).shift
18 @original_picture.width = img.columns
19 @original_picture.height = img.rows
20 @original_picture.ext = img.format.downcase
21 @original_picture.filesize = f.size
24 dat = Base64.decode64(prm[:original_picture][:file].to_s.gsub(' ', '+')) #rubyのバグ?+でデコードされるべきキャラがスペースになる
25 img = Magick::Image.from_blob(dat).shift
26 @original_picture.width = img.columns
27 @original_picture.height = img.rows
28 @original_picture.ext = img.format.downcase
29 @original_picture.filesize = 1000
34 def authenticate_artist
38 respond_to do |format|
39 format.html { redirect_to new_artist_path, :status => :found }
40 format.js { render "artists/new" }
42 raise ActiveRecord::Forbidden
51 # GET /original_pictures
52 # GET /original_pictures.json
54 @page = OriginalPicture.page params[:page]
55 @page_size = OriginalPicture.page_size params[:page_size]
56 @original_pictures = OriginalPicture.list(@artist.id, {}, @page, @page_size)
58 respond_to do |format|
59 format.html # index.html.erb
60 format.json { render json: @original_pictures.to_json(OriginalPicture.list_json_opt) }
64 # GET /original_pictures/1
65 # GET /original_pictures/1.json
67 @original_picture = OriginalPicture.show(params[:id], @author)
68 # if params[:subdir] == 'refresh'
73 respond_to do |format|
74 opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
75 format.png { send_data(@original_picture.restore, opt ) }
76 format.gif { send_data(@original_picture.restore, opt ) }
77 format.jpeg { send_data(@original_picture.restore, opt ) }
78 format.html # show.html.erb
79 format.json { render json: @original_picture}
84 @original_pictures = OriginalPicture.all
86 respond_to do |format|
87 format.html { render layout: 'system' }
88 format.json { render json: @original_pictures }
93 @original_picture = OriginalPicture.find(params[:id])
95 respond_to do |format|
96 format.html { render layout: 'system' }
97 format.json { render json: @original_picture }
102 @original_picture = OriginalPicture.find(params[:id])
103 img = Magick::Image.from_blob(@original_picture.restore).shift
104 @original_picture.store img
105 respond_to do |format|
106 format.html { redirect_to original_pictures_url }
110 # GET /original_pictures/new
111 # GET /original_pictures/new.json
113 @original_picture = OriginalPicture.new
114 @original_picture.supply_default @artist
116 respond_to do |format|
117 format.html # new.html.erb
119 format.json { render json: @original_picture }
123 # GET /original_pictures/1/edit
125 @original_picture = OriginalPicture.show(params[:id], @author)
126 respond_to do |format|
132 # POST /original_pictures
133 # POST /original_pictures.json
135 @original_picture = OriginalPicture.new
136 img = set_image params
137 @original_picture.artist_id = @author.artist.id
138 @original_picture.license_id = @author.artist.default_license_id
140 respond_to do |format|
141 OriginalPicture.transaction do
142 if @original_picture.save
143 if @original_picture.store(img)
144 format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' }
145 format.json { render json: @original_picture, status: :created, location: @original_picture }
147 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
148 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
151 format.html { render action: "new" }
152 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
158 # PUT /original_pictures/1
159 # PUT /original_pictures/1.json
161 @original_picture = OriginalPicture.show(params[:id], @author)
162 img = set_image params
164 respond_to do |format|
165 OriginalPicture.transaction do
166 if @original_picture.save
167 if @original_picture.store(img)
168 format.html { redirect_to @original_picture, notice: 'Original picture was successfully updated.' }
169 format.json { head :ok }
171 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
172 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
175 format.html { render action: "edit" }
176 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
182 # DELETE /original_pictures/1
183 # DELETE /original_pictures/1.json
185 @original_picture = OriginalPicture.find(params[:id], @author)
186 OriginalPicture.transaction do
187 @original_picture.destroy
190 respond_to do |format|
191 format.html { redirect_to original_pictures_url }
192 format.json { head :ok }