Commit 0406a8ce authored by Jacob Rockowitz's avatar Jacob Rockowitz
Browse files

Issue #2993327: Provide Default View to Override Submission Results Tab. Write entity list tests

parent 838e897e
Loading
Loading
Loading
Loading
+0 −2
Changes for src/Tests/WebformSubmissionViewsTest.php: 0 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -167,6 +167,4 @@ class WebformSubmissionViewsTest extends WebformTestBase {
    $this->assertRaw('view-id-webform_submissions view-display-id-embed_user');
  }



}
+19 −11
Changes for src/WebformSubmissionListBuilder.php: 19 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -345,8 +345,7 @@ class WebformSubmissionListBuilder extends EntityListBuilder {

    // Check submission view access.
    if ($this->submissionView && !isset($this->submissionViews[$this->submissionView])) {
      // @todo support global submission views.
      $submission_views = $this->webform->getSetting('submission_views', []);
      $submission_views = $this->getSubmissionViewsConfig();
    if (isset($submission_views[$this->submissionView])) {
        throw new AccessDeniedHttpException();
      }
@@ -1190,11 +1189,27 @@ class WebformSubmissionListBuilder extends EntityListBuilder {
    return ($replace_routes && in_array($route_name, $replace_routes)) ? TRUE : FALSE;
  }

  /**
   * Get all submission views applicable.
   *
   * @return array
   *   An associative array of all submission views.
   */
  protected function getSubmissionViewsConfig() {
    // Merge webform submission views with global submission views.
    $submission_views = [];
    if ($this->webform) {
      $submission_views += $this->webform->getSetting('submission_views') ?: [];
    }
    $submission_views += $this->configFactory->get('webform.settings')->get('settings.default_submission_views') ?: [];
    return $submission_views;
  }

  /**
   * Get submission views applicable for the current route and user.
   *
   * @return array
   *   An associative arary of submission views applicable for the
   *   An associative array of submission views applicable for the
   *   current route and user.
   */
  protected function getSubmissionViews() {
@@ -1203,16 +1218,9 @@ class WebformSubmissionListBuilder extends EntityListBuilder {
    }

    $type = $this->getSubmissionViewType();

    // Merge webform submission views with global submission views.
    $submission_views = [];
    if ($this->webform) {
      $submission_views += $this->webform->getSetting('submission_views') ?: [];
    }
    $submission_views += $this->configFactory->get('webform.settings')->get('settings.default_submission_views') ?: [];

    $route_name = $this->routeMatch->getRouteName();

    $submission_views = $this->getSubmissionViewsConfig();
    foreach ($submission_views as $name => $submission_view) {
      $submission_view += [
        'global_routes' => [],