Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Customised email reply to #186

Merged
merged 2 commits into from
Sep 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion app/Mail/Forms/SubmissionConfirmationMail.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Str;
use Illuminate\Support\Arr;

class SubmissionConfirmationMail extends OpenFormMail implements ShouldQueue
{
Expand Down Expand Up @@ -36,7 +37,7 @@ public function build()
->outputStringsOnly();

return $this
->replyTo($form->creator->email)
->replyTo($this->getReplyToEmail($form->creator->email))
->from($this->getFromEmail(), $form->notification_sender)
->subject($form->notification_subject)
->markdown('mail.form.confirmation-submission-notification',[
Expand All @@ -52,4 +53,10 @@ private function getFromEmail()
$originalFromAddress = Str::of(config('mail.from.address'))->explode('@');
return $originalFromAddress->first(). '+' . time() . '@' . $originalFromAddress->last();
}

private function getReplyToEmail($default)
{
$replyTo = Arr::get((array)$this->event->form->notification_settings, 'confirmation_reply_to', null);
return $replyTo ?? $default;
}
}
5 changes: 5 additions & 0 deletions app/Notifications/Forms/FormSubmissionNotification.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Str;
use Illuminate\Support\Arr;

class FormSubmissionNotification extends Notification implements ShouldQueue
{
Expand Down Expand Up @@ -68,6 +69,10 @@ private function getFromEmail()

private function getReplyToEmail($default)
{
$replyTo = Arr::get((array)$this->event->form->notification_settings, 'notification_reply_to', null);
if ($replyTo && $this->validateEmail($replyTo)) {
return $replyTo;
}
return $this->getRespondentEmail() ?? $default;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
</template>

<form-notifications-option />
<form-notifications-submission-confirmation />
<form-notifications-slack />
<form-notifications-discord />
<form-notifications-submission-confirmation />

</collapse>
</template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,18 @@
</h2>
<toggle-switch-input name="notifies" :form="form" class="mt-4"
label="Receive email notifications on submission"
:help="notifiesHelp"
/>
<text-area-input v-if="form.notifies" name="notification_emails" :form="form" class="mt-4"
label="Notification Emails" help="Add one email per line"

/>
<template v-if="form.notifies">
<text-input name="notification_reply_to"
v-model="form.notification_settings.notification_reply_to" class="mt-4"
label="Notification Reply To"
:help="notifiesHelp"
/>
<text-area-input name="notification_emails" :form="form" class="mt-4"
label="Notification Emails" help="Add one email per line"
/>
</template>
</modal>
</div>
</template>
Expand Down Expand Up @@ -73,9 +80,9 @@ export default {
},
notifiesHelp () {
if (this.replayToEmailField) {
return 'Reply-to for this notification will be the email filled in the field "' + this.replayToEmailField.name + '".'
return 'If empty, Reply-to for this notification will be the email filled in the field "' + this.replayToEmailField.name + '".'
}
return 'Reply-to for this notification will be your own email. Add a single email field to your form, and it will automatically become the reply to value.'
return 'If empty, Reply-to for this notification will be your own email. Add a single email field to your form, and it will automatically become the reply to value.'
}
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,22 +31,32 @@
:form="form" class="mt-4"
label="Send submission confirmation" :help="emailSubmissionConfirmationHelp"
/>
<text-input v-if="form.send_submission_confirmation" name="notification_sender"
:form="form" class="mt-4"
label="Confirmation Email Sender Name" help="Emails will be sent from our email address but you can customize the name of the Sender"
/>
<text-input v-if="form.send_submission_confirmation" name="notification_subject"
:form="form" class="mt-4"
label="Confirmation email subject" help="Subject of the confirmation email that will be sent"
/>
<rich-text-area-input v-if="form.send_submission_confirmation" name="notification_body"
:form="form" class="mt-4"
label="Confirmation email content" help="Content of the confirmation email that will be sent"
/>
<toggle-switch-input v-if="form.send_submission_confirmation" name="notifications_include_submission"
:form="form" class="mt-4"
label="Include submission data" help="If enabled the confirmation email will contain form submission answers"
/>
<template v-if="form.send_submission_confirmation">
<text-input name="confirmation_reply_to"
v-model="form.notification_settings.confirmation_reply_to" class="mt-4"
label="Confirmation Reply To" help="help"
>
<template #help>
If empty, Reply-to will be your own email.
</template>
</text-input>
<text-input name="notification_sender"
:form="form" class="mt-4"
label="Confirmation Email Sender Name" help="Emails will be sent from our email address but you can customize the name of the Sender"
/>
<text-input name="notification_subject"
:form="form" class="mt-4"
label="Confirmation email subject" help="Subject of the confirmation email that will be sent"
/>
<rich-text-area-input name="notification_body"
:form="form" class="mt-4"
label="Confirmation email content" help="Content of the confirmation email that will be sent"
/>
<toggle-switch-input name="notifications_include_submission"
:form="form" class="mt-4"
label="Include submission data" help="If enabled the confirmation email will contain form submission answers"
/>
</template>
</modal>
</div>
</template>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

@if($form->editable_submissions)
@component('mail::button', ['url' => $form->share_url.'?submission_id='.$submission_id])
{{$form.editable_submissions_button_text}}
{{($form->editable_submissions_button_text ?? 'Edit submission')}}
@endcomponent
@endif

Expand Down