X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fcontrollers%2Fhome_controller.rb;h=716bedce6095cc7a5943fd012831552fa08d26c0;hb=783369b9535f6f7e96d1242aec09e06995f364bc;hp=c2981994873854ed27fcbbdc7111c60b66752942;hpb=514024d798e72616f47ede24e6cf363f3979a4d1;p=pettanr%2Fpettanr.git diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index c2981994..716bedce 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,9 +1,11 @@ class HomeController < ApplicationController -layout 'test' - before_filter :authenticate_user!, :only => [ - :index, :show, :profile, :configure, :create_token, :delete_token, :step2, :save_step2, :step3, :save_step3, - :comic, :picture + layout 'test' if MagicNumber['test_layout'] + before_filter :authenticate_user, :only => [ + :index, :show, :profile, :configure, :create_token, :delete_token, + :scrolls, :scroll_panels, :comics, :stories, :story_sheets, :sheets, :sheet_panels, :panels, :resource_pictures, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors ] + before_filter :authenticate_author, :only => [:scrolls, :scroll_panels, :comics, :stories, :story_sheets, :sheets, :sheet_panels, :panels, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors] + before_filter :authenticate_artist, :only => [:resource_pictures] def index end @@ -15,84 +17,248 @@ layout 'test' end def create_token - respond_to do |format| - if @user.create_token - format.html { redirect_to({:action => :configure}, {:notice => 'user token was successfully created.'}) } - else - format.html { render action: "auth_token" } + if @user.create_token + respond_to do |format| + flash[:notice] = I18n.t('flash.notice.created', :model => User.human_attribute_name(:authentication_token)) + format.html { redirect_to({:action => :configure}) } end + else + flash[:notice] = I18n.t('flash.notice.not_created', :model => User.human_attribute_name(:authentication_token)) + format.html { render action: "configure" } end end def delete_token - @user.delete_token + if @user.delete_token + respond_to do |format| + flash[:notice] = I18n.t('flash.notice.destroyed', :model => User.human_attribute_name(:authentication_token)) + format.html { redirect_to :action => :configure} + end + else + flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => User.human_attribute_name(:authentication_token)) + format.html { render action: "configure" } + end + end + + def scrolls + model = Scroll + controller = Pettanr::Application::manifest.controller_managers[model.item_name] + action_name = 'private' + @action = controller.open(action_name, params, @operators) + @items = @action.items + respond_to do |format| - format.html { redirect_to :action => :configure} + format.html { + @filer = @action.filer + render :template => 'system/filer', :locals => { + :filer => @filer + } + } + format.json { render json: @items.to_json(Scroll.list_json_opt) } end end - def step2 + def scroll_panels + @page = Author.page params[:page] + @page_size = Author.scroll_panel_page_size params[:page_size] + @scroll_panels = ScrollPanel.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = ScrollPanel.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @scroll_panels, :model => ScrollPanel, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) } + end end - def save_step2 + def comics + @page = Author.page params[:page] + @page_size = Author.comic_page_size params[:page_size] + @comics = Comic.mylist(@author, @page, @page_size) + respond_to do |format| - if @author.step2(params[:author][:name]) - a = if params[:step3].to_i == 1 - :step3 - else - :index - end - format.html { redirect_to({:action => a}, {:notice => 'your name was successfully updated.'}) } - else - format.html { render action: "step2" } - end + format.html { + @paginate = Comic.mylist_paginate(@author, @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) } end end - def step3 + def stories + @page = Author.page params[:page] + @page_size = Author.story_page_size params[:page_size] + @stories = Story.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = Story.mylist_paginate(@author, @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 end - def save_step3 - if @author.artist? - redirect_to :action => :index - else - @artist = Artist.new params[:artist] - respond_to do |format| - if @artist.save - format.html { redirect_to({:action => :index}, {:notice => 'artist was successfully registered.'}) } - else - format.html { render action: "step3" } - end - end + def story_sheets + @page = Author.page params[:page] + @page_size = Author.story_sheet_page_size params[:page_size] + @story_sheets = StorySheet.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = StorySheet.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @story_sheets, :model => StorySheet, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) } end end - def comic - @comics = Comic.find(:all, - :include => :author, :conditions => ['author_id = ?', @author.id], - :order => 'updated_at desc', :limit => 20 - ) + def sheets + @page = Author.page params[:page] + @page_size = Author.sheet_page_size params[:page_size] + @sheets = Sheet.mylist(@author, @page, @page_size) respond_to do |format| - format.html # index.html.erb - format.json { render json: @comics } + format.html { + @paginate = Sheet.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @sheets, :model => Sheet, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @sheets.to_json(Sheet.list_json_opt) } end end - def picture - if @author.artist? - @original_pictures = OriginalPicture.find(:all, - :include => [:artist, :license, :resource_picture], :conditions => ['artist_id = ?', @author.artist.id], - :order => 'updated_at', :limit => 20 - ) + def sheet_panels + @page = Author.page params[:page] + @page_size = Author.sheet_panel_page_size params[:page_size] + @sheet_panels = SheetPanel.mylist(@author, @page, @page_size) - respond_to do |format| - format.html # index.html.erb - format.json { render :json => @original_pictures.to_json( - :include => [:resource_picture, :artist, :license] - ) } - end - else + respond_to do |format| + format.html { + @paginate = SheetPanel.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @sheet_panels, :model => SheetPanel, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) } + end + end + + def panels + @page = Author.page params[:page] + @page_size = Author.panel_page_size params[:page_size] + @panels = Panel.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = Panel.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @panels, :model => Panel, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render text: Panel.list_as_json_text(@panels) } + end + end + + def panel_pictures + @page = Author.page params[:page] + @page_size = Author.panel_picture_page_size params[:page_size] + @panel_pictures = PanelPicture.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = PanelPicture.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @panel_pictures, :model => PanelPicture, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) } + end + end + + def speech_balloons + @page = Author.page params[:page] + @page_size = Author.speech_balloon_page_size params[:page_size] + @speech_balloons = SpeechBalloon.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = SpeechBalloon.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @speech_balloons, :model => SpeechBalloon, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) } + end + end + + def ground_pictures + @page = Author.page params[:page] + @page_size = Author.ground_picture_page_size params[:page_size] + @ground_pictures = GroundPicture.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = GroundPicture.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @ground_pictures, :model => GroundPicture, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) } + end + end + + def ground_colors + @page = Author.page params[:page] + @page_size = Author.ground_color_page_size params[:page_size] + @ground_colors = GroundColor.mylist(@author, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = GroundColor.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @ground_colors, :model => GroundColor, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) } + end + end + + def resource_pictures + @page = Author.page params[:page] + @page_size = Author.resource_picture_page_size params[:page_size] + @resource_pictures = ResourcePicture.mylist(@artist, @page, @page_size) + + respond_to do |format| + format.html { + @paginate = ResourcePicture.mylist_paginate(@author, @page, @page_size) + render :template => 'system/filer', :locals => { + :items => @resource_pictures, :model => ResourcePicture, + :roles => [@user, @admin], :pager => @paginate + } + } + format.json { render json: @resource_pictures.to_json(ResourcePicture.list_json_opt) } end end