OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / controllers / comics_controller.rb
1 class ComicsController < ApplicationController
2   if Manifest.manifest.magic_numbers['run_mode'] == 0
3     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
4     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
5   else
6     before_filter :authenticate_reader, :only => [
7       :index, :show, :play, :by_story, :by_author
8     ]
9     before_filter :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
10     before_filter :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
11   end
12   
13   def index
14     filer_list
15   end
16   
17   def by_story
18     filer_list
19   end
20   
21   def by_author
22     filer_list
23   end
24   
25   def show_html_format format
26     format.html {
27       play_list = Locmare::ListGroup.list(
28         'comic_stories', 'by_comic', @operators, 
29         {:id => @item.id, :my_play => @item.own?(@operators)}
30       )
31       @play_count = play_list.count(@operators)
32     }
33   end
34   
35   def show
36     set_show
37     respond_to do |format|
38       show_html_format format
39       show_prof_format format
40       show_json_format format
41       format.atom 
42       format.rss 
43     end
44   end
45   
46   def play
47     set_play
48     play_list
49     # no limit
50     # no pager
51     respond_to do |format|
52       format.html {
53         if @item.own? @operators
54           @new_story_items = assist_items('home', 'stories')
55         end
56       }
57       list_json_format @list, format
58     end
59   end
60   
61   def new
62     form_new
63   end
64   
65   def edit
66     form_edit
67   end
68   
69   def create
70     set_model
71     @item = @my_model_class.new
72     @item.supply_default 
73     @my_model_class.fold_extend_settings params[@my_model_class.item_name]
74     @item.attributes = params[@my_model_class.item_name]
75     @item.overwrite @operators
76     render_create
77   end
78   
79   def update
80     set_edit
81     @my_model_class.fold_extend_settings params[@my_model_class.item_name]
82     @item.attributes = params[@my_model_class.item_name]
83     @item.overwrite @operators
84     render_update
85   end
86   
87   def destroy
88     @item = Comic.edit(params[:id], @operators)
89     respond_to do |format|
90       if @item.destroy_with_leafs
91         flash[:notice] = I18n.t('flash.notice.destroyed', :model => Comic.model_name.human)
92         format.html { redirect_to '/home/comics' }
93         format.json { head :ok }
94       else
95         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Comic.model_name.human)
96         format.html { redirect_to @item }
97         format.json { render json: @item.errors, status: :unprocessable_entity }
98       end
99     end
100   end
101 end