OSDN Git Service

mrg
[pettanr/pettanr.git] / app / controllers / story_sheets_controller.rb
1 class StorySheetsController < 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, :by_story, :by_sheet, :by_author, :count, :count_by_story, :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     StorySheet
15   end
16   
17   def index
18     filer_list
19   end
20   
21   def by_story
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
34     set_show
35     respond_to do |format|
36       show_prof_format format
37       show_json_format format
38     end
39   end
40   
41   def count
42     list_count
43   end
44   
45   def count_by_story
46     list_count
47   end
48   
49   def count_by_sheet
50     list_count
51   end
52   
53   def count_by_author
54     list_count
55   end
56   
57   def new
58     form_new
59   end
60   
61   def edit
62     form_edit
63   end
64   
65   def create
66     @my_model_class = self.class.model
67     @item = @my_model_class.new
68     @item.supply_default
69     @item.attributes = params[@item.item_name]
70     @item.overwrite @operators
71     @binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
72     @panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
73     
74     leaf_render_create play_scroll_path(@binder)
75   end
76   
77   def update
78     @my_model_class = self.class.model
79     @item = @my_model_class.edit(params[:id], @operators)
80     ot = @item.t
81     @item.attributes = params[@item.item_name]
82     @item.overwrite @operators
83     @binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
84     # no check permission for destination
85     # swapable hidden panel
86     #@panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
87     
88     leaf_render_update ot, play_scroll_path(@binder)
89   end
90   
91   def destroy
92     @story_sheet = StorySheet.edit(params[:id], @operators)
93     @story = Story.edit(@story_sheet.story_id, @operators) if @story_sheet.story_id
94     respond_to do |format|
95       if @story_sheet.destroy_and_shorten
96         flash[:notice] = I18n.t('flash.notice.destroyed', :model => StorySheet.model_name.human)
97         format.html { redirect_to play_story_path(@story) }
98         format.json { head :ok }
99       else
100         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => StorySheet.model_name.human)
101         format.html { redirect_to story_sheet_path(@story_sheet) }
102         format.json { render json: @story_sheet.errors, status: :unprocessable_entity }
103       end
104     end
105   end
106 end