From 6f24f14df853fd53c5f54b8176aae73c8825d66b Mon Sep 17 00:00:00 2001 From: Daniel Bielke <53779-dbielke1986@users.noreply.drupalcode.org> Date: Thu, 11 Apr 2024 11:07:49 +0000 Subject: [PATCH] Issue #3165141: Set the default filter to "Strip Tags" --- config/schema/diff.schema.yml | 3 +++ src/Form/GeneralSettingsForm.php | 12 ++++++++++++ src/Plugin/diff/Layout/SplitFieldsDiffLayout.php | 3 ++- src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php | 3 ++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/config/schema/diff.schema.yml b/config/schema/diff.schema.yml index 550be83..db0ae8f 100644 --- a/config/schema/diff.schema.yml +++ b/config/schema/diff.schema.yml @@ -15,6 +15,9 @@ diff.settings: context_lines_trailing: type: integer label: 'Number of trailing context lines' + default_filter: + type: string + label: 'Default filter on fields based comparison' revision_pager_limit: type: integer label: 'Revisions per page to be displayed in diff pager' diff --git a/src/Form/GeneralSettingsForm.php b/src/Form/GeneralSettingsForm.php index 74c5d53..2affe7a 100644 --- a/src/Form/GeneralSettingsForm.php +++ b/src/Form/GeneralSettingsForm.php @@ -170,6 +170,17 @@ class GeneralSettingsForm extends ConfigFormBase { '#options' => $options, ]; + $form['field_based_settings']['default_filter'] = [ + '#type' => 'select', + '#title' => $this->t('Default Filter'), + '#description' => $this->t('Set the default filter on unified/split fields layouts.'), + '#options' => [ + 'raw' => $this->t('Raw'), + 'strip_tags' => $this->t('Strip Tags'), + ], + '#default_value' => $config->get('general_settings.default_filter'), + ]; + // Check if Visual inline layout is installed. if ($this->diffLayoutManager->hasDefinition('visual_inline')) { $form['visual_inline_settings'] = [ @@ -247,6 +258,7 @@ class GeneralSettingsForm extends ConfigFormBase { 'layout_plugins', 'visual_default_view_mode', 'visual_inline_theme', + 'default_filter', ]; foreach ($keys as $key) { $config->set('general_settings.' . $key, $form_state->getValue($key)); diff --git a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php index 5aa189c..6b19082 100644 --- a/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php +++ b/src/Plugin/diff/Layout/SplitFieldsDiffLayout.php @@ -112,7 +112,8 @@ class SplitFieldsDiffLayout extends DiffLayoutBase { // Build the revisions data. $build = $this->buildRevisionsData($left_revision, $right_revision); - $active_filter = $this->requestStack->getCurrentRequest()->query->get('filter') ?: 'raw'; + $configFilter = $this->configFactory->get('diff.settings')->get('general_settings.default_filter') ?: 'raw'; + $active_filter = $this->requestStack->getCurrentRequest()->query->get('filter') ?: $configFilter; $build['controls']['filter'] = [ '#type' => 'item', '#title' => $this->t('Filter'), diff --git a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php index c0ccb64..1f85cd1 100644 --- a/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php +++ b/src/Plugin/diff/Layout/UnifiedFieldsDiffLayout.php @@ -113,7 +113,8 @@ class UnifiedFieldsDiffLayout extends DiffLayoutBase { // Build the revisions data. $build = $this->buildRevisionsData($left_revision, $right_revision); - $active_filter = $this->requestStack->getCurrentRequest()->query->get('filter') ?: 'raw'; + $configFilter = $this->configFactory->get('diff.settings')->get('general_settings.default_filter') ?: 'raw'; + $active_filter = $this->requestStack->getCurrentRequest()->query->get('filter') ?: $configFilter; $raw_active = $active_filter == 'raw'; $build['controls']['filter'] = [ -- GitLab