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])
68 # if params[:subdir] == 'refresh'
73 respond_to do |format|
74 if @original_picture.own?(@author)
75 opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
76 format.png { send_data(@original_picture.restore, opt ) }
77 format.gif { send_data(@original_picture.restore, opt ) }
78 format.jpeg { send_data(@original_picture.restore, opt ) }
79 format.html # show.html.erb
80 format.json { render json: @original_picture}
82 raise ActiveRecord::Forbidden
88 @original_pictures = OriginalPicture.all
90 respond_to do |format|
91 format.html { render layout: 'system' }
92 format.json { render json: @original_pictures }
97 @original_picture = OriginalPicture.find(params[:id])
99 respond_to do |format|
100 format.html { render layout: 'system' }
101 format.json { render json: @original_picture }
106 @original_picture = OriginalPicture.find(params[:id])
107 img = Magick::Image.from_blob(@original_picture.restore).shift
108 @original_picture.store img
109 respond_to do |format|
110 format.html { redirect_to original_pictures_url }
114 # GET /original_pictures/new
115 # GET /original_pictures/new.json
117 @original_picture = OriginalPicture.new
118 @original_picture.supply_default @artist
120 respond_to do |format|
121 format.html # new.html.erb
123 format.json { render json: @original_picture }
127 # GET /original_pictures/1/edit
129 @original_picture = OriginalPicture.show(params[:id])
130 raise ActiveRecord::Forbidden unless @original_picture.own?(@author)
131 respond_to do |format|
137 # POST /original_pictures
138 # POST /original_pictures.json
140 @original_picture = OriginalPicture.new
141 img = set_image params
142 @original_picture.artist_id = @author.artist.id
143 @original_picture.license_id = @author.artist.default_license_id
145 respond_to do |format|
146 OriginalPicture.transaction do
147 if @original_picture.save
148 if @original_picture.store(img)
149 format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' }
150 format.json { render json: @original_picture, status: :created, location: @original_picture }
152 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
153 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
156 format.html { render action: "new" }
157 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
163 # PUT /original_pictures/1
164 # PUT /original_pictures/1.json
166 @original_picture = OriginalPicture.show(params[:id])
167 raise ActiveRecord::Forbidden unless @original_picture.own?(@author)
168 img = set_image params
170 respond_to do |format|
171 OriginalPicture.transaction do
172 if @original_picture.save
173 if @original_picture.store(img)
174 format.html { redirect_to @original_picture, notice: 'Original picture was successfully updated.' }
175 format.json { head :ok }
177 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
178 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
181 format.html { render action: "edit" }
182 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
188 # DELETE /original_pictures/1
189 # DELETE /original_pictures/1.json
191 @original_picture = OriginalPicture.find(params[:id])
192 raise ActiveRecord::Forbidden unless @original_picture.own?(@author)
193 OriginalPicture.transaction do
194 @original_picture.destroy
197 respond_to do |format|
198 format.html { redirect_to original_pictures_url }
199 format.json { head :ok }