}
};
+ this.toggleEmailVerification = function() {
+ if (editor.afform.require_email_confirmation) {
+ editor.afform.require_email_confirmation = null;
+ } else {
+ editor.afform.create_submission = true;
+ }
+ }
+
function loadNavigationMenu() {
if ('navigationMenu' in editor) {
return;
var afform = JSON.parse(angular.toJson(editor.afform));
// This might be set to undefined by validation
afform.server_route = afform.server_route || '';
+ // create submission is required if email confirmation is selected.
+ if (afform.require_email_confirmation) {
+ afform.create_submission = true;
+ }
$scope.saving = true;
crmApi4('Afform', 'save', {formatWhitespace: true, records: [afform]})
.then(function (data) {
</p>
<div ng-if="editor.afform.submit_enabled">
-
<div class="form-group">
<label>
- <input type="checkbox" ng-model="editor.afform.create_submission" >
+ <input type="checkbox" ng-model="editor.afform.create_submission" ng-class="{'disabled': !!editor.afform.require_email_confirmation}">
{{:: ts('Log Submissions') }}
</label>
<p class="help-block">{{:: ts('Keep a log of the date, time, user, and items saved by each form submission.') }}</p>
<input type="number" min="1" step="1" id="submit_limit" ng-model="editor.afform.submit_limit" placeholder="{{:: ts('Unlimited') }}">
</div>
+ <div class="form-group" >
+ <label>
+ <input type="checkbox" ng-model="editor.afform.require_email_confirmation" ng-click="editor.toggleEmailVerification()">
+ {{:: ts('Verify email before processing') }}
+ </label>
+ <p class="help-block">{{:: ts('The data will be processed and stored in CiviCRM only after email verfication. Email field is required if you enable this setting.') }}</p>
+ </div>
+
<div class="form-group" ng-class="{'has-error': !!config_form.redirect.$error.pattern}">
<label for="af_config_redirect">
{{:: ts('Post-Submit Page') }}
'title' => E::ts('Log Submissions'),
'data_type' => 'Boolean',
],
+ [
+ 'name' => 'require_email_confirmation',
+ 'data_type' => 'Boolean',
+ ],
[
'name' => 'navigation',
'title' => E::ts('Navigation Menu'),