OSDN Git Service

5ee2052428ce66b257be2321259851db2f653b9e
[pettanr/pettanr.git] / app / controllers / home_controller.rb
1 class HomeController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   before_filter :authenticate_user, :only => [
4     :index, :show, :profile, :configure, :create_token, :delete_token, 
5     :scrolls, :scroll_panels, :comics, :stories, :story_sheets, :sheets, :sheet_panels, :panels, :resource_pictures, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors
6   ]
7   before_filter :authenticate_author, :only => [:scrolls, :scroll_panels, :comics, :stories, :story_sheets, :sheets, :sheet_panels, :panels, :panel_pictures, :speech_balloons, :ground_pictures, :ground_colors]
8   before_filter :authenticate_artist, :only => [:resource_pictures]
9   
10   def index
11   end
12   
13   def profile
14   end
15   
16   def configure
17   end
18   
19   def create_token
20     if @user.create_token
21       respond_to do |format|
22         flash[:notice] = I18n.t('flash.notice.created', :model => User.human_attribute_name(:authentication_token))
23         format.html { redirect_to({:action => :configure}) }
24       end
25     else
26       flash[:notice] = I18n.t('flash.notice.not_created', :model => User.human_attribute_name(:authentication_token))
27       format.html { render action: "configure" }
28     end
29   end
30   
31   def delete_token
32     if @user.delete_token
33       respond_to do |format|
34         flash[:notice] = I18n.t('flash.notice.destroyed', :model => User.human_attribute_name(:authentication_token))
35         format.html { redirect_to :action => :configure}
36       end
37     else
38       flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => User.human_attribute_name(:authentication_token))
39       format.html { render action: "configure" }
40     end
41   end
42   
43   def scrolls
44     model = Scroll
45     controller_name = params[:controller]
46     action_name = params[:action]
47     controller = Pettanr::Application::manifest.controller_managers[controller_name]
48     @action = controller.open(action_name, params, @operators)
49     @items = @action.items 
50
51     respond_to do |format|
52       format.html {
53         @filer = @action.filer
54         render :template => 'system/filer', :locals => {
55           :filer => @filer
56         }
57       }
58       format.json { render json: @items.to_json(Scroll.list_json_opt) }
59     end
60   end
61   
62   def scroll_panels
63     @page = Author.page params[:page]
64     @page_size = Author.scroll_panel_page_size params[:page_size]
65     @scroll_panels = ScrollPanel.mylist(@author, @page, @page_size)
66
67     respond_to do |format|
68       format.html {
69         @paginate = ScrollPanel.mylist_paginate(@author, @page, @page_size)
70         render :template => 'system/filer', :locals => {
71           :items => @scroll_panels, :model => ScrollPanel, 
72           :roles => [@user, @admin], :pager => @paginate
73         }
74       }
75       format.json { render json: @scroll_panels.to_json(ScrollPanel.list_json_opt) }
76     end
77   end
78   
79   def comics
80     @page = Author.page params[:page]
81     @page_size = Author.comic_page_size params[:page_size]
82     @comics = Comic.mylist(@author, @page, @page_size)
83
84     respond_to do |format|
85       format.html {
86         @paginate = Comic.mylist_paginate(@author, @page, @page_size)
87         render :template => 'system/filer', :locals => {
88           :items => @comics, :model => Comic, 
89           :roles => [@user, @admin], :pager => @paginate
90         }
91       }
92       format.json { render json: @comics.to_json(Comic.list_json_opt) }
93     end
94   end
95   
96   def stories
97     @page = Author.page params[:page]
98     @page_size = Author.story_page_size params[:page_size]
99     @stories = Story.mylist(@author, @page, @page_size)
100
101     respond_to do |format|
102       format.html {
103         @paginate = Story.mylist_paginate(@author, @page, @page_size)
104         render :template => 'system/filer', :locals => {
105           :items => @stories, :model => Story, 
106           :roles => [@user, @admin], :pager => @paginate
107         }
108       }
109       format.json { render json: @stories.to_json(Story.list_json_opt) }
110     end
111   end
112   
113   def story_sheets
114     @page = Author.page params[:page]
115     @page_size = Author.story_sheet_page_size params[:page_size]
116     @story_sheets = StorySheet.mylist(@author, @page, @page_size)
117
118     respond_to do |format|
119       format.html {
120         @paginate = StorySheet.mylist_paginate(@author, @page, @page_size)
121         render :template => 'system/filer', :locals => {
122           :items => @story_sheets, :model => StorySheet, 
123           :roles => [@user, @admin], :pager => @paginate
124         }
125       }
126       format.json { render json: @story_sheets.to_json(StorySheet.list_json_opt) }
127     end
128   end
129   
130   def sheets
131     @page = Author.page params[:page]
132     @page_size = Author.sheet_page_size params[:page_size]
133     @sheets = Sheet.mylist(@author, @page, @page_size)
134
135     respond_to do |format|
136       format.html {
137         @paginate = Sheet.mylist_paginate(@author, @page, @page_size)
138         render :template => 'system/filer', :locals => {
139           :items => @sheets, :model => Sheet, 
140           :roles => [@user, @admin], :pager => @paginate
141         }
142       }
143       format.json { render json: @sheets.to_json(Sheet.list_json_opt) }
144     end
145   end
146   
147   def sheet_panels
148     @page = Author.page params[:page]
149     @page_size = Author.sheet_panel_page_size params[:page_size]
150     @sheet_panels = SheetPanel.mylist(@author, @page, @page_size)
151
152     respond_to do |format|
153       format.html {
154         @paginate = SheetPanel.mylist_paginate(@author, @page, @page_size)
155         render :template => 'system/filer', :locals => {
156           :items => @sheet_panels, :model => SheetPanel, 
157           :roles => [@user, @admin], :pager => @paginate
158         }
159       }
160       format.json { render json: @sheet_panels.to_json(SheetPanel.list_json_opt) }
161     end
162   end
163   
164   def panels
165     @page = Author.page params[:page]
166     @page_size = Author.panel_page_size params[:page_size]
167     @panels = Panel.mylist(@author, @page, @page_size)
168
169     respond_to do |format|
170       format.html {
171         @paginate = Panel.mylist_paginate(@author, @page, @page_size)
172         render :template => 'system/filer', :locals => {
173           :items => @panels, :model => Panel, 
174           :roles => [@user, @admin], :pager => @paginate
175         }
176       }
177       format.json { render text: Panel.list_as_json_text(@panels) }
178     end
179   end
180   
181   def panel_pictures
182     @page = Author.page params[:page]
183     @page_size = Author.panel_picture_page_size params[:page_size]
184     @panel_pictures = PanelPicture.mylist(@author, @page, @page_size)
185
186     respond_to do |format|
187       format.html {
188         @paginate = PanelPicture.mylist_paginate(@author, @page, @page_size)
189         render :template => 'system/filer', :locals => {
190           :items => @panel_pictures, :model => PanelPicture, 
191           :roles => [@user, @admin], :pager => @paginate
192         }
193       }
194       format.json { render json: @panel_pictures.to_json(PanelPicture.list_json_opt) }
195     end
196   end
197   
198   def speech_balloons
199     @page = Author.page params[:page]
200     @page_size = Author.speech_balloon_page_size params[:page_size]
201     @speech_balloons = SpeechBalloon.mylist(@author, @page, @page_size)
202
203     respond_to do |format|
204       format.html {
205         @paginate = SpeechBalloon.mylist_paginate(@author, @page, @page_size)
206         render :template => 'system/filer', :locals => {
207           :items => @speech_balloons, :model => SpeechBalloon, 
208           :roles => [@user, @admin], :pager => @paginate
209         }
210       }
211       format.json { render json: @speech_balloons.to_json(SpeechBalloon.list_json_opt) }
212     end
213   end
214   
215   def ground_pictures
216     @page = Author.page params[:page]
217     @page_size = Author.ground_picture_page_size params[:page_size]
218     @ground_pictures = GroundPicture.mylist(@author, @page, @page_size)
219
220     respond_to do |format|
221       format.html {
222         @paginate = GroundPicture.mylist_paginate(@author, @page, @page_size)
223         render :template => 'system/filer', :locals => {
224           :items => @ground_pictures, :model => GroundPicture, 
225           :roles => [@user, @admin], :pager => @paginate
226         }
227       }
228       format.json { render json: @ground_pictures.to_json(GroundPicture.list_json_opt) }
229     end
230   end
231   
232   def ground_colors
233     @page = Author.page params[:page]
234     @page_size = Author.ground_color_page_size params[:page_size]
235     @ground_colors = GroundColor.mylist(@author, @page, @page_size)
236
237     respond_to do |format|
238       format.html {
239         @paginate = GroundColor.mylist_paginate(@author, @page, @page_size)
240         render :template => 'system/filer', :locals => {
241           :items => @ground_colors, :model => GroundColor, 
242           :roles => [@user, @admin], :pager => @paginate
243         }
244       }
245       format.json { render json: @ground_colors.to_json(GroundColor.list_json_opt) }
246     end
247   end
248   
249   def resource_pictures
250     @page = Author.page params[:page]
251     @page_size = Author.resource_picture_page_size params[:page_size]
252     @resource_pictures = ResourcePicture.mylist(@artist, @page, @page_size)
253
254     respond_to do |format|
255       format.html {
256         @paginate = ResourcePicture.mylist_paginate(@author, @page, @page_size)
257         render :template => 'system/filer', :locals => {
258           :items => @resource_pictures, :model => ResourcePicture, 
259           :roles => [@user, @admin], :pager => @paginate
260         }
261       }
262       format.json { render json: @resource_pictures.to_json(ResourcePicture.list_json_opt) }
263     end
264   end
265   
266 end