OSDN Git Service

fix: omniauth twitter
[pettanr/pettanr.git] / app / controllers / sheets_controller.rb
1 class SheetsController < ApplicationController
2   if Manifest.manifest.magic_numbers['run_mode'] == 0
3     before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
4     before_action :authenticate_author, :only => [:new, :create, :edit, :update, :destroy]
5   else
6     before_action :authenticate_reader, :only => [
7       :index, :show, :play, :by_story, :by_panel, :by_author
8     ]
9     before_action :authenticate_user, :only => [:new, :create, :edit, :update, :destroy]
10     before_action :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 param: params[:id]
19   end
20   
21   def by_panel
22     filer_list param: params[:id]
23   end
24   
25   def by_author
26     filer_list param: params[:id]
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     @finder.per(-1)    # no limit no pager
52     play_list
53     respond_to do |format|
54       format.html {
55         if @item.own? @operators
56           @new_panel_items = assist_items('home', 'panels', finder: :find_private, param: @operators)
57         end
58       }
59       list_json_format @finder, format
60     end
61   end
62   
63 =begin
64   def new
65     set_new
66     respond_to do |format|
67       format.html {
68         @editor = Editor::SheetEditor.new @item, @operators
69         render :template => @editor.template_name, :locals => {
70           :editor => @editor
71         }
72       }
73       format.json { render json: @item.to_json }
74     end
75   end
76   
77   def edit
78     set_edit
79     respond_to do |format|
80       format.html {
81         @editor = Editor::SheetEditor.new @item, @operators
82         render :template => @editor.template_name, :locals => {
83           :editor => @editor
84         }
85       }
86       format.json { render json: @item.to_json }
87     end
88   end
89   
90 =end
91   
92   def new
93     form_new
94   end
95   
96   def edit
97     form_edit
98   end
99   
100   def create
101     set_model
102     @item = @my_model_class.new
103     @item.supply_default 
104     @prm = if params[:json]
105       JSON.parse_no_except(params[:json])
106     else
107       @item.permit_params params
108     end
109     
110     respond_to do |format|
111       if @item.store @prm, @operators
112         created_html_format format
113         created_json_format format
114       else
115         not_created_html_format format
116         not_created_json_format format
117       end
118     end
119   end
120   
121   def update
122     set_edit
123     jsn = nil
124     @prm = if params[:json]
125       JSON.parse(params[:json])
126     else
127       @item.permit_params params
128     end
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