X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fsheets_controller.rb;h=6114a13ae0cf232c800c61aec358ccf98ac19deb;hb=d6d237012089604cdbc61943856d42c0a0472dc7;hp=ab093eb52f02fdfd11ea3d74c221b4c97d36e8fb;hpb=02ea4fc4bbe7a54dd576c1cd700aa9e32710abf8;p=pettanr%2Fpettanr.git diff --git a/app/controllers/sheets_controller.rb b/app/controllers/sheets_controller.rb index ab093eb5..6114a13a 100644 --- a/app/controllers/sheets_controller.rb +++ b/app/controllers/sheets_controller.rb @@ -1,104 +1,92 @@ class SheetsController < ApplicationController - layout 'test' if MagicNumber['test_layout'] - if MagicNumber['run_mode'] == 0 + if Manifest.manifest.magic_numbers['run_mode'] == 0 before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy] before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy] else - before_filter :authenticate_reader, :only => [:index, :show, :play] + before_filter :authenticate_reader, :only => [ + :index, :show, :play, :by_story, :by_panel, :by_author + ] before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy] before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy] end - before_filter :authenticate_admin!, :only => [:list, :browse] - - @@model = Sheet + def index - set_filer - - respond_to do |format| - format_filer format - format.json { render json: @items.to_json(@@model.list_json_opt) } - format.atom - format.rss - end + filer_list end - - def show - @item = Sheet.show(params[:id], @operators) - - respond_to do |format| - format.html { - @sheet = @item - if @operators.author - @new_panels = Panel.mylist(@operators.author, 1, 5) - @new_stories = Story.mylist(@operators.author, 1, 5) - @fresh_stories = StorySheet.mylist(@operators.author, 1, 5).map {|ss| ss.story} - end - } - format_prof format - format.json { render json: @item.to_json(Sheet.show_json_opt) } - format.atom - format.rss - end + + def by_story + filer_list end - - def play - @sheet = Sheet.show(params[:id], [@user, @admin]) - respond_to do |format| - format.html { - if @author - @new_panels = Panel.mylist(@author, 1, 5) - end - } - format.json {render json: @sheet.to_json(Sheet.show_json_opt)} - format.jsonp { - render :json => "callback(" + @sheet_panels.to_json_list + ");" - } - end + + def by_panel + filer_list end - def count - @sheet = {:count => Sheet.visible_count} - respond_to do |format| - format.json { render json: @sheet.to_json } - end + def by_author + filer_list end - def list - @sheets = Sheet.all - + def show_html_format format + format.html { + if @operators.author + @new_panel_items = assist_items('home', 'panels') + + @new_story_items = assist_items('home', 'stories') + @fresh_story_items = assist_items('home', 'story_sheets').map {|ss| ss.story} + end + } + end + + def show + set_show respond_to do |format| - format.html { render layout: 'system' }# index.html.erb - format.json { render json: @sheets } + show_html_format format + show_prof_format format + show_json_format_for_root format end end - - def browse - @sheet = Sheet.find(params[:id]) - + + def play + @item = self.class.model.show(params[:id], @operators) + set_play + list_result = @list.open(@operators, params[:id]) + @items = list_result.items respond_to do |format| - format.html { render layout: 'system' } # show.html.erb - format.json { render json: @sheet } + format.html { + if @operators.author + @new_panel_items = assist_items('panel', 'private') + end + } + format.json { render json: @items.to_json(self.class.model.list_json_opt) } end end def new - @sheet = Sheet.new - @sheet.supply_default + set_new respond_to do |format| - format.html # new.html.erb - format.js - format.json { render json: @sheet.to_json(Sheet.show_json_opt) } + format.html { + @editor = Editor::SheetEditor.new @item, @operators + render :template => @editor.template_name, :locals => { + :editor => @editor + } + } + format.json { render json: @item.to_json } end end - + def edit - @sheet = Sheet.edit(params[:id], @author) + set_edit respond_to do |format| - format.html - format.js + format.html { + @editor = Editor::SheetEditor.new @item, @operators + render :template => @editor.template_name, :locals => { + :editor => @editor + } + } + format.json { render json: @item.to_json } end end - + def create @sheet = Sheet.new @sheet.supply_default @@ -107,42 +95,50 @@ class SheetsController < ApplicationController jsn = JSON.parse_no_except(params[:json]) end @prm = params[:sheet] || jsn - + respond_to do |format| - if @sheet.store @prm, @author - flash[:notice] = I18n.t('flash.notice.created', :model => Sheet.model_name.human) - format.html { redirect_to @sheet } - format.json { render json: @sheet.to_json(Sheet.show_json_opt), status: :created, location: @sheet } + if @sheet.store @prm, @operators + created_html_format format + created_json_format format else - flash[:notice] = I18n.t('flash.notice.not_created', :model => Sheet.model_name.human) - format.html { render action: "new" } - format.json { render json: @sheet.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 - @sheet = Sheet.edit(params[:id], @author) + @sheet = Sheet.edit(params[:id], @operators) jsn = nil if params[:json] jsn = JSON.parse(params[:json]) end @prm = params[:sheet] || jsn respond_to do |format| - if @sheet.store @prm, @author - flash[:notice] = I18n.t('flash.notice.updated', :model => Sheet.model_name.human) - format.html { redirect_to @sheet } - format.json { head :ok } + if @sheet.store @prm, @operators + updated_html_format format + updated_json_format format else - flash[:notice] = I18n.t('flash.notice.not_updated', :model => Sheet.model_name.human) - format.html { render action: "edit" } - format.json { render json: @sheet.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 - @sheet = Sheet.edit(params[:id], @author) + @sheet = Sheet.edit(params[:id], @operators) respond_to do |format| if @sheet.destroy_with_sheet_panel flash[:notice] = I18n.t('flash.notice.destroyed', :model => Sheet.model_name.human)