OSDN Git Service

add: license publisher
[pettanr/pettanr.git] / app / controllers / sheets_controller.rb
1 class SheetsController < 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_panel, :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_panel
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       if @operators.author
32         @new_panel_items = assist_items('home', 'panels')
33         
34         @new_story_items = assist_items('home', 'stories')
35         @fresh_story_items = assist_items('home', 'story_sheets').map {|ss| ss.story}
36       end
37     }
38   end
39   
40   def show
41     set_show
42     respond_to do |format|
43       show_html_format format
44       show_prof_format format
45       show_json_format_for_root format
46     end
47   end
48   
49   def play
50     set_play
51     @list.options.merge!({'page_size' => -1})    # no limit no pager
52     @list.reset
53     play_list
54     respond_to do |format|
55       format.html {
56         if @operators.author
57           @new_panel_items = assist_items('home', 'panels')
58         end
59       }
60       list_json_format @list, format
61     end
62   end
63   
64 =begin
65   def new
66     set_new
67     respond_to do |format|
68       format.html {
69         @editor = Editor::SheetEditor.new @item, @operators
70         render :template => @editor.template_name, :locals => {
71           :editor => @editor
72         }
73       }
74       format.json { render json: @item.to_json }
75     end
76   end
77   
78   def edit
79     set_edit
80     respond_to do |format|
81       format.html {
82         @editor = Editor::SheetEditor.new @item, @operators
83         render :template => @editor.template_name, :locals => {
84           :editor => @editor
85         }
86       }
87       format.json { render json: @item.to_json }
88     end
89   end
90   
91 =end
92   
93   def new
94     form_new
95   end
96   
97   def edit
98     form_edit
99   end
100   
101   def create
102     set_model
103     @item = @my_model_class.new
104     @item.supply_default 
105     jsn = nil
106     if params[:json]
107       jsn = JSON.parse_no_except(params[:json])
108     end
109     @prm = params[:sheet] || jsn
110     
111     respond_to do |format|
112       if @item.store @prm, @operators
113         created_html_format format
114         created_json_format format
115       else
116         not_created_html_format format
117         not_created_json_format format
118       end
119     end
120   end
121   
122   def update
123     set_edit
124     jsn = nil
125     if params[:json]
126       jsn = JSON.parse(params[:json])
127     end
128     @prm = params[:sheet] || jsn
129     respond_to do |format|
130       if @item.store @prm, @operators
131         updated_html_format format
132         updated_json_format format
133       else
134         not_updated_html_format format
135         not_updated_json_format format
136       end
137     end
138   end
139   
140   def destroy
141     set_model
142     @item = @my_model_class.edit(params[:id], @operators)
143     render_destroy '/home/' + @item.path_name
144   end
145   
146 end