X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fstories_controller.rb;h=378a275ccba14c143a3924faaa4973f15157be23;hb=6fb8bc9e0e2b4ee9840f42e2915598db46b9a4b8;hp=f2ee0825e68fd1984ecd0a6983f8f575434234dd;hpb=d06c85598de5091129d22bfdcc650fae261a6219;p=pettanr%2Fpettanr.git diff --git a/app/controllers/stories_controller.rb b/app/controllers/stories_controller.rb index f2ee0825..378a275c 100644 --- a/app/controllers/stories_controller.rb +++ b/app/controllers/stories_controller.rb @@ -1,118 +1,130 @@ class StoriesController < ApplicationController - layout 'test' if Pettanr::TestLayout - if Const.run_mode == 0 - before_filter :authenticate_user!, :only => [:new, :create, :edit, :update, :destroy] + layout 'test' if MagicNumber['test_layout'] + if MagicNumber['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_user!, :only => [:index, :show, :new, :create, :edit, :update, :destroy] + before_filter :authenticate_reader, :only => [:index, :show, :play] + 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] - def show - @comic = Comic.show(params[:id], @author) - cnt = Story.count(:conditions => ['comic_id = ?', @comic.id]).to_i - @offset = Story.offset cnt, params[:offset] - @panel_count = Story.panel_count cnt, params[:count] - @stories = Story.list(@comic, @author, @offset, @panel_count) - respond_to do |format| - format.html # index.html.erb - format.json { - render :json => @stories.to_json_list - } - format.jsonp { - render :json => "callback(" + @stories.to_json_list + ");" - } - end + def self.model + Story end - def list - @stories = Story.all + def index + public_list + end + + def show + @item = Story.show(params[:id], @operators) respond_to do |format| - format.html { render layout: 'system' }# index.html.erb - format.json { render json: @stories } + format.html { + @story = @item + if @operators.author + @new_sheets = Sheet.mylist(@operators.author, 1, 5) + end + } + format_prof format + format.json { render json: @item.to_json(Story.show_json_opt) } end end - - def browse - @story = Story.find(params[:id]) - + + def play + @story = Story.show(params[:id], [@user, @admin]) + @page = StorySheet.page params[:page] + @sheet = StorySheet.play_sheet(@story, @author, @page) respond_to do |format| - format.html { render layout: 'system' } # show.html.erb - format.json { render json: @story } + format.html { + @paginate = StorySheet.play_paginate(@story, @page) + if @author + @new_sheets = Sheet.mylist(@author, 1, 5) + end + } + format.json { + if @sheet + @story_sheets = SheetPanel.play_list @sheet, @author + render text: SheetPanel.list_as_json_text(@story_sheets, @author) + else + render text: '' + end + } + format.jsonp { + render :json => "callback(" + @story_sheets.to_json_list + ");" + } end end - # GET /stories/new - # GET /stories/new.js - # GET /stories/new.json def new @story = Story.new @story.supply_default respond_to do |format| - format.html # new.html.erb + format.html format.js - format.json { render json: @story } + format.json { render json: @story.to_json(Story.show_json_opt) } end end - # GET /stories/1/edit - # GET /stories/1.js/edit def edit - @story = Story.show(params[:id], @author) + @story = Story.edit(params[:id], @operators) respond_to do |format| format.html format.js end end - # POST /stories - # POST /stories.json def create @story = Story.new @story.supply_default @story.attributes = params[:story] - @story.overwrite @author + @story.overwrite + @comic = Comic.edit(@story.comic_id, @operators) if @story.comic_id respond_to do |format| - if @story.store - format.html { redirect_to action: :show, id: @story.comic_id } - format.json { render json: @story.to_json() } + if @story.store @operators + flash[:notice] = I18n.t('flash.notice.created', :model => Story.model_name.human) + format.html { redirect_to play_story_path(@story, :page => @story.t.to_i + 1) } + format.json { render json: @story.to_json(Story.show_json_opt) } else + flash[:notice] = I18n.t('flash.notice.not_created', :model => Story.model_name.human) format.html { render action: "new" } format.json { render json: @story.errors, status: :unprocessable_entity } end end end - # PUT /stories/1 - # PUT /stories/1.json def update - @story = Story.edit(params[:id], @author) + @story = Story.edit(params[:id], @operators) ot = @story.t @story.attributes = params[:story] - @story.overwrite @author + @story.overwrite respond_to do |format| - if @story.store ot - format.html { redirect_to action: :show, id: @story.comic_id } + if @story.store @operators, ot + flash[:notice] = I18n.t('flash.notice.updated', :model => Story.model_name.human) + format.html { redirect_to play_story_path(@story, :page => @story.t.to_i + 1) } format.json { head :ok } else + flash[:notice] = I18n.t('flash.notice.not_updated', :model => Story.model_name.human) format.html { render action: "edit" } format.json { render json: @story.errors, status: :unprocessable_entity } end end end - # DELETE /stories/1 - # DELETE /stories/1.js - # DELETE /stories/1.json def destroy - @story = Story.edit(params[:id], @author) - Story.transaction do - @story.destroy_and_shorten - end + @story = Story.edit(params[:id], @operators) respond_to do |format| - format.html { redirect_to story_path(@story.comic) } - format.json { head :ok } + if @story.destroy_and_shorten + flash[:notice] = I18n.t('flash.notice.destroyed', :model => Story.model_name.human) + format.html { redirect_to comic_path(@story.comic)} + format.json { head :ok } + else + flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Story.model_name.human) + format.html { redirect_to story_path(@story) } + format.json { render json: @story.errors, status: :unprocessable_entity } + end end end end