X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fpanels_controller.rb;h=301b7741379780647f964569ae3f23786febe679;hb=674d4fb2e72c2e1653b13d026af884559fd9eb4e;hp=c781dce906485ee6c2a55bf82c14501488e8273b;hpb=579786aaf9b4b639fcd050e05dffde253fbee523;p=pettanr%2Fpettanr.git diff --git a/app/controllers/panels_controller.rb b/app/controllers/panels_controller.rb index c781dce9..301b7741 100644 --- a/app/controllers/panels_controller.rb +++ b/app/controllers/panels_controller.rb @@ -1,187 +1,161 @@ class PanelsController < ApplicationController - layout 'test' if MagicNumber['test_layout'] - if MagicNumber['run_mode'] == 0 - before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy, :catch] - before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch] + if Manifest.manifest.magic_numbers['run_mode'] == 0 + before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy] + before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy] else - 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] - before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy, :catch] - before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch] - end - - def self.model - Panel + before_filter :authenticate_reader, :only => [ + :index, :show, :by_scroll, :by_sheet, :by_author, :by_speech_balloon_template + ] + before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy] + before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy] + end + + private + def panel_list + set_list + @items = @list.items + @pager = @list.page_status.pager + respond_to do |format| + format.html + list_json_format @list, format + format.atom + format.rss + end end - + public def index - public_list - end - - def scroll_panels - has_many_list - end - - def scrolls - has_many_list - end - - def sheet_panels - has_many_list - end - - def sheets - has_many_list - end - - def panel_pictures - has_many_list - end - - def speech_balloons - has_many_list - end - - def ground_pictures - has_many_list - end - - def ground_colors - has_many_list + if params[:mode] == 'filer' + filer_list + else + panel_list + end end def by_scroll - filter_list + filer_list end def by_sheet - filter_list + filer_list end def by_author - filter_list + filer_list end + def by_speech_balloon_template + filer_list + end - def show - @item = Panel.show(params[:id], @operators) - - respond_to do |format| - format.html { - @panel = @item - if @operators.author - @new_scroll_items = assist_items('scroll', 'private_list') - @new_scroll_filer = assist_filer 'scroll', @new_scroll_items - @fresh_scroll_items = assist_items('scroll_panel', 'private_list').map {|sp| sp.scroll} - @fresh_scroll_filer = assist_filer 'scroll', @fresh_scroll_items - - @new_sheet_items = assist_items('sheet', 'private_list') - @new_sheet_filer = assist_filer 'sheet', @new_sheet_items - @fresh_sheet_items = assist_items('sheet_panel', 'private_list').map {|sp| sp.sheet} - @fresh_sheet_filer = assist_filer 'sheet', @fresh_sheet_items - end - } - format_prof format - format.json { render json: @item.panel_elements_as_json } - end + def show_html_format format + format.html { + if @operators.author + @new_scroll_items = assist_items('home', 'scrolls') + @fresh_scroll_items = assist_items('home', 'scroll_panels').map {|sp| sp.scroll} + end + } end - - def count - @panel = {:count => Panel.visible_count} + + def show + set_show respond_to do |format| - format.json { render json: @panel.to_json } + show_html_format format + show_prof_format format + if params[:with_elements] + show_json_format_for_root format + else + show_json_format format + end end end +=begin def new - @panel = Panel.new - @panel.supply_default + set_new respond_to do |format| format.html { - @editor = Editor::Editor.new @panel, @operators - render :template => 'templates/r/editor/editor', :locals => { + @editor = Editor::PanelEditor.new @item, @operators + render :template => @editor.template_name, :locals => { :editor => @editor } } - format.js - format.json { render json: @panel.panel_elements_as_json } + format.json { render json: @item.to_json } end end - + def edit - @panel = Panel.edit(params[:id], @operators) + set_edit respond_to do |format| format.html { + @editor = Editor::PanelEditor.new @item, @operators + render :template => @editor.template_name, :locals => { + :editor => @editor + } } - format.js + format.json { render json: @item.to_json } end end - +=end + + def new + form_new + end + + def edit + form_edit + end + def create - @panel = Panel.new - @panel.supply_default + set_model + @item = @my_model_class.new +# @item.boosts 'post' jsn = nil if params[:json] jsn = JSON.parse_no_except(params[:json]) end - @prm = params[:panel] || jsn + @prm = if params[:panel] == nil or params[:panel].empty? + jsn + else + params[:panel] + end + @item.class.fold_extend_settings @prm + #@item.refresh respond_to do |format| - if @panel.store @prm, @operators - flash[:notice] = I18n.t('flash.notice.created', :model => Panel.model_name.human) - format.html { redirect_to @panel } - format.json { render json: @panel.panel_elements_as_json, status: :created, location: @panel } + if @item.store @prm, @operators + created_html_format format + created_json_format format else - format.html { render action: "new" } - format.json { render json: @panel.errors, status: :unprocessable_entity } + not_created_html_format format + not_created_json_format format end end end - + def update - @panel = Panel.edit(params[:id], @operators) + @item = Panel.edit(params[:id], @operators) + @item.boosts 'post' jsn = nil if params[:json] jsn = JSON.parse(params[:json]) end @prm = params[:panel] || jsn + @item.class.fold_extend_settings @prm + # @item.refresh respond_to do |format| - if @panel.store @prm, @operators - flash[:notice] = I18n.t('flash.notice.updated', :model => Panel.model_name.human) - format.html { redirect_to @panel } - format.json { head :ok } + if @item.store @prm, @operators + updated_html_format format + updated_json_format format else - format.html { render action: "edit" } - format.json { render json: @panel.errors, status: :unprocessable_entity } + not_updated_html_format format + not_updated_json_format format end end end - + def destroy - @panel = Panel.edit(params[:id], @operators) - respond_to do |format| - Panel.transaction do - if @panel.destroy_with_elements - flash[:notice] = I18n.t('flash.notice.destroyed', :model => Panel.model_name.human) - format.html { redirect_to '/home/panels' } - format.json { head :ok } - else - flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Panel.model_name.human) - format.html { redirect_to @panel } - format.json { render json: @panel.errors, status: :unprocessable_entity } - end - end - end + set_model + @item = @my_model_class.edit(params[:id], @operators) + render_destroy '/home/' + @item.path_name end - def catch - @panel = Panel.edit(params[:id], @operators) - - respond_to do |format| - @operators.author.working_panel_id = @panel.id - if @operators.author.save - format.html { redirect_to @panel } - else - end - end - end - end