OSDN Git Service

temp
[pettanr/pettanr.git] / app / controllers / authors_controller.rb
1 class AuthorsController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   if MagicNumber['run_mode'] == 0
4     before_filter :authenticate_user, :only => [:new, :create, :edit, :update]
5     before_filter :authenticate_author, :only => [:edit, :update]
6   else
7     before_filter :authenticate_reader, :only => [:index, :show, :scrolls, :scroll_panels, :comics, :stories, :story_sheets, :sheets, :sheet_panels, :panels, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors]
8     before_filter :authenticate_user, :only => [:new, :create, :edit, :update]
9     before_filter :authenticate_author, :only => [:edit, :update]
10   end
11   before_filter :authenticate_admin!, :only => [:list, :browse]
12
13   def self.model
14     Author
15   end
16   
17   def index
18     public_list
19   end
20
21   def show
22     @item = Author.show(params[:id], @operators)
23
24     respond_to do |format|
25       format.html {
26         @author = @item
27       }
28       format_prof format
29       format.json { render :json => @item.to_json(Author.show_json_opt) }
30     end
31   end
32
33   def scrolls
34     @au = Author.show(params[:id], [@user, @admin])
35
36     @page = Author.page params[:page]
37     @page_size = Author.scroll_page_size params[:page_size]
38     @scrolls = Scroll.himlist(@au, @page, @page_size)
39
40     respond_to do |format|
41       format.html {
42         @paginate = Scroll.himlist_paginate(@au, @page, @page_size)
43         render :template => 'system/filer', :locals => {
44           :items => @scrolls, :model => Scroll, 
45           :roles => [@user, @admin], :pager => @paginate
46         }
47       }
48       format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
49     end
50   end
51   
52   def scroll_panels
53     @au = Author.show(params[:id], [@user, @admin])
54
55     @page = Author.page params[:page]
56     @page_size = Author.scroll_page_size params[:page_size]
57     @scroll_panels = ScrollPanel.himlist(@au, @page, @page_size)
58
59     respond_to do |format|
60       format.html {
61         @paginate = ScrollPanel.himlist_paginate(@au, @page, @page_size)
62         render :template => 'system/filer', :locals => {
63           :items => @scroll_panels, :model => ScrollPanel, 
64           :roles => [@user, @admin], :pager => @paginate
65         }
66       }
67       format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) }
68     end
69   end
70   
71   def comics
72     @au = Author.show(params[:id], [@user, @admin])
73
74     @page = Author.page params[:page]
75     @page_size = Author.comic_page_size params[:page_size]
76     @comics = Comic.himlist(@au, @page, @page_size)
77
78     respond_to do |format|
79       format.html {
80         @paginate = Comic.himlist_paginate(@au, @page, @page_size)
81         render :template => 'system/filer', :locals => {
82           :items => @comics, :model => Comic, 
83           :roles => [@user, @admin], :pager => @paginate
84         }
85       }
86       format.json { render json: @comics.to_json(Comic.list_json_opt) }
87     end
88   end
89   
90   def stories
91     @au = Author.show(params[:id], [@user, @admin])
92
93     @page = Author.page params[:page]
94     @page_size = Author.story_page_size params[:page_size]
95     @stories = Story.himlist(@au, @page, @page_size)
96
97     respond_to do |format|
98       format.html {
99         @paginate = Story.himlist_paginate(@au, @page, @page_size)
100         render :template => 'system/filer', :locals => {
101           :items => @stories, :model => Story, 
102           :roles => [@user, @admin], :pager => @paginate
103         }
104       }
105       format.json { render json: @stories.to_json(Story.list_json_opt) }
106     end
107   end
108   
109   def story_sheets
110     @au = Author.show(params[:id], [@user, @admin])
111
112     @page = Author.page params[:page]
113     @page_size = Author.sheet_page_size params[:page_size]
114     @story_sheets = StorySheet.himlist(@au, @page, @page_size)
115
116     respond_to do |format|
117       format.html {
118         @paginate = StorySheet.himlist_paginate(@au, @page, @page_size)
119         render :template => 'system/filer', :locals => {
120           :items => @story_sheets, :model => StorySheet, 
121           :roles => [@user, @admin], :pager => @paginate
122         }
123       }
124       format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) }
125     end
126   end
127   
128   def sheets
129     @au = Author.show(params[:id], [@user, @admin])
130
131     @page = Author.page params[:page]
132     @page_size = Author.sheet_page_size params[:page_size]
133     @sheets = Sheet.himlist(@au, @page, @page_size)
134
135     respond_to do |format|
136       format.html {
137         @paginate = Sheet.himlist_paginate(@au, @page, @page_size)
138         render :template => 'system/filer', :locals => {
139           :items => @sheets, :model => Sheet, 
140           :roles => [@user, @admin], :pager => @paginate
141         }
142       }
143       format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
144     end
145   end
146   
147   def sheet_panels
148     @au = Author.show(params[:id], [@user, @admin])
149
150     @page = Author.page params[:page]
151     @page_size = Author.sheet_page_size params[:page_size]
152     @sheet_panels = SheetPanel.himlist(@au, @page, @page_size)
153
154     respond_to do |format|
155       format.html {
156         @paginate = SheetPanel.himlist_paginate(@au, @page, @page_size)
157         render :template => 'system/filer', :locals => {
158           :items => @sheet_panels, :model => SheetPanel, 
159           :roles => [@user, @admin], :pager => @paginate
160         }
161       }
162       format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) }
163     end
164   end
165   
166   def panels
167     @au = Author.show(params[:id], [@user, @admin])
168
169     @page = Author.page params[:page]
170     @page_size = Author.panel_page_size params[:page_size]
171     @panels = Panel.himlist(@au, @page, @page_size)
172
173     respond_to do |format|
174       format.html {
175         @paginate = Panel.himlist_paginate(@au, @page, @page_size)
176         render :template => 'system/filer', :locals => {
177           :items => @panels, :model => Panel, 
178           :roles => [@user, @admin], :pager => @paginate
179         }
180       }
181       format.json { render text: Panel.list_as_json_text(@panels) }
182     end
183   end
184   
185   def panel_pictures
186     @au = Author.show(params[:id], [@user, @admin])
187
188     @page = Author.page params[:page]
189     @page_size = Author.panel_picture_page_size params[:page_size]
190     @panel_pictures = PanelPicture.himlist(@au, @page, @page_size)
191
192     respond_to do |format|
193       format.html {
194         @paginate = PanelPicture.himlist_paginate(@au, @page, @page_size)
195         render :template => 'system/filer', :locals => {
196           :items => @panel_pictures, :model => PanelPicture, 
197           :roles => [@user, @admin], :pager => @paginate
198         }
199       }
200       format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) }
201     end
202   end
203   
204   def speech_balloons
205     @au = Author.show(params[:id], [@user, @admin])
206
207     @page = Author.page params[:page]
208     @page_size = Author.panel_picture_page_size params[:page_size]
209     @speech_balloons = SpeechBalloon.himlist(@au, @page, @page_size)
210
211     respond_to do |format|
212       format.html {
213         @paginate = SpeechBalloon.himlist_paginate(@au, @page, @page_size)
214         render :template => 'system/filer', :locals => {
215           :items => @speech_balloons, :model => SpeechBalloon, 
216           :roles => [@user, @admin], :pager => @paginate
217         }
218       }
219       format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
220     end
221   end
222   
223   def ground_pictures
224     @au = Author.show(params[:id], [@user, @admin])
225
226     @page = Author.page params[:page]
227     @page_size = Author.ground_picture_page_size params[:page_size]
228     @ground_pictures = GroundPicture.himlist(@au, @page, @page_size)
229
230     respond_to do |format|
231       format.html {
232         @paginate = GroundPicture.himlist_paginate(@au, @page, @page_size)
233         render :template => 'system/filer', :locals => {
234           :items => @ground_pictures, :model => GroundPicture, 
235           :roles => [@user, @admin], :pager => @paginate
236         }
237       }
238       format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) }
239     end
240   end
241   
242   def ground_colors
243     @au = Author.show(params[:id], [@user, @admin])
244
245     @page = Author.page params[:page]
246     @page_size = Author.ground_color_page_size params[:page_size]
247     @ground_colors = GroundColor.himlist(@au, @page, @page_size)
248
249     respond_to do |format|
250       format.html {
251         @paginate = GroundColor.himlist_paginate(@au, @page, @page_size)
252         render :template => 'system/filer', :locals => {
253           :items => @ground_colors, :model => GroundColor, 
254           :roles => [@user, @admin], :pager => @paginate
255         }
256       }
257       format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) }
258     end
259   end
260   
261   def count
262     @au = {:count => Author.visible_count}
263     respond_to do |format|
264       format.json { render json: @au.to_json }
265     end
266   end
267   
268   def list
269     @authors = Author.all
270
271     respond_to do |format|
272       format.html { render layout: 'system' }
273     end
274   end
275
276   def browse
277     @au = Author.find(params[:id])
278
279     respond_to do |format|
280       format.html { render layout: 'system' }
281     end
282   end
283   
284   def new
285     @author = Author.new
286     @author.supply_default 
287
288     respond_to do |format|
289       format.html # new.html.erb
290       format.js
291       format.json { render json: @au.to_json(Author.show_json_opt) }
292     end
293   end
294
295   def edit
296     @author = Author.edit(params[:id], @operators)
297   end
298
299   def create
300     @author = Author.new()
301     @author.supply_default 
302     @author.attributes = params[:author]
303     @author.overwrite @operators
304     respond_to do |format|
305       if @author.save
306         flash[:notice] = I18n.t('flash.notice.created', :model => Author.model_name.human)
307         format.html { redirect_to root_path }
308         format.json { render json: @author.to_json(Author.show_json_opt), status: :created }
309       else
310         flash[:notice] = I18n.t('flash.notice.not_created', :model => Author.model_name.human)
311         format.html { render action: "new" }
312         format.json { render json: @au.errors, status: :unprocessable_entity }
313       end
314     end
315   end
316
317   def update
318     @author = Author.edit(params[:id], @operators)
319     @author.attributes = params[:author]
320     @author.overwrite @operators
321
322     respond_to do |format|
323       if @author.save
324         flash[:notice] = I18n.t('flash.notice.updated', :model => Author.model_name.human)
325         format.html { redirect_to '/home/configure' }
326         format.json { head :ok }
327       else
328         flash[:notice] = I18n.t('flash.notice.not_updated', :model => Author.model_name.human)
329         format.html { render action: "edit" }
330         format.json { render json: @author.errors, status: :unprocessable_entity }
331       end
332     end
333   end
334 end