OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / controllers / original_pictures_controller.rb
1 #原画
2 class OriginalPicturesController < ApplicationController
3   before_filter :authenticate_reader, :only => [:show, :history, :count]
4   before_filter :authenticate_user, :only => [:index, :new, :edit, :create, :update, :destroy]
5   before_filter :authenticate_artist, :only => [:index, :new, :edit, :create, :update, :destroy]
6   
7   def index
8     filer_list
9   end
10
11   def show_html_format format
12     format.html {
13       #ライセンス付与のために原画ライセンスグループ作成準備
14       @original_picture_license_group  = OriginalPictureLicenseGroup.new :original_picture_id => @item.id
15       render
16     }
17   end
18   
19   def show_json_format format
20     format.json { render json: @item.to_json(
21       {:include => {:resource_picture => {}} }
22     )}
23   end
24   
25   def show
26     set_show
27     respond_to do |format|
28       opt = {:type => @item.mime_type, :disposition=>"inline"}
29       format.png { send_data(@item.restore(params[:subdir]), opt ) }
30       format.gif { send_data(@item.restore(params[:subdir]), opt ) }
31       format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
32       show_html_format format
33       show_prof_format format
34       show_json_format format
35     end
36   end
37
38   def history
39     set_show
40     @history = @item.history
41     
42     respond_to do |format|
43       format.html
44       format.json { render json: @history.to_json }
45     end
46   end
47   
48   def count
49     list_count
50   end
51   
52   def new
53     set_new
54     respond_to do |format|
55       format.html
56       format.json { render json: @item.to_json }
57     end
58   end
59   
60   def edit
61     set_edit
62     respond_to do |format|
63       format.html
64       format.json { render json: @item.to_json }
65     end
66   end
67   
68   def create
69     set_model
70     @imager = if params[:original_picture]
71       PettanImager.load set_image params[:original_picture][:file]
72     else
73       nil
74     end
75     @item = OriginalPicture.new
76     @item.supply_default
77     @item.overwrite @operators
78     
79     respond_to do |format|
80       if @item.store(@imager)
81         created_html_format format
82         created_json_format format
83       else
84         not_created_html_format format
85         not_created_json_format format
86       end
87     end
88   end
89   
90   def update
91     set_model
92     @imager = if params[:original_picture]
93       PettanImager.load set_image params[:original_picture][:file]
94     else
95       nil
96     end
97     @item = OriginalPicture.edit(params[:id], @operators)
98     @item.overwrite @operators
99     
100     respond_to do |format|
101       if @item.store(@imager)
102         updated_html_format format
103         updated_json_format format
104       else
105         not_updated_html_format format
106         not_updated_json_format format
107       end
108     end
109   end
110   
111   def destroy
112     @item = OriginalPicture.edit(params[:id], @operators)
113     
114     respond_to do |format|
115       if @item.destroy_with_resource_picture
116         format.html { redirect_to original_pictures_url }
117         format.json { head :ok }
118       else
119         format.html { redirect_to original_picture_path(@item) }
120         format.json { render json: @item.errors, status: :unprocessable_entity }
121       end
122     end
123   end
124 end