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]
9 if (f = prm[:original_picture][:file]).respond_to?(:read)
11 @original_picture.width = 0
12 @original_picture.height = 0
13 @original_picture.ext = 'none'
14 @original_picture.filesize = 1.megabytes
16 img = Magick::Image.from_blob(f.read).shift
17 @original_picture.width = img.columns
18 @original_picture.height = img.rows
19 @original_picture.ext = img.format.downcase
20 @original_picture.filesize = f.size
23 dat = Base64.decode64(prm[:original_picture][:file].to_s.gsub(' ', '+')) #rubyのバグ?+でデコードされるべきキャラがスペースになる
24 img = Magick::Image.from_blob(dat).shift
25 @original_picture.width = img.columns
26 @original_picture.height = img.rows
27 @original_picture.ext = img.format.downcase
28 @original_picture.filesize = 1000
35 # GET /original_pictures
36 # GET /original_pictures.json
38 @original_pictures = OriginalPicture.find(:all,
39 :include => [:artist, :license, :resource_picture], :order => 'updated_at', :limit => 20
42 respond_to do |format|
43 format.html # index.html.erb
44 format.json { render :json => @original_pictures.to_json(
45 :include => [:resource_picture, :artist, :license]
50 # GET /original_pictures/1
51 # GET /original_pictures/1.json
53 @original_picture = OriginalPicture.find(params[:id])
54 # if params[:subdir] == 'refresh'
59 respond_to do |format|
60 opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
61 format.png { send_data(@original_picture.restore, opt ) }
62 format.gif { send_data(@original_picture.restore, opt ) }
63 format.jpeg { send_data(@original_picture.restore, opt ) }
64 format.html # show.html.erb
65 format.json { render json: @original_picture}
70 @original_pictures = OriginalPicture.all
72 respond_to do |format|
73 format.html { render layout: 'system' }
74 format.json { render json: @original_pictures }
79 @original_picture = OriginalPicture.find(params[:id])
81 respond_to do |format|
82 format.html { render layout: 'system' }
83 format.json { render json: @original_picture }
88 @original_picture = OriginalPicture.find(params[:id])
89 img = Magick::Image.from_blob(@original_picture.restore).shift
90 @original_picture.store img
91 respond_to do |format|
92 format.html { redirect_to original_pictures_url }
96 # GET /original_pictures/new
97 # GET /original_pictures/new.json
99 @original_picture = OriginalPicture.new
101 respond_to do |format|
102 format.html # new.html.erb
104 format.json { render json: @original_picture }
108 # GET /original_pictures/1/edit
110 @original_picture = OriginalPicture.find(params[:id])
113 # POST /original_pictures
114 # POST /original_pictures.json
117 respond_to do |format|
118 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
119 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
123 @original_picture = OriginalPicture.new
124 img = set_image params
125 @original_picture.artist_id = @author.artist.id
126 @original_picture.license_id = @author.artist.default_license_id
128 respond_to do |format|
129 OriginalPicture.transaction do
130 if @original_picture.save
131 if @original_picture.store(img)
132 format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' }
133 format.json { render json: @original_picture, status: :created, location: @original_picture }
135 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
136 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
139 format.html { render action: "new" }
140 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
146 # PUT /original_pictures/1
147 # PUT /original_pictures/1.json
150 respond_to do |format|
151 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
152 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
156 @original_picture = OriginalPicture.find(params[:id])
157 unless @original_picture.own? @author
158 respond_to do |format|
159 format.html { redirect_to @original_picture, notice: 'Failed! ' }
160 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
164 img = set_image params
166 respond_to do |format|
167 OriginalPicture.transaction do
168 if @original_picture.save
169 if @original_picture.store(img)
170 format.html { redirect_to @original_picture, notice: 'Original picture was successfully updated.' }
171 format.json { head :ok }
173 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
174 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
177 format.html { render action: "edit" }
178 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
184 # DELETE /original_pictures/1
185 # DELETE /original_pictures/1.json
188 respond_to do |format|
189 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
190 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
194 @original_picture = OriginalPicture.find(params[:id])
195 unless @original_picture.own? @author
196 respond_to do |format|
197 format.html { redirect_to @original_picture, notice: 'Failed! ' }
198 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
202 OriginalPicture.transaction do
203 @original_picture.destroy
206 respond_to do |format|
207 format.html { redirect_to original_pictures_url }
208 format.json { head :ok }