1 class OriginalPicturesController < ApplicationController
2 before_filter :authenticate_author!, :except => [:index, :show]
8 if (f = prm[:original_picture][:file]).respond_to?(:read)
10 @original_picture.width = 0
11 @original_picture.height = 0
12 @original_picture.ext = 'none'
13 @original_picture.filesize = 1.megabytes
15 img = Magick::Image.from_blob(f.read).shift
16 @original_picture.width = img.columns
17 @original_picture.height = img.rows
18 @original_picture.ext = img.format.downcase
19 @original_picture.filesize = f.size
22 dat = Base64.decode64(prm[:original_picture][:file].to_s.gsub(' ', '+')) #rubyのバグ?+でデコードされるべきキャラがスペースになる
23 img = Magick::Image.from_blob(dat).shift
24 @original_picture.width = img.columns
25 @original_picture.height = img.rows
26 @original_picture.ext = img.format.downcase
27 @original_picture.filesize = 1000
34 # GET /original_pictures
35 # GET /original_pictures.json
37 @original_pictures = OriginalPicture.all
39 respond_to do |format|
40 format.html # index.html.erb
41 format.json { render json: @original_pictures }
45 # GET /original_pictures/1
46 # GET /original_pictures/1.json
48 @original_picture = OriginalPicture.find(params[:id])
49 # if params[:subdir] == 'refresh'
54 respond_to do |format|
55 opt = {:type => @original_picture.mime_type, :disposition=>"inline"}
56 format.png { send_data(@original_picture.restore, opt ) }
57 format.gif { send_data(@original_picture.restore, opt ) }
58 format.jpeg { send_data(@original_picture.restore, opt ) }
59 format.html # show.html.erb
60 format.json { render json: @original_picture}
65 @original_picture = OriginalPicture.find(params[:id])
66 img = Magick::Image.from_blob(@original_picture.restore).shift
67 @original_picture.store img
68 respond_to do |format|
69 format.html { redirect_to original_pictures_url }
73 # GET /original_pictures/new
74 # GET /original_pictures/new.json
76 @original_picture = OriginalPicture.new
78 respond_to do |format|
79 format.html # new.html.erb
80 format.json { render json: @original_picture }
84 # GET /original_pictures/1/edit
86 @original_picture = OriginalPicture.find(params[:id])
89 # POST /original_pictures
90 # POST /original_pictures.json
93 respond_to do |format|
94 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
95 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
99 @original_picture = OriginalPicture.new
100 img = set_image params
101 @original_picture.artist_id = current_author.artist.id
103 respond_to do |format|
104 OriginalPicture.transaction do
105 if @original_picture.save
106 if @original_picture.store(img)
107 format.html { redirect_to @original_picture, notice: 'Original picture was successfully created.' }
108 format.json { render json: @original_picture, status: :created, location: @original_picture }
110 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
111 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
114 format.html { render action: "new" }
115 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
121 # PUT /original_pictures/1
122 # PUT /original_pictures/1.json
125 respond_to do |format|
126 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
127 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
131 @original_picture = OriginalPicture.find(params[:id])
132 unless @original_picture.own? current_author
133 respond_to do |format|
134 format.html { redirect_to @original_picture, notice: 'Failed! ' }
135 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
139 img = set_image params
141 respond_to do |format|
142 OriginalPicture.transaction do
143 if @original_picture.save
144 if @original_picture.store(img)
145 format.html { redirect_to @original_picture, notice: 'Original picture was successfully updated.' }
146 format.json { head :ok }
148 format.html { redirect_to @original_picture, notice: 'Failed! Original picture was NOT created.' }
149 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
152 format.html { render action: "edit" }
153 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
159 # DELETE /original_pictures/1
160 # DELETE /original_pictures/1.json
163 respond_to do |format|
164 format.html { redirect_to @original_picture, notice: 'Failed! author does not artist.' }
165 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
169 @original_picture = OriginalPicture.find(params[:id])
170 unless @original_picture.own? current_author
171 respond_to do |format|
172 format.html { redirect_to @original_picture, notice: 'Failed! ' }
173 format.json { render json: @original_picture.errors, status: :unprocessable_entity }
177 OriginalPicture.transaction do
178 @original_picture.destroy
181 respond_to do |format|
182 format.html { redirect_to original_pictures_url }
183 format.json { head :ok }