X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fstories_controller.rb;h=976ec158a7b5c48b647c537c810694637e801fb4;hb=69b61b39006c1951fc8c08746e884e63e50233b3;hp=c8a836571b19c20dc77766ecff51b1504282e296;hpb=eb5aee94f87dd1a2c7ee7a5a6a0e88ae3e235166;p=pettanr%2Fpettanr.git diff --git a/app/controllers/stories_controller.rb b/app/controllers/stories_controller.rb index c8a83657..976ec158 100644 --- a/app/controllers/stories_controller.rb +++ b/app/controllers/stories_controller.rb @@ -1,157 +1,130 @@ class StoriesController < 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_comic, :by_sheet, :by_author, :count, :count_by_comic, :count_by_sheet, :count_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] + def self.model + Story + end + def index - @page = Story.page params[:page] - @page_size = Story.page_size params[:page_size] - @stories = Story.list(@page, @page_size) - - respond_to do |format| - format.html { - @paginate = Story.list_paginate(@page, @page_size) - render :template => 'system/filer', :locals => { - :items => @stories, :model => Story, - :roles => [@user, @admin], :pager => @paginate - } - } - format.json { render :json => @stories.to_json(Story.list_json_opt) } - end + filer_list end - + + def by_comic + filer_list + end + + def by_sheet + filer_list + end + + def by_author + filer_list + end + + def show_html_format format + format.html { + play_list = Locmare::ListGroup.list 'story_sheet', 'play' + @play_count = play_list.count(@operators, + {:id => @item.id, :my_play => @item.own?(@operators)} + ) + } + end + def show - @item = Story.show(params[:id], [@user, @admin]) - + set_show respond_to do |format| - format.html { - if @author - @new_sheets = Sheet.mylist(@author, 1, 5) - end - } - format_prof format - format.json { render json: @item.to_json(Story.show_json_opt) } + show_html_format format + show_prof_format format + show_json_format format end end def play - @story = Story.show(params[:id], [@user, @admin]) - @page = StorySheet.page params[:page] - @sheet = StorySheet.play_sheet(@story, @author, @page) + params[:offset] = nil + params[:count] = nil + params[:page] ||= 1 + params[:page_size] = 1 + @item = self.class.model.show(params[:id], @operators) + set_play + play_list + @sort_items = @list.items(@operators, + {:id => params[:id], :my_play => @item.own?(@operators)}, + 0, -1 # no limit + ) respond_to do |format| 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: '' + if @item.own? @operators + @new_sheet_items = assist_items('sheet', 'private') end } - format.jsonp { - render :json => "callback(" + @story_sheets.to_json_list + ");" - } + format.json { render json: @items.to_json } end end - def list - @stories = Story.all - - respond_to do |format| - format.html { render layout: 'system' }# index.html.erb - format.json { render json: @stories } - end + def count + list_count end - - def browse - @story = Story.find(params[:id]) - - respond_to do |format| - format.html { render layout: 'system' } # show.html.erb - format.json { render json: @story } - end + + def count_by_comic + list_count + end + + def count_by_sheet + list_count + end + + def count_by_author + list_count end def new - @story = Story.new - @story.supply_default - respond_to do |format| - format.html # new.html.erb - format.js - format.json { render json: @story.to_json(Story.show_json_opt) } - end + form_new end - + def edit - @story = Story.edit(params[:id], @author) - respond_to do |format| - format.html - format.js - end + form_edit end - + def create - @story = Story.new - @story.supply_default - @story.attributes = params[:story] - @story.overwrite - @comic = Comic.edit(@story.comic_id, @author) if @story.comic_id - - respond_to do |format| - if @story.store @author - 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 + set_model + @story = @item + @item = @my_model_class.new + @item.supply_default + @item.attributes = params[@my_model_class.item_name] + @item.overwrite @operators + render_create end def update - @story = Story.edit(params[:id], @author) - ot = @story.t - @story.attributes = params[:story] - @story.overwrite - respond_to do |format| - if @story.store @author, 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 + set_edit + @story = @item + @item.attributes = params[@my_model_class.item_name] + @item.overwrite @operators + render_update end - + def destroy - @story = Story.edit(params[:id], @author) + @item = Story.edit(params[:id], @operators) respond_to do |format| - if @story.destroy_and_shorten + if @item.destroy_with_leafs flash[:notice] = I18n.t('flash.notice.destroyed', :model => Story.model_name.human) - format.html { redirect_to comic_path(@story.comic)} + format.html { redirect_to '/home/stories' } 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 } + format.html { redirect_to @item } + format.json { render json: @item.errors, status: :unprocessable_entity } end end end + end