OSDN Git Service

t#30200:update i18n devise
[pettanr/pettanr.git] / app / controllers / panels_controller.rb
1 class PanelsController < ApplicationController
2   layout 'test' if MagicNumber['test_layout']
3   before_filter :authenticate_user!, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
4   before_filter :authenticate_author, :only => [:index, :show, :new, :edit, :create, :update, :destroy]
5   before_filter :authenticate_admin!, :only => [:list, :browse]
6
7   public
8   
9   # GET /panels
10   # GET /panels.json
11   def index
12     @page = Panel.page params[:page]
13     @page_size = Panel.page_size params[:page_size]
14     @panels = Panel.list(@page, @page_size)
15
16     respond_to do |format|
17       format.html # index.html.erb
18       format.json { render text: Panel.list_as_json_text(@panels) }
19     end
20   end
21
22   # GET /panels/1
23   # GET /panels/1.json
24   def show
25     @panel = Panel.show(params[:id], @author)
26
27     respond_to do |format|
28       format.html # show.html.erb
29       format.json { render json: @panel.panel_elements_as_json }
30       format.jsonp {
31         render :json => "callback(" + @panel.panel_elements_as_json + ");"
32       }
33     end
34   end
35
36   def count
37     @panel = {:count => Panel.visible_count}
38     respond_to do |format|
39       format.json { render json: @panel.to_json }
40     end
41   end
42   
43   def list
44     @panels = Panel.all :order => 'updated_at'
45
46     respond_to do |format|
47       format.html { render layout: 'system' }
48       format.json { render json: @panels }
49     end
50   end
51
52   def browse
53     @panel = Panel.find(params[:id])
54
55     respond_to do |format|
56       format.html { render layout: 'system' }
57     end
58   end
59
60   def new
61     @panel = Panel.new
62     @panel.supply_default
63
64     respond_to do |format|
65       format.html # new.html.erb
66       format.js
67       format.json { render json: @panel.panel_elements_as_json }
68     end
69   end
70
71   def edit
72     @panel = Panel.edit(params[:id], @author)
73     respond_to do |format|
74       format.html
75       format.js
76     end
77   end
78
79   # POST /panels
80   # POST /panels.json
81   def create
82     @panel = Panel.new
83     @panel.supply_default
84     jsn = nil
85     if params[:json]
86       jsn = JSON.parse_no_except(params[:json])
87     end
88     @prm = params[:panel] || jsn
89     respond_to do |format|
90       if @panel.store @prm, @author
91         format.html { redirect_to @panel, notice: 'Panel was successfully created.' }
92         format.json { render json: @panel.panel_elements_as_json, status: :created, location: @panel }
93       else
94         format.html { render action: "new" }
95         format.json { render json: @panel.errors, status: :unprocessable_entity }
96       end
97     end
98   end
99
100   # PUT /panels/1
101   # PUT /panels/1.json
102   def update
103     @panel = Panel.edit(params[:id], @author)
104     jsn = nil
105     if params[:json]
106       jsn = JSON.parse(params[:json])
107     end
108     @prm = params[:panel] || jsn
109     respond_to do |format|
110       if @panel.store @prm, @author
111         format.html { redirect_to @panel, notice: 'Panel was successfully updated.' }
112         format.json { head :ok }
113       else
114         format.html { render action: "edit" }
115         format.json { render json: @panel.errors, status: :unprocessable_entity }
116       end
117     end
118   end
119
120   # DELETE /panels/1
121   # DELETE /panels/1.json
122   def destroy
123     @panel = Panel.edit(params[:id], @author)
124     respond_to do |format|
125       Panel.transaction do
126         @panel.destroy
127         format.html { redirect_to panels_url }
128         format.json { head :ok }
129       end
130     end
131   end
132   
133 end