OSDN Git Service

516aca5c4d20e0ffa895ea3fc27980be7e808b8c
[pettanr/pettanr.git] / app / controllers / speech_balloons_controller.rb
1 class SpeechBalloonsController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   if MagicNumber['run_mode'] == 0
4     before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
5     before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
6   else
7     before_filter :authenticate_reader, :only => [:index, :show]
8     before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
9     before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
10   end
11   before_filter :authenticate_admin!, :only => [:list, :browse]
12
13   def index
14     @page = SpeechBalloon.page params[:page]
15     @page_size = SpeechBalloon.page_size params[:page_size]
16     @speech_balloons = SpeechBalloon.list(@page, @page_size)
17
18     respond_to do |format|
19       format.html {
20         @paginate = SpeechBalloon.list_paginate(@page, @page_size)
21       }
22       format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
23     end
24   end
25   
26   def show
27     @speech_balloon = SpeechBalloon.show(params[:id], [@user, @admin])
28     respond_to do |format|
29       format.html # show.html.erb
30       format.json { render json: @speech_balloon.to_json(SpeechBalloon.show_json_opt) }
31     end
32   end
33   
34   def list
35     @speech_balloons = SpeechBalloon.all
36
37     respond_to do |format|
38       format.html { render layout: 'system' }
39       format.json { render json: @speech_balloons }
40     end
41   end
42
43   def browse
44     @speech_balloon = SpeechBalloon.find(params[:id])
45
46     respond_to do |format|
47       format.html { render layout: 'system' }
48       format.json { render json: @speech_balloon }
49     end
50   end
51
52   def new
53     @speech_balloon_template = SpeechBalloonTemplate.show params[:speech_balloon_template_id], @author
54     
55     @panel = Panel.edit(@author.working_panel, @author)
56     @speech_balloon = SpeechBalloon.new :panel_id => @panel.id, :speech_balloon_template_id => @speech_balloon_template.id
57     @speech_balloon.extend @speech_balloon_template.engine_speech_balloon_module
58     @speech_balloon.supply_default
59     @balloon = @speech_balloon.build_balloon 
60     @speech = @speech_balloon.build_speech 
61     @balloon.extend @speech_balloon_template.engine_balloon_module
62     @speech.extend @speech_balloon_template.engine_speech_module
63     @balloon.new_speech_balloon = @speech_balloon
64     @speech.new_speech_balloon = @speech_balloon
65     @balloon.supply_default 
66     @speech.supply_default 
67     @speech_balloon_extend = @speech_balloon.extend_speech_balloon
68     @balloon_extend = @balloon.extend_balloon
69     @speech_extend = @speech.extend_speech
70     
71     respond_to do |format|
72       format.html {
73         render @speech_balloon_template.engine_name + '/speech_balloons/new'
74       }
75       format.json { render :json => @speech_balloon.to_json(SpeechBalloon.show_json_opt) }
76     end
77   end
78
79   def edit
80     @speech_balloon = SpeechBalloon.show(params[:id], @author)
81     @speech_balloon_template = @speech_balloon.speech_balloon_template
82     @panel = Panel.edit(@speech_balloon.panel.id, @author)
83     
84     @balloon = @speech_balloon.balloon 
85     @speech = @speech_balloon.speech 
86     @speech_balloon.extend @speech_balloon_template.engine_speech_balloon_module
87     @balloon.extend @speech_balloon_template.engine_balloon_module
88     @speech.extend @speech_balloon_template.engine_speech_module
89     
90     respond_to do |format|
91       format.html {
92         render @speech_balloon_template.engine_name + '/speech_balloons/edit'
93       }
94     end
95   end
96
97   def create
98     speech_balloon_settings = params[:speech_balloon][:settings]
99     if speech_balloon_settings.blank?
100       speech_balloon_settings = {}
101     else
102       if speech_balloon_settings.is_a?(Hash)
103         params[:speech_balloon][:settings] = speech_balloon_settings.to_json
104       else
105         speech_balloon_settings = {}
106       end
107     end
108     balloon_settings = params[:speech_balloon][:balloon_attributes][:settings]
109     if balloon_settings.blank?
110       balloon_settings = {}
111     else
112       if balloon_settings.is_a?(Hash)
113         params[:speech_balloon][:balloon_attributes][:settings] = balloon_settings.to_json
114       else
115         balloon_settings = {}
116       end
117     end
118     speech_settings = params[:speech_balloon][:speech_attributes][:settings]
119     if speech_settings.blank?
120       speech_settings = {}
121     else
122       if speech_settings.is_a?(Hash)
123         params[:speech_balloon][:speech_attributes][:settings] = speech_settings.to_json
124       else
125         speech_settings = {}
126       end
127     end
128     @panel = Panel.edit(@author.working_panel, @author)
129     @speech_balloon = SpeechBalloon.new 
130     @speech_balloon.attributes = params[:speech_balloon]
131     
132     @speech_balloon_template = @speech_balloon.speech_balloon_template
133     @balloon = @speech_balloon.balloon 
134     @speech = @speech_balloon.speech 
135     
136     @speech_balloon.extend @speech_balloon_template.engine_speech_balloon_module
137     @balloon.extend @speech_balloon_template.engine_balloon_module
138     @speech.extend @speech_balloon_template.engine_speech_module
139     
140     @balloon.new_speech_balloon = @speech_balloon
141     @speech.new_speech_balloon = @speech_balloon
142     
143     @speech_balloon.extend_speech_balloon = speech_balloon_settings
144     @balloon.extend_balloon = balloon_settings
145     @speech.extend_speech = speech_settings
146     
147     @speech_balloon_extend = @speech_balloon.extend_speech_balloon
148     @balloon_extend = @balloon.extend_balloon
149     @speech_extend = @speech.extend_speech
150     
151     params[:speech_balloon][:balloon_attributes][:system_picture_id] = @balloon.select_system_picture 
152     
153     @speech_balloon.overwrite @panel.id
154     
155     respond_to do |format|
156       sbv = @speech_balloon_extend.valid?
157       bv = @balloon_extend.valid?
158       sv = @speech_extend.valid?
159       if @speech_balloon.valid? and @speech_balloon_extend.valid? and @balloon_extend.valid? and @speech_extend.valid? and sbv and bv and sv
160         if @speech_balloon.store @author, params[:speech_balloon]
161           flash[:notice] = I18n.t('flash.notice.created', :model => Panel.model_name.human)
162           format.html { redirect_to @panel }
163           format.json { render json: @panel.panel_elements_as_json, status: :created, location: @panel }
164         else
165           flash[:notice] = I18n.t('flash.notice.not_created', :model => SpeechBalloon.model_name.human)
166           format.html {
167             render @speech_balloon_template.engine_name + '/speech_balloons/new'
168           }
169           format.json { render json: @speech_balloon.errors, status: :unprocessable_entity }
170         end
171       else
172         flash[:notice] = I18n.t('flash.notice.not_created', :model => SpeechBalloon.model_name.human)
173         format.html {
174           render @speech_balloon_template.engine_name + '/speech_balloons/new'
175         }
176         format.json { render json: @speech_balloon.errors, status: :unprocessable_entity }
177       end
178     end
179   end
180
181   def update
182     speech_balloon_settings = params[:speech_balloon][:settings]
183     if speech_balloon_settings.blank?
184       speech_balloon_settings = {}
185     else
186       if speech_balloon_settings.is_a?(Hash)
187         params[:speech_balloon][:settings] = speech_balloon_settings.to_json
188       else
189         speech_balloon_settings = {}
190       end
191     end
192     balloon_settings = params[:speech_balloon][:balloon_attributes][:settings]
193     if balloon_settings.blank?
194       balloon_settings = {}
195     else
196       if balloon_settings.is_a?(Hash)
197         params[:speech_balloon][:balloon_attributes][:settings] = balloon_settings.to_json
198       else
199         balloon_settings = {}
200       end
201     end
202     speech_settings = params[:speech_balloon][:speech_attributes][:settings]
203     if speech_settings.blank?
204       speech_settings = {}
205     else
206       if speech_settings.is_a?(Hash)
207         params[:speech_balloon][:speech_attributes][:settings] = speech_settings.to_json
208       else
209         speech_settings = {}
210       end
211     end
212     @speech_balloon = SpeechBalloon.show(params[:id], @author)
213     @speech_balloon.attributes = params[:speech_balloon]
214     
215     @speech_balloon_template = @speech_balloon.speech_balloon_template
216     @speech_balloon.extend @speech_balloon.speech_balloon_template.engine_speech_balloon_module
217     @balloon = @speech_balloon.balloon 
218     @speech = @speech_balloon.speech 
219     
220     @speech_balloon.extend @speech_balloon_template.engine_speech_balloon_module
221     @balloon.extend @speech_balloon_template.engine_balloon_module
222     @speech.extend @speech_balloon_template.engine_speech_module
223     
224     @speech_balloon.extend_speech_balloon = speech_balloon_settings
225     @balloon.extend_balloon = balloon_settings
226     @speech.extend_speech = speech_settings
227     
228     @speech_balloon_extend = @speech_balloon.extend_speech_balloon
229     @balloon_extend = @balloon.extend_balloon
230     @speech_extend = @speech.extend_speech
231     
232     params[:speech_balloon][:balloon_attributes][:system_picture_id] = @balloon.select_system_picture 
233     
234     @panel = Panel.edit(@speech_balloon.panel.id, @author)
235     @speech_balloon.overwrite @panel.id
236     
237     respond_to do |format|
238       sbv = @speech_balloon_extend.valid?
239       bv = @balloon_extend.valid?
240       sv = @speech_extend.valid?
241       if @speech_balloon.valid? and @speech_balloon_extend.valid? and @balloon_extend.valid? and @speech_extend.valid? and sbv and bv and sv
242         if @speech_balloon.store @author, params[:speech_balloon]
243           flash[:notice] = I18n.t('flash.notice.updated', :model => SpeechBalloon.model_name.human)
244           format.html { redirect_to @speech_balloon }
245           format.json { head :ok }
246         else
247           flash[:notice] = I18n.t('flash.notice.not_updated', :model => SpeechBalloon.model_name.human)
248           format.html {
249             render @speech_balloon.speech_balloon_template.engine_name + '/speech_balloons/edit'
250           }
251           format.json { render json: @speech_balloon.errors, status: :unprocessable_entity }
252         end
253       else
254         flash[:notice] = I18n.t('flash.notice.not_updated', :model => SpeechBalloon.model_name.human)
255         format.html {
256           render @speech_balloon.speech_balloon_template.engine_name + '/speech_balloons/edit'
257         }
258         format.json { render json: @speech_balloon.errors, status: :unprocessable_entity }
259       end
260     end
261   end
262
263   def destroy
264     @speech_balloon = SpeechBalloon.show(params[:id], @author)
265     @panel = Panel.edit(@speech_balloon.panel.id, @author)
266     
267     respond_to do |format|
268       if @speech_balloon.remove @author
269         flash[:notice] = I18n.t('flash.notice.destroyed', :model => SpeechBalloon.model_name.human)
270         format.html { redirect_to @panel }
271         format.json { head :ok }
272       else
273         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => SpeechBalloon.model_name.human)
274         format.html { redirect_to @speech_balloon }
275         format.json { render json: @speech_balloon.errors, status: :unprocessable_entity }
276       end
277     end
278   end
279   
280 end