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