OSDN Git Service

mrg
[pettanr/pettanr.git] / app / controllers / sheet_panels_controller.rb
1 class SheetPanelsController < 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_sheet, :by_panel, :by_author, :count, :count_by_sheet, :count_by_panel, :count_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     SheetPanel
15   end
16   
17   def index
18     filer_list
19   end
20   
21   def by_sheet
22     filer_list
23   end
24   
25   def by_panel
26     filer_list
27   end
28   
29   def by_author
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.sheet_panel_as_json(@operators.author) }
38     end
39   end
40   
41   def count
42     list_count
43   end
44   
45   def count_by_sheet
46     list_count
47   end
48   
49   def count_by_panel
50     list_count
51   end
52   
53   def count_by_author
54     list_count
55   end
56   
57   def new
58     form_new
59   end
60   
61   def edit
62     form_edit
63   end
64   
65   def create
66     @sheet_panel = SheetPanel.new 
67     @sheet_panel.supply_default
68     @sheet_panel.attributes = params[:sheet_panel]
69     @sheet_panel.overwrite @operators
70     @sheet = Sheet.edit(@sheet_panel.sheet_id, @operators) if @sheet_panel.sheet_id
71     @panel = Panel.show(@sheet_panel.panel_id, @operators) if @sheet_panel.panel_id
72     
73     respond_to do |format|
74       if @sheet_panel.store @operators
75         flash[:notice] = I18n.t('flash.notice.created', :model => SheetPanel.model_name.human)
76         format.html { redirect_to play_sheet_path(@sheet) }
77         format.json { render json: @sheet_panel.sheet_panel_as_json(@operators.author) }
78       else
79         flash[:notice] = I18n.t('flash.notice.not_created', :model => SheetPanel.model_name.human)
80         format.html { render action: "new" }
81         format.json { render json: @sheet_panel.errors, status: :unprocessable_entity }
82       end
83     end
84   end
85   
86   def update
87     @sheet_panel = SheetPanel.edit(params[:id], @operators)
88     ot = @sheet_panel.t
89     @sheet_panel.attributes = params[:sheet_panel]
90     @sheet_panel.overwrite @operators
91     @sheet = Sheet.edit(@sheet_panel.sheet_id, @operators) if @sheet_panel.sheet_id
92     respond_to do |format|
93       if @sheet_panel.store @operators, ot
94         flash[:notice] = I18n.t('flash.notice.updated', :model => SheetPanel.model_name.human)
95         format.html { redirect_to play_sheet_path(@sheet) }
96         format.json { head :ok }
97       else
98         flash[:notice] = I18n.t('flash.notice.not_updated', :model => SheetPanel.model_name.human)
99         format.html { render action: "edit" }
100         format.json { render json: @sheet_panel.errors, status: :unprocessable_entity }
101       end
102     end
103   end
104
105   def destroy
106     @sheet_panel = SheetPanel.edit(params[:id], @operators)
107     @sheet = Sheet.edit(@sheet_panel.sheet_id, @operators) if @sheet_panel.sheet_id
108     respond_to do |format|
109       if @sheet_panel.destroy_and_shorten
110         flash[:notice] = I18n.t('flash.notice.destroyed', :model => SheetPanel.model_name.human)
111         format.html { redirect_to play_sheet_path(@sheet) }
112         format.json { head :ok }
113       else
114         flash[:notice] = I18n.t('flash.notice.not_destroyed', :model => SheetPanel.model_name.human)
115         format.html { redirect_to sheet_panel_path(@sheet_panel) }
116         format.json { render json: @sheet_panel.errors, status: :unprocessable_entity }
117       end
118     end
119   end
120 end