aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/reports_controller.rb
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-06-26 13:05:08 -0700
committerLouise Crow <louise.crow@gmail.com>2013-06-26 13:05:08 -0700
commit27d6ad899f594bd9b79e54cdc5a3c17110f3b26c (patch)
treeb75973ee4325bd11f27220e38d1e899076948c78 /app/controllers/reports_controller.rb
parent9bbc93bfd8ba8aaaf9bd1ad9031368b7faad8239 (diff)
parent3194a7801684d010dac94c26cf39bb780bfcd17e (diff)
Merge branch 'release/0.12'0.12
Conflicts: locale/he_IL/app.po locale/hr_HR/app.po locale/nb_NO/app.po locale/uk/app.po
Diffstat (limited to 'app/controllers/reports_controller.rb')
-rw-r--r--app/controllers/reports_controller.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb
new file mode 100644
index 000000000..a1dd53125
--- /dev/null
+++ b/app/controllers/reports_controller.rb
@@ -0,0 +1,31 @@
+class ReportsController < ApplicationController
+ def create
+ @info_request = InfoRequest.find_by_url_title!(params[:request_id])
+ @reason = params[:reason]
+ @message = params[:message]
+ if @reason.empty?
+ flash[:error] = _("Please choose a reason")
+ render "new"
+ return
+ end
+
+ if !authenticated_user
+ flash[:notice] = _("You need to be logged in to report a request for administrator attention")
+ elsif @info_request.attention_requested
+ flash[:notice] = _("This request has already been reported for administrator attention")
+ else
+ @info_request.report!(@reason, @message, @user)
+ flash[:notice] = _("This request has been reported for administrator attention")
+ end
+ redirect_to request_url(@info_request)
+ end
+
+ def new
+ @info_request = InfoRequest.find_by_url_title!(params[:request_id])
+ if authenticated?(
+ :web => _("To report this request"),
+ :email => _("Then you can report the request '{{title}}'", :title => @info_request.title),
+ :email_subject => _("Report an offensive or unsuitable request"))
+ end
+ end
+end