1 class OriginalPicturesController < ApplicationController
2 before_filter :authenticate_author!, :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, :lisence, :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, :lisence]
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
103 format.json { render json: @original_picture }
107 # GET /original_pictures/1/edit
109 @original_picture = OriginalPicture.find(params[:id])
112 # POST /original_pictures
113 # POST /original_pictures.json
116 respond_to do |format|
117 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
118 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
122 @original_picture = OriginalPicture.new
123 img = set_image params
124 @original_picture.artist_id = current_author.artist.id
125 @original_picture.lisence_id = current_author.artist.default_lisence_id
127 respond_to do |format|
128 OriginalPicture.transaction do
129 if @original_picture.save
130 if @original_picture.store(img)
131 format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' }
132 format.json { render json: @original_picture, status: :created, location: @original_picture }
134 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
135 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
138 format.html { render action: "new" }
139 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
145 # PUT /original_pictures/1
146 # PUT /original_pictures/1.json
149 respond_to do |format|
150 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
151 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
155 @original_picture = OriginalPicture.find(params[:id])
156 unless @original_picture.own? current_author
157 respond_to do |format|
158 format.html { redirect_to @original_picture, notice: 'Failed! ' }
159 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
163 img = set_image params
165 respond_to do |format|
166 OriginalPicture.transaction do
167 if @original_picture.save
168 if @original_picture.store(img)
169 format.html { redirect_to @original_picture, notice: 'Original picture was successfully updated.' }
170 format.json { head :ok }
172 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
173 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
176 format.html { render action: "edit" }
177 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
183 # DELETE /original_pictures/1
184 # DELETE /original_pictures/1.json
187 respond_to do |format|
188 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
189 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
193 @original_picture = OriginalPicture.find(params[:id])
194 unless @original_picture.own? current_author
195 respond_to do |format|
196 format.html { redirect_to @original_picture, notice: 'Failed! ' }
197 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
201 OriginalPicture.transaction do
202 @original_picture.destroy
205 respond_to do |format|
206 format.html { redirect_to original_pictures_url }
207 format.json { head :ok }