diff --git a/app/components/field-edit.vue b/app/components/field-edit.vue
index 8c53c5c..e0c2e65 100644
--- a/app/components/field-edit.vue
+++ b/app/components/field-edit.vue
@@ -33,7 +33,7 @@
-
+
diff --git a/app/components/field-options.vue b/app/components/field-options.vue
index de416e8..c279733 100644
--- a/app/components/field-options.vue
+++ b/app/components/field-options.vue
@@ -6,7 +6,12 @@
{{ 'Manage options' | trans }}
@@ -31,19 +31,40 @@
{{ 'No email field is selected for user confirmation mail.' | trans }}
+
+
+
+ {{ 'No email will be sent to the user when no address is entered here!' | trans }}
+
+
+
+
@@ -81,6 +102,20 @@
props: ['formitem', 'formfields', 'form'],
+ computed: {
+ userEmailFields () {
+ return this.formfields.filter((field) => {
+ return field.type === 'email'
+ })
+ },
+
+ submitEmailFields () {
+ return this.formfields.filter((field) => {
+ return field.type === 'emailpulldown'
+ })
+ }
+ },
+
components: {
formfieldslist: require('./form-fieldslist.vue')
}
diff --git a/app/views/admin/edit.js b/app/views/admin/edit.js
index d1d9cd8..cad212d 100644
--- a/app/views/admin/edit.js
+++ b/app/views/admin/edit.js
@@ -10,6 +10,8 @@ module.exports = {
classSfx: '',
user_email_field: false,
submitEmail: window.$data.config.from_address,
+ submitEmailMultiple: false,
+ submitEmailField: '',
email_subject: this.$trans('Thank you for your submission'),
thankyou_markdown: true,
email_body_markdown: true,
diff --git a/src/Model/Field.php b/src/Model/Field.php
index 9739c75..4dcf24b 100644
--- a/src/Model/Field.php
+++ b/src/Model/Field.php
@@ -50,6 +50,14 @@ class Field extends FieldBase implements \JsonSerializable {
public function jsonSerialize () {
$field = $this->toArray([], ['fieldValue', 'fieldType']);
$field['options'] = $this->getOptions();
+ if (is_array($field['options']) && !App::user()->isAdministrator()) {
+ $fieldOptions = [];
+ foreach ($field['options'] as $fieldOption) {
+ unset($fieldOption['email']);
+ $fieldOptions[] = $fieldOption;
+ }
+ $field['options'] = $fieldOptions;
+ }
return $field;
}
diff --git a/src/Model/Submission.php b/src/Model/Submission.php
index 92f070a..c5700f8 100644
--- a/src/Model/Submission.php
+++ b/src/Model/Submission.php
@@ -103,6 +103,25 @@ public function getUserEmail () {
return '';
}
+ public function getAdminEmail () {
+ $this->getFieldsubmissions();
+ if ($this->form->get('submitEmailMultiple')) {
+ $submitEmailSubmission = $this->fieldsubmissions[$this->form->get('submitEmailField')];
+ if (isset($submitEmailSubmission)
+ and $selectionValue = count($submitEmailSubmission['value']) ? $submitEmailSubmission['value'][0] : ''
+ and $submitEmailField = Field::find($submitEmailSubmission['field']['id'])) {
+ foreach ($submitEmailField->getOptions() as $submitEmailOption) {
+ if ($submitEmailOption['value'] == $selectionValue) {
+ return $submitEmailOption['email'];
+ }
+ }
+ }
+ } else {
+ return $this->form->get('submitEmail');
+ }
+ return '';
+ }
+
public function getFieldsubmissions () {
if (!isset($this->fieldsubmissions)) {
$fields = $this->form->getFields();
diff --git a/src/Submission/Fieldsubmission.php b/src/Submission/Fieldsubmission.php
index 1455202..2e6a31c 100644
--- a/src/Submission/Fieldsubmission.php
+++ b/src/Submission/Fieldsubmission.php
@@ -27,6 +27,15 @@ public function __construct (Field $field, $value, $data) {
public function toFormattedArray (array $data = [], array $ignore = []) {
$data['field_id'] = $this->field_id;
+ $data = parent::toFormattedArray($data, $ignore);
+ if (isset($data['field']['options']) && is_array($data['field']['options']) && !App::user()->isAdministrator()) {
+ $fieldOptions = [];
+ foreach ($data['field']['options'] as $fieldOption) {
+ unset($fieldOption['email']);
+ $fieldOptions[] = $fieldOption;
+ }
+ $data['field']['options'] = $fieldOptions;
+ }
return parent::toFormattedArray($data, $ignore);
}
diff --git a/src/Submission/MailHelper.php b/src/Submission/MailHelper.php
index 26e7189..4e2710c 100644
--- a/src/Submission/MailHelper.php
+++ b/src/Submission/MailHelper.php
@@ -26,7 +26,7 @@ public function __construct (Submission $submission) {
* @return MailHelper
*/
public function sendMail () {
- if (!$adminMail = $this->submission->form->get('submitEmail')) {
+ if (!$adminMail = $this->submission->getAdminEmail()) {
return $this;
}
$user_email = $this->submission->email ? : false;