OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / controllers / demanders_controller.rb
1 class DemandersController < ApplicationController
2   before_filter :authenticate_demand_user!, :only => [:index, :show, :new, :create, :edit, :update, :destroy, :req, :licenses_export, :artists_export, :original_pictures_export, :pictures_export, :export]
3   
4   def index
5     @demander = @demand_user.demander
6     if @demander
7       respond_to do |format|
8         format.html # index.html.erb
9       end
10     else
11       flash[:notice] = I18n.t('demanders.flash.notice.not_found')
12       redirect_to new_demander_path
13     end
14   end
15
16   def show
17     @demander = Demander.show(params[:id], @demand_user)
18
19     respond_to do |format|
20       format.html # show.html.erb
21       format.json { render :json => @demander.to_json(Demander.show_json_opt) }
22     end
23   end
24
25   def new
26     @demander = Demander.new
27     @demander.supply_default
28     respond_to do |format|
29       format.html # new.html.erb
30       format.json { render json: @demander.to_json(Demander.show_json_opt) }
31     end
32   end
33
34   def edit
35     @demander = Demander.edit(params[:id], @demand_user)
36     respond_to do |format|
37       format.html 
38     end
39   end
40
41   def create
42     @demander = Demander.new
43     @demander.supply_default 
44     @demander.attributes = params[:demander]
45     @demander.overwrite @demand_user
46
47     respond_to do |format|
48       if @demander.store
49         flash[:notice] = I18n.t('flash.notice.created', :model => Demander.model_name.human)
50         format.html { redirect_to @demander }
51         format.json { render json: @demander.to_json(Demander.show_json_opt), status: :created, location: @demander }
52       else
53         format.html { render action: "new" }
54         format.json { render json: @demander.errors, status: :unprocessable_entity }
55       end
56     end
57   end
58
59   def update
60     @demander = Demander.edit(params[:id], @demand_user)
61     @demander.attributes = params[:demander]
62     @demander.overwrite @demand_user
63     respond_to do |format|
64       if @demander.store
65         flash[:notice] = I18n.t('flash.notice.updated', :model => Demander.model_name.human)
66         format.html { redirect_to @demander }
67         format.json { head :ok }
68       else
69         format.html { render action: "edit" }
70         format.json { render json: @demander.errors, status: :unprocessable_entity }
71       end
72     end
73   end
74
75   def req
76     @demander = @demand_user.demander
77     respond_to do |format|
78       if @demander.demander_status.request
79         flash[:notice] = I18n.t('demanders.flash.notice.requested')
80         format.html { redirect_to demanders_path }
81         format.json { head :ok }
82       else
83         flash[:notice] = I18n.t('demanders.flash.notice.not_requested')
84         format.html { redirect_to demanders_path }
85         format.json { render json: @demander.errors, status: :unprocessable_entity }
86       end
87     end
88   end
89
90   def destroy
91     @demander = Demander.edit(params[:id], @demand_user)
92     respond_to do |format|
93       if @demander.stop
94         flash[:notice] = I18n.t('demanders.flash.notice.stopped')
95         format.html { redirect_to demanders_url }
96         format.json { head :ok }
97       else
98         flash[:notice] = I18n.t('demanders.flash.notice.not_stopped')
99         format.html { redirect_to demanders_url }
100         format.json { render json: @demander.errors, status: :unprocessable_entity }
101       end
102     end
103   end
104
105   def licenses_export
106     @demander = @demand_user.demander
107     date = ymd_to_time params[:date]
108     @licenses = @demander.licenses_export(date)
109     respond_to do |format|
110       format.html { render :text  }
111       format.json { render :json => @licenses.to_json }
112     end
113   end
114   
115   def artists_export
116     @demander = @demand_user.demander
117     date = ymd_to_time params[:date]
118     @artists = @demander.artists_export(date)
119     respond_to do |format|
120       format.html { render :text  }
121       format.json { render :json => @artists.to_json }
122     end
123   end
124   
125   def original_pictures_export
126     @demander = @demand_user.demander
127     date = ymd_to_time params[:date]
128     @original_pictures = @demander.original_pictures_export(date)
129     respond_to do |format|
130       format.html { render :text  }
131       format.json { render :json => OriginalPicture.list_as_json_text(@original_pictures) }
132     end
133   end
134   
135   def pictures_export
136     @demander = @demand_user.demander
137     date = ymd_to_time params[:date]
138     @pictures = @demander.pictures_export(date)
139     respond_to do |format|
140       format.html { render :text  }
141       format.json { render :json => Picture.list_as_json_text(@pictures) }
142     end
143   end
144   
145   def export
146     @demander = @demand_user.demander
147     date = ymd_to_time params[:date]
148     @exports = @demander.export(date)
149     respond_to do |format|
150       format.html { render :text  }
151       format.json { render :json => 
152         "{" +
153         "\"licenses\":" + @exports[:licenses].to_json + ", " + 
154         "\"artists\":" + @exports[:artists].to_json + ", " + 
155         "\"original_pictures\":" + OriginalPicture.list_as_json_text(@exports[:original_pictures]) + ", " + 
156         "\"pictures\":" + Picture.list_as_json_text(@exports[:pictures]) + 
157         "}" 
158       }
159     end
160   end
161   
162 end