OSDN Git Service

change page status for offset
[pettanr/pettanr.git] / app / controllers / scroll_panels_controller.rb
1 class ScrollPanelsController < 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, :by_panel, :by_scroll, :by_author, :play, :count, :count_by_panel, :count_by_scroll, :count_by_author, :play
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_panel
18     filer_list
19   end
20   
21   def by_scroll
22     filer_list
23   end
24   
25   def by_author
26     filer_list
27   end
28   
29   def play
30     filer_list
31   end
32   
33   def show
34     set_show
35     respond_to do |format|
36       show_prof_format format
37       format.json { render json: @item.to_json }
38     end
39   end
40   
41   def count
42     list_count
43   end
44   
45   def count_by_panel
46     list_count
47   end
48   
49   def count_by_scroll
50     list_count
51   end
52   
53   def count_by_author
54     list_count
55   end
56   
57   def count_play
58     list_count
59   end
60   
61   def new
62     form_new
63   end
64   
65   def edit
66     form_edit
67   end
68   
69   def create
70     @my_model_class = self.class.model
71     @item = @my_model_class.new
72     @item.supply_default
73     @item.attributes = params[@item.item_name]
74     @item.overwrite @operators
75     @binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
76     @panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
77     
78     leaf_render_create play_scroll_path(@binder)
79   end
80   
81   def update
82     @my_model_class = self.class.model
83     @item = @my_model_class.edit(params[:id], @operators)
84     ot = @item.t
85     @item.attributes = params[@item.item_name]
86     @item.overwrite @operators
87     @binder = @my_model_class.binder_model.edit(@item.binder_id, @operators) if @item.binder_id
88     # no check permission for destination
89     # swapable hidden panel
90     #@panel = @my_model_class.destination_model.show(@item.destination_id, @operators) if @item.destination_id
91     
92     leaf_render_update ot, play_scroll_path(@binder)
93   end
94   
95   def destroy
96     @scroll_panel = ScrollPanel.edit(params[:id], @operators)
97     @scroll = Scroll.edit(@scroll_panel.scroll_id, @operators) if @scroll_panel.scroll_id
98     respond_to do |format|
99       if @scroll_panel.destroy_and_shorten
100         flash[:notice] = I18n.t('flash.notice.destroyed', :model => ScrollPanel.model_name.human)
101         format.html { redirect_to play_scroll_path(@scroll) }
102         format.json { head :ok }
103       else
104         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => ScrollPanel.model_name.human)
105         format.html { redirect_to scroll_panel_path(@scroll_panel) }
106         format.json { render json: @scroll_panel.errors, status: :unprocessable_entity }
107       end
108     end
109   end
110 end