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]
14 @@controller = Pettanr::Application::manifest.controller_managers[@@model.item_name]
15 @@profiler_manager = Pettanr::Application::manifest.profiler_managers[@@model.item_name]
18 action_name = params[:action]
19 @action = @@controller.open(action_name, params, @operators)
20 @items = @action.items
21 respond_to do |format|
23 @filer = @action.filer
24 render :template => 'system/filer', :locals => {
28 format.json { render json: @items.to_json(@@model.list_json_opt) }
35 @item = Author.show(params[:id], @operators)
37 respond_to do |format|
42 format.json { render :json => @item.to_json(Author.show_json_opt) }
47 @au = Author.show(params[:id], [@user, @admin])
49 @page = Author.page params[:page]
50 @page_size = Author.scroll_page_size params[:page_size]
51 @scrolls = Scroll.himlist(@au, @page, @page_size)
53 respond_to do |format|
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
61 format.json { render json: @scrolls.to_json(Scroll.list_json_opt) }
66 @au = Author.show(params[:id], [@user, @admin])
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)
72 respond_to do |format|
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
80 format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) }
85 @au = Author.show(params[:id], [@user, @admin])
87 @page = Author.page params[:page]
88 @page_size = Author.comic_page_size params[:page_size]
89 @comics = Comic.himlist(@au, @page, @page_size)
91 respond_to do |format|
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
99 format.json { render json: @comics.to_json(Comic.list_json_opt) }
104 @au = Author.show(params[:id], [@user, @admin])
106 @page = Author.page params[:page]
107 @page_size = Author.story_page_size params[:page_size]
108 @stories = Story.himlist(@au, @page, @page_size)
110 respond_to do |format|
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
118 format.json { render json: @stories.to_json(Story.list_json_opt) }
123 @au = Author.show(params[:id], [@user, @admin])
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)
129 respond_to do |format|
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
137 format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) }
142 @au = Author.show(params[:id], [@user, @admin])
144 @page = Author.page params[:page]
145 @page_size = Author.sheet_page_size params[:page_size]
146 @sheets = Sheet.himlist(@au, @page, @page_size)
148 respond_to do |format|
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
156 format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
161 @au = Author.show(params[:id], [@user, @admin])
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)
167 respond_to do |format|
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
175 format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) }
180 @au = Author.show(params[:id], [@user, @admin])
182 @page = Author.page params[:page]
183 @page_size = Author.panel_page_size params[:page_size]
184 @panels = Panel.himlist(@au, @page, @page_size)
186 respond_to do |format|
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
194 format.json { render text: Panel.list_as_json_text(@panels) }
199 @au = Author.show(params[:id], [@user, @admin])
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)
205 respond_to do |format|
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
213 format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) }
218 @au = Author.show(params[:id], [@user, @admin])
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)
224 respond_to do |format|
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
232 format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
237 @au = Author.show(params[:id], [@user, @admin])
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)
243 respond_to do |format|
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
251 format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) }
256 @au = Author.show(params[:id], [@user, @admin])
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)
262 respond_to do |format|
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
270 format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) }
275 @au = {:count => Author.visible_count}
276 respond_to do |format|
277 format.json { render json: @au.to_json }
282 @authors = Author.all
284 respond_to do |format|
285 format.html { render layout: 'system' }
290 @au = Author.find(params[:id])
292 respond_to do |format|
293 format.html { render layout: 'system' }
299 @author.supply_default
301 respond_to do |format|
302 format.html # new.html.erb
304 format.json { render json: @au.to_json(Author.show_json_opt) }
309 @author = Author.edit(params[:id], @operators)
313 @author = Author.new()
314 @author.supply_default
315 @author.attributes = params[:author]
316 @author.overwrite @operators
317 respond_to do |format|
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 }
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 }
331 @author = Author.edit(params[:id], @operators)
332 @author.attributes = params[:author]
333 @author.overwrite @operators
335 respond_to do |format|
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 }
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 }