diff --git a/FEATURES.md b/FEATURES.md index c28ad0dc..b7f40972 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -200,6 +200,7 @@ Results management features include: - Customizable reports - Downloading results as a CSV to Google Sheets or MS Excel - Saving of download preferences per form +- Automatically purging old submissions based on certain criteria ## Access Controls diff --git a/config/install/webform.webform.contact.yml b/config/install/webform.webform.contact.yml index 529955ab..c3eb96ba 100644 --- a/config/install/webform.webform.contact.yml +++ b/config/install/webform.webform.contact.yml @@ -84,8 +84,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_elements.yml b/modules/webform_examples/config/install/webform.webform.example_elements.yml index 27c54e5f..93e083c7 100644 --- a/modules/webform_examples/config/install/webform.webform.example_elements.yml +++ b/modules/webform_examples/config/install/webform.webform.example_elements.yml @@ -427,8 +427,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml b/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml index fdd27a26..3f8c3f24 100644 --- a/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml +++ b/modules/webform_examples/config/install/webform.webform.example_elements_composite.yml @@ -99,8 +99,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml b/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml index 6e77759f..a0038d62 100644 --- a/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml +++ b/modules/webform_examples/config/install/webform.webform.example_elements_masks.yml @@ -126,8 +126,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_elements_states.yml b/modules/webform_examples/config/install/webform.webform.example_elements_states.yml index d0273801..27db1f5d 100644 --- a/modules/webform_examples/config/install/webform.webform.example_elements_states.yml +++ b/modules/webform_examples/config/install/webform.webform.example_elements_states.yml @@ -202,8 +202,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml b/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml index 594bd36d..53ddb812 100644 --- a/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml +++ b/modules/webform_examples/config/install/webform.webform.example_layout_basic.yml @@ -262,8 +262,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml b/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml index e52299ff..76adfc29 100644 --- a/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml +++ b/modules/webform_examples/config/install/webform.webform.example_layout_flexbox.yml @@ -166,8 +166,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_examples/config/install/webform.webform.example_wizard.yml b/modules/webform_examples/config/install/webform.webform.example_wizard.yml index 95fd83dd..1c864323 100644 --- a/modules/webform_examples/config/install/webform.webform.example_wizard.yml +++ b/modules/webform_examples/config/install/webform.webform.example_wizard.yml @@ -98,8 +98,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_contact.yml b/modules/webform_templates/config/install/webform.webform.template_contact.yml index 1615af3c..d2723688 100644 --- a/modules/webform_templates/config/install/webform.webform.template_contact.yml +++ b/modules/webform_templates/config/install/webform.webform.template_contact.yml @@ -80,8 +80,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_donation.yml b/modules/webform_templates/config/install/webform.webform.template_donation.yml index c0089eb5..bc0518d2 100644 --- a/modules/webform_templates/config/install/webform.webform.template_donation.yml +++ b/modules/webform_templates/config/install/webform.webform.template_donation.yml @@ -133,8 +133,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml b/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml index 32f8c60d..113fcc6d 100644 --- a/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml +++ b/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml @@ -127,8 +127,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_issue.yml b/modules/webform_templates/config/install/webform.webform.template_issue.yml index d949dcca..3ab94701 100644 --- a/modules/webform_templates/config/install/webform.webform.template_issue.yml +++ b/modules/webform_templates/config/install/webform.webform.template_issue.yml @@ -172,8 +172,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_job_application.yml b/modules/webform_templates/config/install/webform.webform.template_job_application.yml index b6ed048a..e8bd47b0 100644 --- a/modules/webform_templates/config/install/webform.webform.template_job_application.yml +++ b/modules/webform_templates/config/install/webform.webform.template_job_application.yml @@ -129,8 +129,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml b/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml index 6f6917ba..52369c48 100644 --- a/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml +++ b/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml @@ -131,8 +131,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_registration.yml b/modules/webform_templates/config/install/webform.webform.template_registration.yml index 8555a618..dca25d3d 100644 --- a/modules/webform_templates/config/install/webform.webform.template_registration.yml +++ b/modules/webform_templates/config/install/webform.webform.template_registration.yml @@ -97,8 +97,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml b/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml index 7a583c6c..7ec1bd1d 100644 --- a/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml +++ b/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml @@ -93,8 +93,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_subscribe.yml b/modules/webform_templates/config/install/webform.webform.template_subscribe.yml index 62065a63..5f0b1adb 100644 --- a/modules/webform_templates/config/install/webform.webform.template_subscribe.yml +++ b/modules/webform_templates/config/install/webform.webform.template_subscribe.yml @@ -76,8 +76,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/modules/webform_templates/config/install/webform.webform.template_user_profile.yml b/modules/webform_templates/config/install/webform.webform.template_user_profile.yml index df26041b..103c2b1b 100644 --- a/modules/webform_templates/config/install/webform.webform.template_user_profile.yml +++ b/modules/webform_templates/config/install/webform.webform.template_user_profile.yml @@ -170,8 +170,8 @@ settings: limit_total_message: '' limit_user: null limit_user_message: '' - purge: draft - purge_days: 14 + purge: none + purge_days: null entity_limit_total: null entity_limit_user: null results_disabled: false diff --git a/src/WebformEntitySettingsForm.php b/src/WebformEntitySettingsForm.php index c3402d08..edbbb7ed 100644 --- a/src/WebformEntitySettingsForm.php +++ b/src/WebformEntitySettingsForm.php @@ -675,8 +675,8 @@ class WebformEntitySettingsForm extends EntityForm { '#min' => 1, '#default_value' => $settings['purge_days'], '#states' => array( - 'visible' => array('select[name="purge"]' => array('!value' => WebformSubmissionStorageInterface::PURGE_NONE)), - 'required' => array('select[name="purge"]' => array('!value' => WebformSubmissionStorageInterface::PURGE_NONE)), + 'invisible' => array('select[name="purge"]' => array('value' => WebformSubmissionStorageInterface::PURGE_NONE)), + 'optional' => array('select[name="purge"]' => array('value' => WebformSubmissionStorageInterface::PURGE_NONE)), ), '#field_suffix' => $this->t('days'), ]; diff --git a/src/WebformSubmissionStorage.php b/src/WebformSubmissionStorage.php index b1c5d440..c364fe94 100644 --- a/src/WebformSubmissionStorage.php +++ b/src/WebformSubmissionStorage.php @@ -214,7 +214,7 @@ class WebformSubmissionStorage extends SqlContentEntityStorage implements Webfor /** * {@inheritdoc} */ - public function purgeWebformSubmission($count) { + public function purge($count) { $days_to_seconds = 60 * 60 * 24; $query = $this->entityManager->getStorage('webform')->getQuery(); diff --git a/src/WebformSubmissionStorageInterface.php b/src/WebformSubmissionStorageInterface.php index 500a988e..370bcc37 100644 --- a/src/WebformSubmissionStorageInterface.php +++ b/src/WebformSubmissionStorageInterface.php @@ -210,7 +210,7 @@ interface WebformSubmissionStorageInterface extends ContentEntityStorageInterfac * @param int $count * Amount of webform submissions to purge */ - public function purgeWebformSubmission($count); + public function purge($count); /** * Get customized submission columns used to display custom table. diff --git a/tests/src/Kernel/WebformSubmissionPurgeTest.php b/tests/src/Kernel/WebformSubmissionPurgeTest.php index 2e1f72e1..70bb47de 100644 --- a/tests/src/Kernel/WebformSubmissionPurgeTest.php +++ b/tests/src/Kernel/WebformSubmissionPurgeTest.php @@ -79,7 +79,7 @@ class WebfromSubmissionPurgeTest extends KernelTestBase { } } - \Drupal::entityTypeManager()->getStorage('webform_submission')->purgeWebformSubmission(self::WEBFORM_PURGE_AMOUNT); + \Drupal::entityTypeManager()->getStorage('webform_submission')->purge(self::WEBFORM_PURGE_AMOUNT); // Make sure nothing has been purged in the webform where purging is // disabled. diff --git a/webform.module b/webform.module index 8d95fcff..8e25d245 100644 --- a/webform.module +++ b/webform.module @@ -107,7 +107,7 @@ function webform_modules_uninstalled($modules) { */ function webform_cron() { $config = \Drupal::config('webform.settings'); - \Drupal::entityTypeManager()->getStorage('webform_submission')->purgeWebformSubmission($config->get('purge_settings.cron_size')); + \Drupal::entityTypeManager()->getStorage('webform_submission')->purge($config->get('purge_settings.cron_size')); } /**