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