1 class PanelsController < ApplicationController
2 layout 'test' if MagicNumber['test_layout']
3 if MagicNumber['run_mode'] == 0
4 before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy, :catch]
5 before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch]
7 before_filter :authenticate_reader, :only => [:index, :show, :scroll_panels, :scrolls, :sheet_panels, :sheets, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors, :by_scroll, :by_sheet, :by_author]
8 before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy, :catch]
9 before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch]
66 @item = Panel.show(params[:id], @operators)
68 respond_to do |format|
72 @new_scroll_items = assist_items('scroll', 'private_list')
73 @new_scroll_filer = assist_filer 'scroll', @new_scroll_items
74 @fresh_scroll_items = assist_items('scroll_panel', 'private_list').map {|sp| sp.scroll}
75 @fresh_scroll_filer = assist_filer 'scroll', @fresh_scroll_items
77 @new_sheet_items = assist_items('sheet', 'private_list')
78 @new_sheet_filer = assist_filer 'sheet', @new_sheet_items
79 @fresh_sheet_items = assist_items('sheet_panel', 'private_list').map {|sp| sp.sheet}
80 @fresh_sheet_filer = assist_filer 'sheet', @fresh_sheet_items
84 format.json { render json: @item.panel_elements_as_json }
89 @panel = {:count => Panel.visible_count}
90 respond_to do |format|
91 format.json { render json: @panel.to_json }
99 respond_to do |format|
102 format.json { render json: @panel.panel_elements_as_json }
107 @panel = Panel.edit(params[:id], @operators)
108 respond_to do |format|
116 @panel.supply_default
119 jsn = JSON.parse_no_except(params[:json])
121 @prm = params[:panel] || jsn
122 respond_to do |format|
123 if @panel.store @prm, @operators
124 flash[:notice] = I18n.t('flash.notice.created', :model => Panel.model_name.human)
125 format.html { redirect_to @panel }
126 format.json { render json: @panel.panel_elements_as_json, status: :created, location: @panel }
128 format.html { render action: "new" }
129 format.json { render json: @panel.errors, status: :unprocessable_entity }
135 @panel = Panel.edit(params[:id], @operators)
138 jsn = JSON.parse(params[:json])
140 @prm = params[:panel] || jsn
141 respond_to do |format|
142 if @panel.store @prm, @operators
143 flash[:notice] = I18n.t('flash.notice.updated', :model => Panel.model_name.human)
144 format.html { redirect_to @panel }
145 format.json { head :ok }
147 format.html { render action: "edit" }
148 format.json { render json: @panel.errors, status: :unprocessable_entity }
154 @panel = Panel.edit(params[:id], @operators)
155 respond_to do |format|
157 if @panel.destroy_with_elements
158 flash[:notice] = I18n.t('flash.notice.destroyed', :model => Panel.model_name.human)
159 format.html { redirect_to '/home/panels' }
160 format.json { head :ok }
162 flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Panel.model_name.human)
163 format.html { redirect_to @panel }
164 format.json { render json: @panel.errors, status: :unprocessable_entity }
171 @panel = Panel.edit(params[:id], @operators)
173 respond_to do |format|
174 @operators.author.working_panel_id = @panel.id
175 if @operators.author.save
176 format.html { redirect_to @panel }