From bffe0efa972bf6f91067b28a53e55163032f0b4b Mon Sep 17 00:00:00 2001
From: Liam Morland <lkmorlan@uwaterloo.ca>
Date: Wed, 26 Aug 2020 10:57:21 -0400
Subject: [PATCH] ISTWCMS-4023: Purge Webform drafts after 28 days by default

Allow changing this default.
---
 uw_cfg_common.module | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/uw_cfg_common.module b/uw_cfg_common.module
index 5cfcaf81..9edb90c3 100644
--- a/uw_cfg_common.module
+++ b/uw_cfg_common.module
@@ -6,6 +6,8 @@
  */
 
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\webform\WebformInterface;
+use Drupal\webform\WebformSubmissionStorageInterface;
 
 /**
  * Implements hook_form_FORM_ID_alter().
@@ -129,13 +131,21 @@ function uw_cfg_common_form_webform_settings_form_form_alter(array &$form, FormS
 function uw_cfg_common_form_webform_settings_submissions_form_alter(array &$form, FormStateInterface $form_state, string $form_id): void {
   // Remove undesired features.
   unset($form['access_denied']);
-  unset($form['purge_settings']);
   unset($form['submission_behaviors']['form_convert_anonymous']);
   unset($form['submission_behaviors']['submission_log']);
   unset($form['submission_behaviors']['token_update']);
   unset($form['views_settings']);
 }
 
+/**
+ * Implements hook_ENTITY_TYPE_create().
+ */
+function uw_cfg_common_webform_create(WebformInterface $webform) {
+  // Submission purge settings. Set the default to purge drafts after 28 days.
+  $webform->setSetting('purge', WebformSubmissionStorageInterface::PURGE_DRAFT);
+  $webform->setSetting('purge_days', 28);
+}
+
 /**
  * Implements hook_toolbar_alter().
  *
-- 
GitLab