X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fcomics_controller.rb;h=975288b0b0fb18ad15af27d296d8dc320ea8eb90;hb=665761e56525215946e2547a70c82c603d5047af;hp=789d1a1a85abe14ceb8f01a22e362dd99797ab5c;hpb=d8b50c09ff9034a9abd9cf10ae839e0402df0e7c;p=pettanr%2Fpettanr.git diff --git a/app/controllers/comics_controller.rb b/app/controllers/comics_controller.rb index 789d1a1a..975288b0 100644 --- a/app/controllers/comics_controller.rb +++ b/app/controllers/comics_controller.rb @@ -1,135 +1,117 @@ class ComicsController < 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 => [:top, :index, :show] + before_filter :authenticate_reader, :only => [ + :index, :show, :play, :by_story, :by_author, :count, :count_by_story, :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 index - @page = Comic.page params[:page] - @page_size = Comic.page_size params[:page_size] - @comics = Comic.list(@page, @page_size) - respond_to do |format| - format.html { - @paginate = Comic.list_paginate(@page, @page_size) - render :template => 'system/filer', :locals => { - :items => @comics, :model => Comic, - :roles => [@user, @admin], :pager => @paginate - } - } - format.json { render json: @comics.to_json(Comic.list_json_opt) } - format.atom - format.rss - end + filer_list end - + + def by_story + filer_list + end + + def by_author + filer_list + end + + def show_html_format format + format.html { + play_list = Locmare::ListGroup.list( + 'comic_stories', 'by_comic', @operators, + {:id => @item.id, :my_play => @item.own?(@operators)} + ) + @play_count = play_list.count(@operators) + } + end + def show - @comic = Comic.show(params[:id], [@user, @admin]) - + set_show respond_to do |format| - format.html - format.prof { render :template => 'top/prof', :layout => true } - format.json { render json: @comic.to_json(Comic.show_json_opt) } + show_html_format format + show_prof_format format + show_json_format format format.atom format.rss end end - - def count - @comic = {:count => Comic.visible_count} + + def play + set_play + @list = Locmare::ListGroup.list( + @my_controller.name, + @my_action.name, @operators, + {:id => @item.id, :offset => 0, :limit => -1}# no limit + ) + @items = @list.items(@operators) + @count = @list.count @operators + # no pager respond_to do |format| - format.json { render json: @comic.to_json } + format.html { + if @item.own? @operators + @new_story_items = assist_items('home', 'stories') + end + } + format.json { render json: @items.to_json } end end - def list - @comics = Comic.all - - respond_to do |format| - format.html { render layout: 'system' }# index.html.erb - format.json { render json: @comics } - end + def count + list_count end - - def browse - @comic = Comic.find(params[:id]) - - respond_to do |format| - format.html { render layout: 'system' } # show.html.erb - format.json { render json: @comic } - end + + def count_by_story + list_count + end + + def count_by_author + list_count end def new - @comic = Comic.new - @comic.supply_default - respond_to do |format| - format.html # new.html.erb - format.js - format.json { render json: @comic.to_json(Comic.show_json_opt) } - end + form_new end - + def edit - @comic = Comic.edit(params[:id], @author) - respond_to do |format| - format.html - format.js - end + form_edit end - + def create - @comic = Comic.new - @comic.supply_default - @comic.attributes = params[:comic] - @comic.overwrite @author - - respond_to do |format| - if @comic.save - flash[:notice] = I18n.t('flash.notice.created', :model => Comic.model_name.human) - format.html { redirect_to @comic } - format.json { render json: @comic.to_json(Comic.show_json_opt), status: :created, location: @comic } - else - flash[:notice] = I18n.t('flash.notice.not_created', :model => Comic.model_name.human) - format.html { render action: "new" } - format.json { render json: @comic.errors, status: :unprocessable_entity } - end - end + set_model + @item = @my_model_class.new + @item.supply_default + @my_model_class.fold_extend_settings params[@my_model_class.item_name] + @item.attributes = params[@my_model_class.item_name] + @item.overwrite @operators + render_create end - + def update - @comic = Comic.edit(params[:id], @author) - @comic.attributes = params[:comic] - @comic.overwrite @author - respond_to do |format| - if @comic.save - flash[:notice] = I18n.t('flash.notice.updated', :model => Comic.model_name.human) - format.html { redirect_to @comic } - format.json { head :ok } - else - flash[:notice] = I18n.t('flash.notice.not_updated', :model => Comic.model_name.human) - format.html { render action: "edit" } - format.json { render json: @comic.errors, status: :unprocessable_entity } - end - end + set_edit + @my_model_class.fold_extend_settings params[@my_model_class.item_name] + @item.attributes = params[@my_model_class.item_name] + @item.overwrite @operators + render_update end - + def destroy - @comic = Comic.edit(params[:id], @author) + @item = Comic.edit(params[:id], @operators) respond_to do |format| - if @comic.destroy_with_story + if @item.destroy_with_leafs flash[:notice] = I18n.t('flash.notice.destroyed', :model => Comic.model_name.human) format.html { redirect_to '/home/comics' } format.json { head :ok } else flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Comic.model_name.human) - format.html { redirect_to @comic } - format.json { render json: @comic.errors, status: :unprocessable_entity } + format.html { redirect_to @item } + format.json { render json: @item.errors, status: :unprocessable_entity } end end end