about summary refs log tree commit diff stats
path: root/app/controllers/admin/quotes_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/admin/quotes_controller.rb')
-rw-r--r--app/controllers/admin/quotes_controller.rb54
1 files changed, 54 insertions, 0 deletions
diff --git a/app/controllers/admin/quotes_controller.rb b/app/controllers/admin/quotes_controller.rb new file mode 100644 index 0000000..3623463 --- /dev/null +++ b/app/controllers/admin/quotes_controller.rb
@@ -0,0 +1,54 @@
1class Admin::QuotesController < Admin::AdminController
2 before_action :set_section
3
4 def index
5 @quotes = Quote.published.order(id: :desc).paginate(page: params[:page], per_page: 20)
6 end
7
8 def pending
9 @quotes = Quote.pending.order(id: :desc).paginate(page: params[:page], per_page: 20)
10 end
11
12 def edit
13 @quote = Quote.find(params[:id])
14 end
15
16 def update
17 @quote = Quote.find(params[:id])
18
19 if @quote.update(quote_params)
20 flash[:notice] = "Quote was successfully updated."
21 else
22 flash[:error] = "Error updating quote."
23 end
24
25 render :edit
26 end
27
28 def accept
29 @quote = Quote.find(params[:id])
30 @quote.state = :published
31 @quote.save!
32
33 flash.notice = "Quote successfully accepted."
34 redirect_to pending_admin_quotes_url
35 end
36
37 def destroy
38 @quote = Quote.find(params[:id])
39 @quote.destroy!
40
41 flash.notice = "Quote successfully rejected."
42 redirect_to pending_admin_quotes_url
43 end
44
45 private
46
47 def set_section
48 @section = "quotes"
49 end
50
51 def quote_params
52 params.require(:quote).permit(:content, :state, :notes, :submitter, :tag_list, :audio)
53 end
54end