OSDN Git Service

mrg
[pettanr/pettanr.git] / app / controllers / scrolls_controller.rb
1 class ScrollsController < 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       :top, :index, :show, :play, :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 self.model
14     Scroll
15   end
16   
17   def index
18     filer_list
19   end
20   
21   def by_author
22     filer_list
23   end
24   
25   def by_panel
26     filer_list
27   end
28   
29   def show_html_format format
30     format.html {
31       play_list = Locmare::ListGroup.list 'scroll_panel', 'play'
32       @play_count = play_list.count(@operators, 
33         {:id => @item.id, :my_play => @item.own?(@operators)}
34       )
35     }
36   end
37   
38   def show
39     set_show
40     respond_to do |format|
41       show_html_format format
42       show_prof_format format
43       show_json_format format
44     end
45   end
46   
47   def play
48     set_play
49     play_list
50     respond_to do |format|
51       format.html {
52         if @item.own? @operators
53           @fresh_panel_items = assist_items('panel', 'public')
54           @new_panel_items = assist_items('panel', 'private')
55         end
56       }
57       format.json { render json: @items.to_json }
58     end
59   end
60   
61   def count
62     list_count
63   end
64   
65   def count_by_author
66     list_count
67   end
68   
69   def count_by_panel
70     list_count
71   end
72   
73   def new
74     form_new
75   end
76   
77   def edit
78     form_edit
79   end
80   
81   def create
82     set_model
83     @item = @my_model_class.new
84     @item.supply_default 
85     @item.attributes = params[@my_model_class.item_name]
86     @item.overwrite @operators
87     render_create
88   end
89   
90   def update
91     set_edit
92     @item.attributes = params[@my_model_class.item_name]
93     @item.overwrite @operators
94     render_update
95   end
96   
97   def destroy
98     set_model
99     @item = @my_model_class.edit(params[:id], @operators)
100     render_destroy '/home/' + @item.path_name
101   end
102 end