-
Notifications
You must be signed in to change notification settings - Fork 276
/
pages_controller.rb
95 lines (84 loc) · 2.1 KB
/
pages_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
class Admin::PagesController < Admin::BaseController
before_filter :find_page, :only => [:show, :update, :destroy]
def index
respond_to do |format|
format.html {
@pages = Page.paginate(
:order => "created_at DESC",
:page => params[:page]
)
if @pages.empty?
flash[:notice] = "Make your first page!"
redirect_to(:action => :new)
end
}
end
end
def create
@page = Page.new(params[:page])
if @page.save
respond_to do |format|
format.html {
flash[:notice] = "Created page '#{@page.title}'"
redirect_to(:action => 'show', :id => @page)
}
end
else
respond_to do |format|
format.html { render :action => 'new', :status => :unprocessable_entity }
end
end
end
def update
if @page.update_attributes(params[:page])
respond_to do |format|
format.html {
flash[:notice] = "Updated page '#{@page.title}'"
redirect_to(:action => 'show', :id => @page)
}
end
else
respond_to do |format|
format.html { render :action => 'show', :status => :unprocessable_entity }
end
end
end
def show
respond_to do |format|
format.html {
render :partial => 'page', :locals => {:page => @page} if request.xhr?
}
end
end
def new
@page = Page.new
end
def preview
@page = Page.build_for_preview(params[:page])
respond_to do |format|
format.js {
render :partial => 'pages/page.html.erb'
}
end
end
def destroy
undo_item = @page.destroy_with_undo
respond_to do |format|
format.html do
flash[:notice] = "Deleted page '#{@page.title}'"
redirect_to :action => 'index'
end
format.json {
render :json => {
:undo_path => undo_admin_undo_item_path(undo_item),
:undo_message => undo_item.description,
:page => @page
}.to_json
}
end
end
protected
def find_page
@page = Page.find(params[:id])
end
end