X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fpanels_controller.rb;h=a24fd71ced243f3bec2dfd770913dc47e529ffee;hb=485e4000dbfba23ea31ca335b8e131075a7b1c7d;hp=7220b2f785c62e1a3eaf7c571d20777346785cc3;hpb=c5c2d866ddd974f3e8f36c2879a54bf39de028c3;p=pettanr%2Fpettanr.git diff --git a/app/controllers/panels_controller.rb b/app/controllers/panels_controller.rb index 7220b2f7..a24fd71c 100644 --- a/app/controllers/panels_controller.rb +++ b/app/controllers/panels_controller.rb @@ -4,7 +4,7 @@ class PanelsController < ApplicationController before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch] else before_filter :authenticate_reader, :only => [ - :index, :show, :by_scroll, :by_sheet, :by_author, :count, :count_by_scroll, :count_by_sheet, :count_by_author + :index, :show, :by_scroll, :by_sheet, :by_author, :by_speech_balloon_template, :count, :count_by_scroll, :count_by_sheet, :count_by_author, :count_by_speech_balloon_template ] before_filter :authenticate_user, :only => [:new, :edit, :create, :update, :destroy, :catch] before_filter :authenticate_author, :only => [:new, :edit, :create, :update, :destroy, :catch] @@ -13,9 +13,28 @@ class PanelsController < ApplicationController def self.model Panel end - + private + def panel_list + set_list + list_result = @list.open(@operators, + {:id => params[:id], :page => params[:page], :page_size => params[:page_size]} + ) + @items = list_result.items + @pager = list_result.paginate + respond_to do |format| + format.html + format.json { render json: @items.to_json } + format.atom + format.rss + end + end + public def index - filer_list + if params[:mode] == 'filer' + filer_list + else + panel_list + end end def by_scroll @@ -30,19 +49,15 @@ class PanelsController < ApplicationController filer_list end + def by_speech_balloon_template + filer_list + end + def show_html_format 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 + @new_scroll_items = assist_items('scroll', 'private') + @fresh_scroll_items = assist_items('scroll_panel', 'private').map {|sp| sp.scroll} end } end @@ -52,7 +67,7 @@ class PanelsController < ApplicationController respond_to do |format| show_html_format format show_prof_format format - show_json_format format + show_json_format_for_root format end end @@ -72,97 +87,120 @@ class PanelsController < ApplicationController list_count end + def count_by_speech_balloon_template + list_count + end + 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::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: @item.to_json } end 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 } + format.html { + flash[:notice] = I18n.t('flash.notice.not_created', :model => @my_model_class.model_name.human) + @editor = Editor::PanelEditor.new @item, @operators + render :template => @editor.template_name, :locals => { + :editor => @editor + } + } + not_created_json_format format end end end - + def update - @panel = Panel.edit(params[:id], @operators) + @item = Panel.edit(params[:id], @operators) + @item.boost jsn = nil if params[:json] jsn = JSON.parse(params[:json]) end @prm = params[:panel] || jsn + self.model.fold_extend_settings @prm + @item.attributes = @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 @item.packed_attributes, @operators + updated_html_format format + updated_json_format format else - format.html { render action: "edit" } - format.json { render json: @panel.errors, status: :unprocessable_entity } + format.html { + flash[:notice] = I18n.t('flash.notice.not_updated', :model => @my_model_class.model_name.human) + @editor = Editor::PanelEditor.new @item, @operators + render :template => @editor.template_name, :locals => { + :editor => @editor + } + } + not_updated_json_format format end end end - + def destroy - @panel = Panel.edit(params[:id], @operators) + @item = Panel.edit(params[:id], @operators) respond_to do |format| Panel.transaction do - if @panel.destroy_with_elements + if @item.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 } + format.html { redirect_to @item } + format.json { render json: @item.errors, status: :unprocessable_entity } end end end end def catch - @panel = Panel.edit(params[:id], @operators) + @item = Panel.edit(params[:id], @operators) respond_to do |format| - @operators.author.working_panel_id = @panel.id + @operators.author.working_panel_id = @item.id if @operators.author.save - format.html { redirect_to @panel } + format.html { redirect_to @item } else end end