@@ -144,9 +144,14 @@ function _os2forms_forloeb_end_notification_batch_function($processID, $queueID)
144144function os2forms_forloeb_webform_create(WebformInterface $webform) {
145145 // Set purge of all users submissions.
146146 $webform->setSetting('purge', 'all');
147- // Set purge of submissions more than 30 days old.
147+
148+ // Set purge of submissions if empty.
148149 if (empty($webform->getSetting('purge_days'))) {
149- $webform->setSetting('purge_days', '30');
150+ /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
151+ $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
152+ $os2forms_forloeb_settings = $third_party_settings_manager->getThirdPartySetting('os2forms', 'os2forms_forloeb') ?: 30;
153+
154+ $webform->setSetting('purge_days', $os2forms_forloeb_settings['purge_days']);
150155 }
151156}
152157
@@ -158,7 +163,11 @@ function os2forms_forloeb_webform_create(WebformInterface $webform) {
158163function os2forms_forloeb_webform_presave(WebformInterface $webform) {
159164 // Add a purge time frame if not set.
160165 if (empty($webform->getSetting('purge_days'))) {
161- $webform->setSetting('purge_days', 30);
166+ /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
167+ $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
168+ $os2forms_forloeb_settings = $third_party_settings_manager->getThirdPartySetting('os2forms', 'os2forms_forloeb') ?: 30;
169+
170+ $webform->setSetting('purge_days', $os2forms_forloeb_settings['purge_days']);
162171 }
163172}
164173
@@ -374,3 +383,21 @@ function os2forms_forloeb_theme(array &$variables) {
374383function _os2forms_forloeb_helper(): MaestroHelper {
375384 return Drupal::service(MaestroHelper::class);
376385}
386+
387+ /**
388+ * Implements hook_form_FORM_ID_alter().
389+ *
390+ * Exposing settings for general OS2forms admin settings.
391+ */
392+ function os2forms_forloeb_form_os2forms_settings_alter(&$form, FormStateInterface $form_state) {
393+ /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
394+ $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
395+ $os2forms_forloeb_settings = $third_party_settings_manager->getThirdPartySetting('os2forms', 'os2forms_forloeb') ?: 30;
396+
397+ $form['third_party_settings']['os2forms']['os2forms_forloeb']['purge_days'] = [
398+ '#type' => 'textfield',
399+ '#title' => t('Default number of days to retain submissions'),
400+ '#default_value' => !(empty($os2forms_forloeb_settings)) ? $os2forms_forloeb_settings['purge_days'] : 30,
401+ '#description' => t('Default value is used when creating a new form, after that it is saved on a form level'),
402+ ];
403+ }
0 commit comments