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]
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]
21 @item = Author.show(params[:id], @operators)
23 respond_to do |format|
28 format.json { render :json => @item.to_json(Author.show_json_opt) }
33 @au = Author.show(params[:id], [@user, @admin])
35 @page = Author.page params[:page]
36 @page_size = Author.scroll_page_size params[:page_size]
37 @scrolls = Scroll.himlist(@au, @page, @page_size)
39 respond_to do |format|
41 @paginate = Scroll.himlist_paginate(@au, @page, @page_size)
42 render :template => 'system/filer', :locals => {
43 :items => @scrolls, :model => Scroll,
44 :roles => [@user, @admin], :pager => @paginate
47 format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
52 @au = Author.show(params[:id], [@user, @admin])
54 @page = Author.page params[:page]
55 @page_size = Author.scroll_page_size params[:page_size]
56 @scroll_panels = ScrollPanel.himlist(@au, @page, @page_size)
58 respond_to do |format|
60 @paginate = ScrollPanel.himlist_paginate(@au, @page, @page_size)
61 render :template => 'system/filer', :locals => {
62 :items => @scroll_panels, :model => ScrollPanel,
63 :roles => [@user, @admin], :pager => @paginate
66 format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) }
71 @au = Author.show(params[:id], [@user, @admin])
73 @page = Author.page params[:page]
74 @page_size = Author.comic_page_size params[:page_size]
75 @comics = Comic.himlist(@au, @page, @page_size)
77 respond_to do |format|
79 @paginate = Comic.himlist_paginate(@au, @page, @page_size)
80 render :template => 'system/filer', :locals => {
81 :items => @comics, :model => Comic,
82 :roles => [@user, @admin], :pager => @paginate
85 format.json { render json: @comics.to_json(Comic.list_json_opt) }
90 @au = Author.show(params[:id], [@user, @admin])
92 @page = Author.page params[:page]
93 @page_size = Author.story_page_size params[:page_size]
94 @stories = Story.himlist(@au, @page, @page_size)
96 respond_to do |format|
98 @paginate = Story.himlist_paginate(@au, @page, @page_size)
99 render :template => 'system/filer', :locals => {
100 :items => @stories, :model => Story,
101 :roles => [@user, @admin], :pager => @paginate
104 format.json { render json: @stories.to_json(Story.list_json_opt) }
109 @au = Author.show(params[:id], [@user, @admin])
111 @page = Author.page params[:page]
112 @page_size = Author.sheet_page_size params[:page_size]
113 @story_sheets = StorySheet.himlist(@au, @page, @page_size)
115 respond_to do |format|
117 @paginate = StorySheet.himlist_paginate(@au, @page, @page_size)
118 render :template => 'system/filer', :locals => {
119 :items => @story_sheets, :model => StorySheet,
120 :roles => [@user, @admin], :pager => @paginate
123 format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) }
128 @au = Author.show(params[:id], [@user, @admin])
130 @page = Author.page params[:page]
131 @page_size = Author.sheet_page_size params[:page_size]
132 @sheets = Sheet.himlist(@au, @page, @page_size)
134 respond_to do |format|
136 @paginate = Sheet.himlist_paginate(@au, @page, @page_size)
137 render :template => 'system/filer', :locals => {
138 :items => @sheets, :model => Sheet,
139 :roles => [@user, @admin], :pager => @paginate
142 format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
147 @au = Author.show(params[:id], [@user, @admin])
149 @page = Author.page params[:page]
150 @page_size = Author.sheet_page_size params[:page_size]
151 @sheet_panels = SheetPanel.himlist(@au, @page, @page_size)
153 respond_to do |format|
155 @paginate = SheetPanel.himlist_paginate(@au, @page, @page_size)
156 render :template => 'system/filer', :locals => {
157 :items => @sheet_panels, :model => SheetPanel,
158 :roles => [@user, @admin], :pager => @paginate
161 format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) }
166 @au = Author.show(params[:id], [@user, @admin])
168 @page = Author.page params[:page]
169 @page_size = Author.panel_page_size params[:page_size]
170 @panels = Panel.himlist(@au, @page, @page_size)
172 respond_to do |format|
174 @paginate = Panel.himlist_paginate(@au, @page, @page_size)
175 render :template => 'system/filer', :locals => {
176 :items => @panels, :model => Panel,
177 :roles => [@user, @admin], :pager => @paginate
180 format.json { render text: Panel.list_as_json_text(@panels) }
185 @au = Author.show(params[:id], [@user, @admin])
187 @page = Author.page params[:page]
188 @page_size = Author.panel_picture_page_size params[:page_size]
189 @panel_pictures = PanelPicture.himlist(@au, @page, @page_size)
191 respond_to do |format|
193 @paginate = PanelPicture.himlist_paginate(@au, @page, @page_size)
194 render :template => 'system/filer', :locals => {
195 :items => @panel_pictures, :model => PanelPicture,
196 :roles => [@user, @admin], :pager => @paginate
199 format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) }
204 @au = Author.show(params[:id], [@user, @admin])
206 @page = Author.page params[:page]
207 @page_size = Author.panel_picture_page_size params[:page_size]
208 @speech_balloons = SpeechBalloon.himlist(@au, @page, @page_size)
210 respond_to do |format|
212 @paginate = SpeechBalloon.himlist_paginate(@au, @page, @page_size)
213 render :template => 'system/filer', :locals => {
214 :items => @speech_balloons, :model => SpeechBalloon,
215 :roles => [@user, @admin], :pager => @paginate
218 format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
223 @au = Author.show(params[:id], [@user, @admin])
225 @page = Author.page params[:page]
226 @page_size = Author.ground_picture_page_size params[:page_size]
227 @ground_pictures = GroundPicture.himlist(@au, @page, @page_size)
229 respond_to do |format|
231 @paginate = GroundPicture.himlist_paginate(@au, @page, @page_size)
232 render :template => 'system/filer', :locals => {
233 :items => @ground_pictures, :model => GroundPicture,
234 :roles => [@user, @admin], :pager => @paginate
237 format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) }
242 @au = Author.show(params[:id], [@user, @admin])
244 @page = Author.page params[:page]
245 @page_size = Author.ground_color_page_size params[:page_size]
246 @ground_colors = GroundColor.himlist(@au, @page, @page_size)
248 respond_to do |format|
250 @paginate = GroundColor.himlist_paginate(@au, @page, @page_size)
251 render :template => 'system/filer', :locals => {
252 :items => @ground_colors, :model => GroundColor,
253 :roles => [@user, @admin], :pager => @paginate
256 format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) }
261 @au = {:count => Author.visible_count}
262 respond_to do |format|
263 format.json { render json: @au.to_json }
269 @author.supply_default
271 respond_to do |format|
274 format.json { render json: @au.to_json(Author.show_json_opt) }
279 @author = Author.edit(params[:id], @operators)
283 @author = Author.new()
284 @author.supply_default
285 @author.attributes = params[:author]
286 @author.overwrite @operators
287 respond_to do |format|
289 flash[:notice] = I18n.t('flash.notice.created', :model => Author.model_name.human)
290 format.html { redirect_to root_path }
291 format.json { render json: @author.to_json(Author.show_json_opt), status: :created }
293 flash[:notice] = I18n.t('flash.notice.not_created', :model => Author.model_name.human)
294 format.html { render action: "new" }
295 format.json { render json: @au.errors, status: :unprocessable_entity }
301 @author = Author.edit(params[:id], @operators)
302 @author.attributes = params[:author]
303 @author.overwrite @operators
305 respond_to do |format|
307 flash[:notice] = I18n.t('flash.notice.updated', :model => Author.model_name.human)
308 format.html { redirect_to '/home/configure' }
309 format.json { head :ok }
311 flash[:notice] = I18n.t('flash.notice.not_updated', :model => Author.model_name.human)
312 format.html { render action: "edit" }
313 format.json { render json: @author.errors, status: :unprocessable_entity }