OSDN Git Service

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