Loading config/schema/webform.entity.webform.schema.yml +22 −0 Changes for config/schema/webform.entity.webform.schema.yml: 22 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -149,6 +149,28 @@ webform.webform.*: submission_log: type: boolean label: 'Submission logging' submission_views: type: sequence label: 'Submission views' sequence: type: mapping label: 'Submission view' mapping: title: type: text label: 'Title' view: type: string label: 'View name / Display ID' routes: type: sequence label: 'Apply to' sequence: type: string label: 'Route' submission_views_replace: type: boolean label: 'Submission views replace default results table' submission_user_columns: type: sequence label: 'Submission user columns' Loading includes/webform.install.update.inc +7 −0 Changes for includes/webform.install.update.inc: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2514,3 +2514,10 @@ function webform_update_8139() { $help_manager = \Drupal::service('webform.help_manager'); $help_manager->addNotification(__FUNCTION__, $build, 'warning'); } /** * Issue #2993327: Provide Default View to Override Submission Results Tab. */ function webform_update_8140() { _webform_update_webform_settings(); } src/Element/WebformSubmissionViews.php +22 −3 Changes for src/Element/WebformSubmissionViews.php: 22 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ class WebformSubmissionViews extends WebformMultiple { public static function processWebformMultiple(&$element, FormStateInterface $form_state, &$complete_form) { $element['#key'] = 'name'; $element['#header'] = TRUE; $element['#empty_items'] = 0; $element['#min_items'] = 1; // Get view options. $view_options = []; Loading Loading @@ -54,16 +56,30 @@ class WebformSubmissionViews extends WebformMultiple { // Build element. $element['#element'] = [ 'name_title' => [ '#type' => 'container', '#title' => t('Name / Title'), 'name' => [ '#type' => 'textfield', '#title' => t('Name'), '#size' => 12, '#title_display' => 'invisible', '#placeholder' => t('Enter name…'), '#size' => 20, '#pattern' => '^[a-z0-9_]+$', '#error_no_message' => TRUE, ], 'title' => [ '#type' => 'textfield', '#title' => t('Title'), '#title_display' => 'invisible', '#placeholder' => t('Enter title…'), '#size' => 20, '#error_no_message' => TRUE, ], ], 'view' => [ '#type' => 'select', '#title' => t('View name / display id'), '#title' => t('View name / Display id'), '#options' => $view_options, '#error_no_message' => TRUE, ], Loading @@ -86,7 +102,7 @@ class WebformSubmissionViews extends WebformMultiple { parent::validateWebformMultiple($element, $form_state, $complete_form); $items = NestedArray::getValue($form_state->getValues(), $element['#parents']); foreach ($items as $name => &$item) { $item['routes'] = array_filter($item['routes']); $item['routes'] = array_values(array_filter($item['routes'])); // Remove empty view references. if ($name === '' && empty($item['view']) && empty($item['routes'])) { Loading @@ -97,6 +113,9 @@ class WebformSubmissionViews extends WebformMultiple { if ($name === '') { $form_state->setError($element, t('Name is required.')); } if (empty($item['title'])) { $form_state->setError($element, t('Title is required.')); } if (empty($item['view'])) { $form_state->setError($element, t('View name/display id is required.')); } Loading src/Entity/Webform.php +2 −0 Changes for src/Entity/Webform.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -898,6 +898,8 @@ class Webform extends ConfigEntityBundleBase implements WebformInterface { 'form_login_message' => '', 'submission_label' => '', 'submission_log' => FALSE, 'submission_views' => [], 'submission_views_replace' => FALSE, 'submission_user_columns' => [], 'submission_user_duplicate' => FALSE, 'submission_login' => FALSE, Loading src/EntitySettings/WebformEntitySettingsSubmissionsForm.php +20 −0 Changes for src/EntitySettings/WebformEntitySettingsSubmissionsForm.php: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ class WebformEntitySettingsSubmissionsForm extends WebformEntitySettingsBaseForm '#type' => 'checkbox', '#title' => $this->t('Allow users to duplicate previous submissions'), '#description' => $this->t('If checked, users will be able to duplicate their previous submissions.'), '#return_value' => TRUE, '#default_value' => $settings['submission_user_duplicate'], ]; $form['submission_user_settings']['submission_columns'] = [ Loading Loading @@ -529,6 +530,25 @@ class WebformEntitySettingsSubmissionsForm extends WebformEntitySettingsBaseForm ]; $form['autofill_settings']['autofill_container']['token_tree_link'] = $this->tokenManager->buildTreeElement(); // Submission views. $form['views_settings'] = [ '#type' => 'details', '#title' => $this->t('Views settings'), '#open' => TRUE, ]; $form['views_settings']['submission_views'] = [ '#type' => 'webform_submission_views', '#title' => $this->t('Submission views'), '#title_display' => 'invisible', '#default_value' => $settings['submission_views'], ]; $form['views_settings']['submission_views_replace'] = [ '#type' => 'checkbox', '#title' => $this->t('Replace the default results table with views.'), '#description' => $this->t('If checked, when submission views are available, they will completely replace the default results table.'), '#return_value' => TRUE, ]; $this->tokenManager->elementValidate($form); return parent::form($form, $form_state); Loading Loading
config/schema/webform.entity.webform.schema.yml +22 −0 Changes for config/schema/webform.entity.webform.schema.yml: 22 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -149,6 +149,28 @@ webform.webform.*: submission_log: type: boolean label: 'Submission logging' submission_views: type: sequence label: 'Submission views' sequence: type: mapping label: 'Submission view' mapping: title: type: text label: 'Title' view: type: string label: 'View name / Display ID' routes: type: sequence label: 'Apply to' sequence: type: string label: 'Route' submission_views_replace: type: boolean label: 'Submission views replace default results table' submission_user_columns: type: sequence label: 'Submission user columns' Loading
includes/webform.install.update.inc +7 −0 Changes for includes/webform.install.update.inc: 7 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -2514,3 +2514,10 @@ function webform_update_8139() { $help_manager = \Drupal::service('webform.help_manager'); $help_manager->addNotification(__FUNCTION__, $build, 'warning'); } /** * Issue #2993327: Provide Default View to Override Submission Results Tab. */ function webform_update_8140() { _webform_update_webform_settings(); }
src/Element/WebformSubmissionViews.php +22 −3 Changes for src/Element/WebformSubmissionViews.php: 22 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ class WebformSubmissionViews extends WebformMultiple { public static function processWebformMultiple(&$element, FormStateInterface $form_state, &$complete_form) { $element['#key'] = 'name'; $element['#header'] = TRUE; $element['#empty_items'] = 0; $element['#min_items'] = 1; // Get view options. $view_options = []; Loading Loading @@ -54,16 +56,30 @@ class WebformSubmissionViews extends WebformMultiple { // Build element. $element['#element'] = [ 'name_title' => [ '#type' => 'container', '#title' => t('Name / Title'), 'name' => [ '#type' => 'textfield', '#title' => t('Name'), '#size' => 12, '#title_display' => 'invisible', '#placeholder' => t('Enter name…'), '#size' => 20, '#pattern' => '^[a-z0-9_]+$', '#error_no_message' => TRUE, ], 'title' => [ '#type' => 'textfield', '#title' => t('Title'), '#title_display' => 'invisible', '#placeholder' => t('Enter title…'), '#size' => 20, '#error_no_message' => TRUE, ], ], 'view' => [ '#type' => 'select', '#title' => t('View name / display id'), '#title' => t('View name / Display id'), '#options' => $view_options, '#error_no_message' => TRUE, ], Loading @@ -86,7 +102,7 @@ class WebformSubmissionViews extends WebformMultiple { parent::validateWebformMultiple($element, $form_state, $complete_form); $items = NestedArray::getValue($form_state->getValues(), $element['#parents']); foreach ($items as $name => &$item) { $item['routes'] = array_filter($item['routes']); $item['routes'] = array_values(array_filter($item['routes'])); // Remove empty view references. if ($name === '' && empty($item['view']) && empty($item['routes'])) { Loading @@ -97,6 +113,9 @@ class WebformSubmissionViews extends WebformMultiple { if ($name === '') { $form_state->setError($element, t('Name is required.')); } if (empty($item['title'])) { $form_state->setError($element, t('Title is required.')); } if (empty($item['view'])) { $form_state->setError($element, t('View name/display id is required.')); } Loading
src/Entity/Webform.php +2 −0 Changes for src/Entity/Webform.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -898,6 +898,8 @@ class Webform extends ConfigEntityBundleBase implements WebformInterface { 'form_login_message' => '', 'submission_label' => '', 'submission_log' => FALSE, 'submission_views' => [], 'submission_views_replace' => FALSE, 'submission_user_columns' => [], 'submission_user_duplicate' => FALSE, 'submission_login' => FALSE, Loading
src/EntitySettings/WebformEntitySettingsSubmissionsForm.php +20 −0 Changes for src/EntitySettings/WebformEntitySettingsSubmissionsForm.php: 20 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -127,6 +127,7 @@ class WebformEntitySettingsSubmissionsForm extends WebformEntitySettingsBaseForm '#type' => 'checkbox', '#title' => $this->t('Allow users to duplicate previous submissions'), '#description' => $this->t('If checked, users will be able to duplicate their previous submissions.'), '#return_value' => TRUE, '#default_value' => $settings['submission_user_duplicate'], ]; $form['submission_user_settings']['submission_columns'] = [ Loading Loading @@ -529,6 +530,25 @@ class WebformEntitySettingsSubmissionsForm extends WebformEntitySettingsBaseForm ]; $form['autofill_settings']['autofill_container']['token_tree_link'] = $this->tokenManager->buildTreeElement(); // Submission views. $form['views_settings'] = [ '#type' => 'details', '#title' => $this->t('Views settings'), '#open' => TRUE, ]; $form['views_settings']['submission_views'] = [ '#type' => 'webform_submission_views', '#title' => $this->t('Submission views'), '#title_display' => 'invisible', '#default_value' => $settings['submission_views'], ]; $form['views_settings']['submission_views_replace'] = [ '#type' => 'checkbox', '#title' => $this->t('Replace the default results table with views.'), '#description' => $this->t('If checked, when submission views are available, they will completely replace the default results table.'), '#return_value' => TRUE, ]; $this->tokenManager->elementValidate($form); return parent::form($form, $form_state); Loading