OSDN Git Service

27f6c4d35825994376ae02ee2f4ff99108f5faff
[pettanr/pettanr.git] / app / controllers / panels_controller.rb
1 class PanelsController < ApplicationController
2   if Manifest.manifest.magic_numbers['run_mode'] == 0
3     before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
4     before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
5   else
6     before_action :authenticate_reader, :only => [
7       :index, :show, :by_scroll, :by_sheet, :by_author, :by_speech_balloon_template
8     ]
9     before_action :authenticate_user, :only => [:new, :edit, :create, :update, :destroy]
10     before_action :authenticate_author, :only => [:new, :edit, :create, :update, :destroy]
11   end
12   
13   private
14   def panel_list
15     set_list
16     @items = @finder
17     @pager = @finder
18     respond_to do |format|
19       format.html 
20       list_json_format @finder, format
21       format.atom 
22       format.rss
23     end
24   end
25   public
26   def index
27     if params[:mode] == 'filer'
28       filer_list
29     else
30       panel_list
31     end
32   end
33   
34   def by_scroll
35     filer_list param: params[:id]
36   end
37   
38   def by_sheet
39     filer_list param: params[:id]
40   end
41   
42   def by_author
43     filer_list param: params[:id]
44   end
45   
46   def by_speech_balloon_template
47     filer_list param: params[:id]
48   end
49   
50   def show_html_format format
51     format.html {
52       if @operators.author
53         @new_scroll_items = assist_items('home', 'scrolls')
54         @fresh_scroll_items = assist_items('home', 'scroll_panels').map {|sp| sp.scroll}
55       end
56     }
57   end
58   
59   def show
60     set_show
61     respond_to do |format|
62       show_html_format format
63       show_prof_format format
64       if params[:with_elements]
65         show_json_format_for_root format
66       else
67         show_json_format format
68       end
69     end
70   end
71   
72 =begin
73   def new
74     set_new
75     respond_to do |format|
76       format.html {
77         @editor = Editor::PanelEditor.new @item, @operators
78         render :template => @editor.template_name, :locals => {
79           :editor => @editor
80         }
81       }
82       format.json { render json: @item.to_json }
83     end
84   end
85   
86   def edit
87     set_edit
88     respond_to do |format|
89       format.html {
90         @editor = Editor::PanelEditor.new @item, @operators
91         render :template => @editor.template_name, :locals => {
92           :editor => @editor
93         }
94       }
95       format.json { render json: @item.to_json }
96     end
97   end
98 =end
99   
100   def new
101     form_new
102   end
103   
104   def edit
105     form_edit
106   end
107   
108   def create
109     set_model
110     @item = @my_model_class.new
111 #    @item.boosts 'post'
112     jsn = nil
113     if params[:json]
114       jsn = JSON.parse_no_except(params[:json])
115     end
116     @prm = if params[:panel] == nil or params[:panel].empty?
117       jsn
118     else
119       @item.permit_params(params)
120     end
121     @item.class.fold_extend_settings @prm
122     #@item.refresh
123     respond_to do |format|
124       if @item.store @prm, @operators
125         created_html_format format
126         created_json_format format
127       else
128         not_created_html_format format
129         not_created_json_format format
130       end
131     end
132   end
133   
134   def update
135     @item = Panel.edit(params[:id], @operators)
136     @item.boosts 'post'
137     jsn = nil
138     if params[:json]
139       jsn = JSON.parse(params[:json])
140     end
141     @prm = if params[:panel] == nil or params[:panel].empty?
142       jsn
143     else
144       @item.permit_params(params)
145     end
146     @item.class.fold_extend_settings @prm
147     # @item.refresh
148     respond_to do |format|
149       if @item.store @prm, @operators
150         updated_html_format format
151         updated_json_format format
152       else
153         not_updated_html_format format
154         not_updated_json_format format
155       end
156     end
157   end
158   
159   def destroy
160     set_model
161     @item = @my_model_class.edit(params[:id], @operators)
162     render_destroy '/home/' + @item.path_name
163   end
164   
165 end