Commit 749b7d7d authored by catch's avatar catch
Browse files

Issue #2916898 by dagmar, jhodgdon, chmez, dpagini, nicolas.rafaelli,...

Issue #2916898 by dagmar, jhodgdon, chmez, dpagini, nicolas.rafaelli, alexpott, tstoeckler: Do not use basic_html text format for 'No log messages available.' message
parent 2597462d
Loading
Loading
Loading
Loading
+5 −7
Changes for core/modules/dblog/config/optional/views.view.watchdog.yml: 5 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -652,18 +652,16 @@ display:
      footer: {  }
      empty:
        area:
          id: area
          id: area_text_custom
          table: views
          field: area
          field: area_text_custom
          relationship: none
          group_type: group
          admin_label: ''
          admin_label: 'No log messages available.'
          empty: true
          tokenize: false
          content:
            value: 'No log messages available.'
            format: basic_html
          plugin_id: text
          content: 'No log messages available.'
          plugin_id: text_custom
      relationships:
        uid:
          id: uid
+39 −0
Changes for core/modules/dblog/dblog.install: 39 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -156,3 +156,42 @@ function dblog_update_8400() {
    }
  }
}

/**
 * Change 'No logs message available.' area plugin type.
 */
function dblog_update_8600() {
  $config_factory = \Drupal::configFactory();

  $view = \Drupal::configFactory()->getEditable('views.view.watchdog');
  if (empty($view)) {
    return;
  }

  $empty_text = $view->get('display.default.display_options.empty');
  if (!isset($empty_text['area']['content']['value'])) {
    return;
  }

  // Only update the empty text if is untouched from the original version.
  if ($empty_text['area']['id'] == 'area' &&
      $empty_text['area']['plugin_id'] == 'text' &&
      $empty_text['area']['field'] == 'area' &&
      $empty_text['area']['content']['value'] == 'No log messages available.') {

    $new_config = [
      'id' => 'area_text_custom',
      'table' => 'views',
      'field' => 'area_text_custom',
      'relationship' => 'none',
      'group_type' => 'group',
      'admin_label' => 'No log messages available.',
      'empty' => TRUE,
      'tokenize' => FALSE,
      'content' => 'No log messages available.',
      'plugin_id' => 'text_custom',
    ];
    $view->set('display.default.display_options.empty.area', $new_config);
    $view->save();
  }
}
+10 −21
Changes for core/modules/dblog/tests/src/Functional/DbLogViewsTest.php: 10 added lines, 21 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@

namespace Drupal\Tests\dblog\Functional;

use Drupal\filter\Entity\FilterFormat;
use Drupal\views\Views;

/**
 * Generate events and verify dblog entries; verify user access to log reports
@@ -44,27 +44,16 @@ protected function filterLogsEntries($type = NULL, $severity = NULL) {
  }

  /**
   * {@inheritdoc}
   * Tests the empty text for the watchdog view is not using an input format.
   */
  public function testDBLogAddAndClear() {
    // Is necesary to create the basic_html format because if absent after
    // delete the logs, a new log entry is created indicating that basic_html
    // format do not exists.
    $basic_html_format = FilterFormat::create([
      'format' => 'basic_html',
      'name' => 'Basic HTML',
      'filters' => [
        'filter_html' => [
          'status' => 1,
          'settings' => [
            'allowed_html' => '<p> <br> <strong> <a> <em>',
          ],
        ],
      ],
    ]);
    $basic_html_format->save();

    parent::testDBLogAddAndClear();
  public function testEmptyText() {
    $view = Views::getView('watchdog');
    $data = $view->storage->toArray();
    $area = $data['display']['default']['display_options']['empty']['area'];

    $this->assertEqual('text_custom', $area['plugin_id']);
    $this->assertEqual('area_text_custom', $area['field']);
    $this->assertEqual('No log messages available.', $area['content']);
  }

}
+42 −0
Changes for core/modules/dblog/tests/src/Functional/Update/DblogNoLogsAvailableUpgradeTest.php: 42 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Drupal\Tests\dblog\Functional\Update;

use Drupal\FunctionalTests\Update\UpdatePathTestBase;
use Drupal\views\Views;

/**
 * Test the upgrade path of changing the emtpy text area for watchdog view.
 *
 * @see dblog_update_8600()
 *
 * @group Update
 */
class DblogNoLogsAvailableUpgradeTest extends UpdatePathTestBase {

  /**
   * {@inheritdoc}
   */
  protected function setDatabaseDumpFiles() {
    $this->databaseDumpFiles = [
      __DIR__ . '/../../../../../system/tests/fixtures/update/drupal-8.4.0.bare.standard.php.gz',
    ];
  }

  /**
   * Tests that no logs available text is now using a custom area.
   */
  public function testDblogUpgradePath() {

    $this->runUpdates();

    $view = Views::getView('watchdog');
    $data = $view->storage->toArray();
    $area = $data['display']['default']['display_options']['empty']['area'];

    $this->assertEqual('text_custom', $area['plugin_id']);
    $this->assertEqual('area_text_custom', $area['field']);
    $this->assertEqual('No log messages available.', $area['content']);
  }

}