Skip to content

Commit

Permalink
feedback mailer config
Browse files Browse the repository at this point in the history
  • Loading branch information
zimmp committed Jan 18, 2024
1 parent 1b39ec5 commit 0f43c8c
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 35 deletions.
68 changes: 37 additions & 31 deletions app/controllers/feedbacks_controller.rb
Original file line number Diff line number Diff line change
@@ -1,49 +1,55 @@
class FeedbacksController < ApplicationController

ENABLED = Config[:feedback, :enabled, default: false]

def new
@feedback = Feedback.new
if ENABLED
@feedback = Feedback.new

if params[:record_id] && params[:record_scope]
record = SearchEngine[params[:record_scope]].get_record(params[:record_id])
if params[:record_id] && params[:record_scope]
record = SearchEngine[params[:record_scope]].get_record(params[:record_id])

@feedback.record_scope = params[:record_scope]
@feedback.record_id = record.id
@feedback.record_title = record.title
end
@feedback.record_scope = params[:record_scope]
@feedback.record_id = record.id
@feedback.record_title = record.title
end

if current_user.present?
@feedback.firstname = current_user.first_name.presence || ""
@feedback.lastname = current_user.last_name.presence || ""
@feedback.email = current_user.email.presence
end
if current_user.present?
@feedback.firstname = current_user.first_name.presence || ""
@feedback.lastname = current_user.last_name.presence || ""
@feedback.email = current_user.email.presence
end

if turbo_frame_request?
render "show-modal"
else
render :new
if turbo_frame_request?
render "show-modal"
else
render :new
end
end
end

def create
@feedback = Feedback.new(feedback_params)
if ENABLED
@feedback = Feedback.new(feedback_params)

if @feedback.valid?
@feedback.user_id = current_user&.ils_primary_id.presence || "anonymous"
if @feedback.valid?
@feedback.user_id = current_user&.ils_primary_id.presence || "anonymous"

FeedbacksMailer.with(feedback: @feedback.as_json).notify_ub.deliver_later
FeedbacksMailer.with(feedback: @feedback.as_json).notify_user.deliver_later
FeedbacksMailer.with(feedback: @feedback.as_json).notify_ub.deliver_later
FeedbacksMailer.with(feedback: @feedback.as_json).notify_user.deliver_later

if turbo_frame_request?
render "success-modal"
else
flash[:success] = t(".success")
redirect_to root_path
end
else
if turbo_frame_request?
render "show-modal", status: :unprocessable_entity
if turbo_frame_request?
render "success-modal"
else
flash[:success] = t(".success")
redirect_to root_path
end
else
render :new, status: :unprocessable_entity
if turbo_frame_request?
render "show-modal", status: :unprocessable_entity
else
render :new, status: :unprocessable_entity
end
end
end
end
Expand Down
21 changes: 18 additions & 3 deletions app/mailers/feedbacks_mailer.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
class FeedbacksMailer < ApplicationMailer
before_action { @feedback = Feedback.new(params[:feedback]) }

ENABLED = Config[:feedback, :enabled, default: false]

def notify_ub
mail(to: "[email protected]", subject: "[UB-Feedback][#{@feedback.type}] ")
if ENABLED
default_ubmail_config = Config[:feedback, :types, :default, :mail, :ub]
feedback_type_config = Config[:feedback, :types, @feedback.type.to_sym, :mail, :ub, default: {}]

merged_config = default_ubmail_config.merge(feedback_type_config)

mail(from: merged_config[:from], to: merged_config[:to], subject: merged_config[:subject], template_name: merged_config[:template_name])
end
end

def notify_user
mail(to: @feedback.email, subject: "[UB Paderborn] Ihr Feedback")
end
if ENABLED
default_usermail_config = Config[:feedback, :types, :default, :mail, :user]
feedback_type_config = Config[:feedback, :types, @feedback.type.to_sym, :mail, :user, default: {}]

merged_config = default_usermail_config.merge(feedback_type_config)

mail(from: merged_config[:from], to: @feedback.email, subject: merged_config[:subject], template_name: merged_config[:template_name])
end
end
end
2 changes: 1 addition & 1 deletion app/views/searches/_record.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ruby:
enable_fulltext_links = local_assigns.fetch(:enable_fulltext_links) { false }
search_scope = local_assigns.fetch(:search_scope) { current_search_scope }
enable_notes = local_assigns.fetch(:enable_notes) { false }
enable_feedback = local_assigns.fetch(:enable_feedback) { false }
enable_feedback = local_assigns.fetch(:enable_feedback) { false } && Config[:feedback, :enabled]

.d-flex(
data-record-scope=search_scope
Expand Down

0 comments on commit 0f43c8c

Please sign in to comment.