about summary refs log tree commit diff stats
path: root/app
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2023-10-21 12:36:21 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2023-10-21 12:36:21 -0400
commita39b0711eefb07fb75294a68d635fb1323d24cf3 (patch)
tree04f234347bb4fe2a0ce4a83b48c1bb121c620a9b /app
parent3bf957736f7ba79a0a0f30ace996ba05b0f33f15 (diff)
downloadthoughts-a39b0711eefb07fb75294a68d635fb1323d24cf3.tar.gz
thoughts-a39b0711eefb07fb75294a68d635fb1323d24cf3.tar.bz2
thoughts-a39b0711eefb07fb75294a68d635fb1323d24cf3.zip
Quotes can be submitted, although it is not encouraged
Diffstat (limited to 'app')
-rw-r--r--app/controllers/quotes_controller.rb15
-rw-r--r--app/mailers/quote_mailer.rb7
-rw-r--r--app/views/quote_mailer/pending_quote_email.html.haml12
-rw-r--r--app/views/quote_mailer/pending_quote_email.text.erb15
4 files changed, 47 insertions, 2 deletions
diff --git a/app/controllers/quotes_controller.rb b/app/controllers/quotes_controller.rb index 58af7bb..f7445da 100644 --- a/app/controllers/quotes_controller.rb +++ b/app/controllers/quotes_controller.rb
@@ -63,6 +63,12 @@ class QuotesController < ApplicationController
63 @quote = Quote.new(quote_params) 63 @quote = Quote.new(quote_params)
64 @quote.submitter = nil if @quote.submitter.empty? 64 @quote.submitter = nil if @quote.submitter.empty?
65 65
66 unless @quote.valid?
67 flash.alert = "Error submitting quote."
68 render :new
69 return
70 end
71
66 if user_signed_in? 72 if user_signed_in?
67 @quote.state = :published 73 @quote.state = :published
68 @quote.save! 74 @quote.save!
@@ -70,8 +76,13 @@ class QuotesController < ApplicationController
70 flash[:notice] = "Thank you for submitting your quote!" 76 flash[:notice] = "Thank you for submitting your quote!"
71 redirect_to @quote 77 redirect_to @quote
72 else 78 else
73 flash[:error] = "There was an error." 79 @quote.state = :pending
74 render :new 80 @quote.save!
81
82 QuoteMailer.with(quote: @quote).pending_quote_email.deliver_later
83
84 flash[:notice] = "Your quote has been submitted and is pending moderation."
85 redirect_to new_quote_url
75 end 86 end
76 end 87 end
77 88
diff --git a/app/mailers/quote_mailer.rb b/app/mailers/quote_mailer.rb new file mode 100644 index 0000000..1f3bddd --- /dev/null +++ b/app/mailers/quote_mailer.rb
@@ -0,0 +1,7 @@
1class QuoteMailer < ApplicationMailer
2 def pending_quote_email
3 @quote = params[:quote]
4 # again, this is odd
5 mail(to: User.first.email, subject: "[Four Island] New quote pending moderation")
6 end
7end
diff --git a/app/views/quote_mailer/pending_quote_email.html.haml b/app/views/quote_mailer/pending_quote_email.html.haml new file mode 100644 index 0000000..fff825d --- /dev/null +++ b/app/views/quote_mailer/pending_quote_email.html.haml
@@ -0,0 +1,12 @@
1%p
2 A new quote has been submitted for moderation.
3- unless @quote.submitter.nil?
4 %p
5 It was submitted by:
6 = succeed "." do
7 = @quote.submitter
8%p The body of the quote:
9%pre= @quote.content
10%p
11 Submitted:
12 = @quote.created_at.strftime("%B #{@quote.created_at.day.ordinalize}, %Y at %-I:%M:%S%P")
diff --git a/app/views/quote_mailer/pending_quote_email.text.erb b/app/views/quote_mailer/pending_quote_email.text.erb new file mode 100644 index 0000000..818fc4a --- /dev/null +++ b/app/views/quote_mailer/pending_quote_email.text.erb
@@ -0,0 +1,15 @@
1A new quote has been submitted for moderation.
2
3<% unless @quote.submitter.nil? %>
4It was submitted by: <%= @quote.submitter %>.
5
6<% end %>
7Here is the quote:
8
9---
10
11<%= @quote.content %>
12
13---
14
15Posted: <%= @quote.created_at.strftime("%B #{@quote.created_at.day.ordinalize}, %Y at %-I:%M:%S%P") %>