OSDN Git Service

fix
[pettanr/pettanr.git] / app / controllers / resource_pictures_controller.rb
1 class ResourcePicturesController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   if MagicNumber['run_mode'] == 0
4     before_filter :authenticate_user, :only => [:new, :create, :update, :destroy]
5     before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy]
6   else
7     before_filter :authenticate_resource_reader, :only => [:index, :show, :credit, :by_license, :by_artist]
8     before_filter :authenticate_user, :only => [:new, :create, :update, :destroy]
9     before_filter :authenticate_artist, :only => [:new, :create, :update, :destroy]
10   end
11
12   def self.model
13     ResourcePicture
14   end
15   
16   def index
17     public_list
18   end
19   
20   def by_license
21     filter_list
22   end
23   
24   def by_artist
25     filter_list
26   end
27   
28   def show
29     @item = ResourcePicture.show(params[:id], @operators)
30
31     respond_to do |format|
32       opt = {:type => @item.mime_type, :disposition=>"inline"}
33       format.png { send_data(@item.restore(params[:subdir]), opt ) }
34       format.gif { send_data(@item.restore(params[:subdir]), opt ) }
35       format.jpeg { send_data(@item.restore(params[:subdir]), opt ) }
36       format.html {
37         @resource_picture = @item
38       }
39       format_prof format
40       format.json { render :json => @item.to_json(ResourcePicture.show_json_opt)}
41     end
42   end
43   
44   def credit
45     @resource_picture = ResourcePicture.show(params[:id], @operators)
46
47     respond_to do |format|
48       format.html { render :layout => false } # show.html.erb
49       format.json { render :json => @resource_picture.to_json(ResourcePicture.show_json_opt)}
50     end
51   end
52   
53   def new
54     @original_picture = OriginalPicture.edit params[:original_picture_id], @operators
55     @imager = PettanImager.load @original_picture.restore
56     @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group]
57     @license_group = LicenseGroup.show @original_picture_license_group.license_group_id
58     @resource_picture = @original_picture.resource_picture
59     unless @resource_picture
60       @resource_picture = ResourcePicture.new
61       @resource_picture.supply_default
62     end
63     @resource_picture.attributes = params[:resource_picture]
64     @resource_picture.overwrite @original_picture
65     @license = @resource_picture.license
66     
67     respond_to do |format|
68       format.html # new.html.erb
69       format.js
70     end
71   end
72   
73   def create
74     @original_picture = OriginalPicture.edit params[:original_picture_id], @operators
75     @imager = PettanImager.load @original_picture.restore
76     @original_picture_license_group = OriginalPictureLicenseGroup.new params[:original_picture_license_group]
77     @license_group = LicenseGroup.show @original_picture_license_group.license_group_id, @operators
78     @resource_picture = @original_picture.resource_picture
79     unless @resource_picture
80       @resource_picture = ResourcePicture.new
81       @resource_picture.supply_default
82     end
83     @resource_picture.attributes = params[:resource_picture]
84     @resource_picture.overwrite @original_picture
85     @license = @resource_picture.license
86
87     respond_to do |format|
88       if @resource_picture.store(@imager)
89         format.html { redirect_to @resource_picture }
90         format.json { render json: @resource_picture.to_json(ResourcePicture.show_json_opt), status: :created, location: @resource_picture }
91       else
92         format.html { render action: "new" }
93         format.json { render json: @resource_picture.errors, status: :unprocessable_entity }
94       end
95     end
96   end
97   
98   def destroy
99     @resource_picture = ResourcePicture.edit(params[:id], @operators)
100
101     respond_to do |format|
102       if @resource_picture.unpublish
103         format.html { redirect_to :controller => '/home', :action => :resource_pictures }
104         format.json { head :ok }
105       else
106         format.html { redirect_to resource_picture_path(@resource_picture) }
107         format.json { render json: @resource_picture.errors, status: :unprocessable_entity }
108       end
109     end
110   end
111   
112   def count
113     @resource_picture = {:count => ResourcePicture.visible_count}
114     respond_to do |format|
115       format.json { render json: @resource_picture.to_json }
116     end
117   end
118   
119 end