OSDN Git Service

fix leaf view
[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     p @items
60     @sort_items = @list.items(@operators, 
61       {:id => params[:id], :my_play => @item.own?(@operators)},
62       0, -1 # no limit
63     )
64     respond_to do |format|
65       format.html {
66         if @item.own? @operators
67           @new_sheet_items = assist_items('sheet', 'private')
68         end
69       }
70       format.json { render json: @items.to_json }
71     end
72   end
73   
74   def count
75     list_count
76   end
77   
78   def count_by_comic
79     list_count
80   end
81   
82   def count_by_sheet
83     list_count
84   end
85   
86   def count_by_author
87     list_count
88   end
89   
90   def new
91     form_new
92   end
93   
94   def edit
95     form_edit
96   end
97   
98   def create
99     set_model
100     @story = @item
101     @item = @my_model_class.new
102     @item.supply_default 
103     @item.attributes = params[@my_model_class.item_name]
104     @item.overwrite @operators
105     render_create
106   end
107   
108   def update
109     set_edit
110     @story = @item
111     @item.attributes = params[@my_model_class.item_name]
112     @item.overwrite @operators
113     render_update
114   end
115   
116   def destroy
117     @item = Story.edit(params[:id], @operators)
118     respond_to do |format|
119       if @item.destroy_with_leafs
120         flash[:notice] = I18n.t('flash.notice.destroyed', :model => Story.model_name.human)
121         format.html { redirect_to '/home/stories' }
122         format.json { head :ok }
123       else
124         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => Story.model_name.human)
125         format.html { redirect_to @item }
126         format.json { render json: @item.errors, status: :unprocessable_entity }
127       end
128     end
129   end
130   
131 end