OSDN Git Service

Merge branch 'v06' of git.sourceforge.jp:/gitroot/pettanr/pettanr into v06
[pettanr/pettanr.git] / app / controllers / stories_controller.rb
1 class StoriesController < 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_comic, :by_sheet, :by_author, :count, :count_by_comic, :count_by_sheet, :count_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 self.model
14     Story
15   end
16   
17   def index
18     filer_list
19   end
20   
21   def by_comic
22     filer_list
23   end
24   
25   def by_sheet
26     filer_list
27   end
28   
29   def by_author
30     filer_list
31   end
32   
33   def show_html_format format
34     format.html {
35       play_list = Locmare::ListGroup.list 'story_sheet', 'play'
36       @play_count = play_list.count(@operators, 
37         {:id => @item.id, :my_play => @item.own?(@operators)}
38       )
39     }
40   end
41   
42   def show
43     set_show
44     respond_to do |format|
45       show_html_format format
46       show_prof_format format
47       show_json_format format
48     end
49   end
50   
51   def play
52     params[:offset] = nil
53     params[:count] = nil
54     params[:page] ||= 1
55     params[:page_size] = 1
56     @item = self.class.model.show(params[:id], @operators)
57     set_play
58     play_list
59     @sort_items = @list.items(@operators, 
60       {:id => params[:id], :my_play => @item.own?(@operators)},
61       0, -1 # no limit
62     )
63     respond_to do |format|
64       format.html {
65         if @item.own? @operators
66           @new_sheet_items = assist_items('sheet', 'private')
67         end
68       }
69       format.json { render json: @items.to_json }
70     end
71   end
72   
73   def count
74     list_count
75   end
76   
77   def count_by_comic
78     list_count
79   end
80   
81   def count_by_sheet
82     list_count
83   end
84   
85   def count_by_author
86     list_count
87   end
88   
89   def new
90     form_new
91   end
92   
93   def edit
94     form_edit
95   end
96   
97   def create
98     set_model
99     @story = @item
100     @item = @my_model_class.new
101     @item.supply_default 
102     @item.attributes = params[@my_model_class.item_name]
103     @item.overwrite @operators
104     render_create
105   end
106   
107   def update
108     set_edit
109     @story = @item
110     @item.attributes = params[@my_model_class.item_name]
111     @item.overwrite @operators
112     render_update
113   end
114   
115   def destroy
116     @item = Story.edit(params[:id], @operators)
117     respond_to do |format|
118       if @item.destroy_with_leafs
119         flash[:notice] = I18n.t('flash.notice.destroyed', :model => Story.model_name.human)
120         format.html { redirect_to '/home/stories' }
121         format.json { head :ok }
122       else
123         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Story.model_name.human)
124         format.html { redirect_to @item }
125         format.json { render json: @item.errors, status: :unprocessable_entity }
126       end
127     end
128   end
129   
130 end