Commit 19beaf57 authored by Thomas Seiber's avatar Thomas Seiber
Browse files

Issue #3188138 by drunken monkey, devad: Added an "Item URL" field to Views.

parent c29b2c14
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.txt: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
Search API 1.x, dev (xxxx-xx-xx):
---------------------------------
- #3188138 by drunken monkey, devad: Added an "Item URL" field to Views.

Search API 1.23 (2022-01-21):
-----------------------------
+8 −0
Changes for search_api.views.inc: 8 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -515,6 +515,14 @@ function _search_api_views_data_special_fields(array &$table, IndexInterface $in
    $table[$language_field]['real field'] = 'search_api_language';
  }

  $url_field = _search_api_views_find_field_alias('search_api_url', $table);
  $table[$url_field]['title'] = t('Item URL');
  $table[$url_field]['help'] = t("The item's URL");
  $table[$url_field]['field']['id'] = 'search_api';
  if ($url_field != 'search_api_url') {
    $table[$url_field]['real field'] = 'search_api_url';
  }

  $relevance_field = _search_api_views_find_field_alias('search_api_relevance', $table);
  $table[$relevance_field]['group'] = t('Search');
  $table[$relevance_field]['title'] = t('Relevance');
+9 −0
Changes for tests/src/Functional/ViewsTest.php: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@ class ViewsTest extends SearchApiBrowserTestBase {
    if (!Utility::isRunningInCli()) {
      \Drupal::state()->set('search_api_use_tracking_batch', FALSE);
    }

    $this->rebuildContainer();
  }

  /**
@@ -781,6 +783,7 @@ class ViewsTest extends SearchApiBrowserTestBase {
    $this->assertSession()->pageTextContains('Language code');
    $this->assertSession()->pageTextContains('The user language code.');
    $this->assertSession()->pageTextContains('(No description available)');
    $this->assertSession()->pageTextContains('Item URL');
    $this->assertSession()->pageTextNotContains('Error: missing help');

    // Then add some fields.
@@ -797,6 +800,7 @@ class ViewsTest extends SearchApiBrowserTestBase {
      'search_api_entity_user.roles',
      'search_api_index_database_search_index.rendered_item',
      'search_api_index_database_search_index.search_api_rendered_item',
      'search_api_index_database_search_index.search_api_url',
    ];
    $edit = [];
    foreach ($fields as $field) {
@@ -879,6 +883,7 @@ class ViewsTest extends SearchApiBrowserTestBase {
      'user_id:roles',
      'rendered_item',
      'search_api_rendered_item',
      'search_api_url',
    ];
    $rendered_item_fields = ['rendered_item', 'search_api_rendered_item'];
    foreach ($this->entities as $id => $entity) {
@@ -901,6 +906,9 @@ class ViewsTest extends SearchApiBrowserTestBase {
          if ($field === 'search_api_datasource') {
            $data = [$datasource_id];
          }
          elseif ($field === 'search_api_url') {
            $data = [$field_entity->toUrl()->toString()];
          }
          elseif (in_array($field, $rendered_item_fields)) {
            $view_mode = $field === 'rendered_item' ? 'full' : 'teaser';
            $data = [$view_mode];
@@ -1018,6 +1026,7 @@ class ViewsTest extends SearchApiBrowserTestBase {
      'search_api_datasource',
      'rendered_item',
      'search_api_rendered_item',
      'search_api_url',
    ];
    // The "Fallback options" are only available for fields based on the Field
    // API.