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]
11 before_filter :authenticate_admin!, :only => [:list, :browse]
22 @item = Author.show(params[:id], @operators)
24 respond_to do |format|
29 format.json { render :json => @item.to_json(Author.show_json_opt) }
34 @au = Author.show(params[:id], [@user, @admin])
36 @page = Author.page params[:page]
37 @page_size = Author.scroll_page_size params[:page_size]
38 @scrolls = Scroll.himlist(@au, @page, @page_size)
40 respond_to do |format|
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
48 format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
53 @au = Author.show(params[:id], [@user, @admin])
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)
59 respond_to do |format|
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
67 format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) }
72 @au = Author.show(params[:id], [@user, @admin])
74 @page = Author.page params[:page]
75 @page_size = Author.comic_page_size params[:page_size]
76 @comics = Comic.himlist(@au, @page, @page_size)
78 respond_to do |format|
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
86 format.json { render json: @comics.to_json(Comic.list_json_opt) }
91 @au = Author.show(params[:id], [@user, @admin])
93 @page = Author.page params[:page]
94 @page_size = Author.story_page_size params[:page_size]
95 @stories = Story.himlist(@au, @page, @page_size)
97 respond_to do |format|
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
105 format.json { render json: @stories.to_json(Story.list_json_opt) }
110 @au = Author.show(params[:id], [@user, @admin])
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)
116 respond_to do |format|
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
124 format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) }
129 @au = Author.show(params[:id], [@user, @admin])
131 @page = Author.page params[:page]
132 @page_size = Author.sheet_page_size params[:page_size]
133 @sheets = Sheet.himlist(@au, @page, @page_size)
135 respond_to do |format|
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
143 format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
148 @au = Author.show(params[:id], [@user, @admin])
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)
154 respond_to do |format|
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
162 format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) }
167 @au = Author.show(params[:id], [@user, @admin])
169 @page = Author.page params[:page]
170 @page_size = Author.panel_page_size params[:page_size]
171 @panels = Panel.himlist(@au, @page, @page_size)
173 respond_to do |format|
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
181 format.json { render text: Panel.list_as_json_text(@panels) }
186 @au = Author.show(params[:id], [@user, @admin])
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)
192 respond_to do |format|
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
200 format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) }
205 @au = Author.show(params[:id], [@user, @admin])
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)
211 respond_to do |format|
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
219 format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
224 @au = Author.show(params[:id], [@user, @admin])
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)
230 respond_to do |format|
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
238 format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) }
243 @au = Author.show(params[:id], [@user, @admin])
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)
249 respond_to do |format|
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
257 format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) }
262 @au = {:count => Author.visible_count}
263 respond_to do |format|
264 format.json { render json: @au.to_json }
269 @authors = Author.all
271 respond_to do |format|
272 format.html { render layout: 'system' }
277 @au = Author.find(params[:id])
279 respond_to do |format|
280 format.html { render layout: 'system' }
286 @author.supply_default
288 respond_to do |format|
289 format.html # new.html.erb
291 format.json { render json: @au.to_json(Author.show_json_opt) }
296 @author = Author.edit(params[:id], @operators)
300 @author = Author.new()
301 @author.supply_default
302 @author.attributes = params[:author]
303 @author.overwrite @operators
304 respond_to do |format|
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 }
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 }
318 @author = Author.edit(params[:id], @operators)
319 @author.attributes = params[:author]
320 @author.overwrite @operators
322 respond_to do |format|
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 }
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 }