From 434d991b5ac49e02cf36709fdcb4b65ea2fb0756 Mon Sep 17 00:00:00 2001
From: Jeffrey Fortune <jfortune@tombras.com>
Date: Wed, 13 Feb 2019 21:54:52 -0500
Subject: [PATCH] Not working with Paragraphs fix, updated validation and
 massage fields

---
 .../FieldFormatter/BgImgFieldFormatter.php    |  2 +-
 src/Plugin/Field/FieldType/BgImgItem.php      |  1 -
 .../Field/FieldWidget/BgImageFieldWidget.php  | 27 ++++++-------------
 3 files changed, 9 insertions(+), 21 deletions(-)

diff --git a/src/Plugin/Field/FieldFormatter/BgImgFieldFormatter.php b/src/Plugin/Field/FieldFormatter/BgImgFieldFormatter.php
index 5c2c585..2ddf2d2 100644
--- a/src/Plugin/Field/FieldFormatter/BgImgFieldFormatter.php
+++ b/src/Plugin/Field/FieldFormatter/BgImgFieldFormatter.php
@@ -122,7 +122,7 @@ class BgImgFieldFormatter extends ResponsiveImageFormatter implements ContainerF
       $image_style_mappings = $storage->get('image_style_mappings');
       if (isset($image_style_mappings[0]) && $image_style_mappings[0]['image_mapping_type']
       === 'image_style') {
-        $new_options = [$key => $option];
+        $new_options += [$key => $option];
       }
     }
     $elements['responsive_image_style']['#options'] = $new_options;
diff --git a/src/Plugin/Field/FieldType/BgImgItem.php b/src/Plugin/Field/FieldType/BgImgItem.php
index cf638d0..e885371 100644
--- a/src/Plugin/Field/FieldType/BgImgItem.php
+++ b/src/Plugin/Field/FieldType/BgImgItem.php
@@ -157,7 +157,6 @@ class BgImgItem extends ImageItem {
       '#description'      => $this->t('CSS Selector for background image.'),
       '#default_value'    => $css_option_settings['css_selector'],
       '#token_types'      => $token_types,
-      '#element_validate' => 'token_element_validate',
     ];
 
     // The tokens that are scoped for the selector input.
diff --git a/src/Plugin/Field/FieldWidget/BgImageFieldWidget.php b/src/Plugin/Field/FieldWidget/BgImageFieldWidget.php
index d08107b..585fa3e 100644
--- a/src/Plugin/Field/FieldWidget/BgImageFieldWidget.php
+++ b/src/Plugin/Field/FieldWidget/BgImageFieldWidget.php
@@ -49,24 +49,14 @@ class BgImageFieldWidget extends ImageWidget {
    * {@inheritdoc}
    */
   public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
-
-    $new_values = [];
-
-    foreach ($values as &$value) {
-      $new_value = $value;
-      $new_value['css_selector'] = $value['css_settings']['css_selector'];
-      $new_value['css_repeat'] = $value['css_settings']['css_repeat'];
-      $new_value['css_background_size'] = $value['css_settings']['css_background_size'];
-      $new_value['css_background_position'] = $value['css_settings']['css_background_position'];
-
-      foreach ($value['fids'] as $fid) {
-        $new_value['target_id'] = $fid;
-        unset($new_value['fids']);
-      }
-
-      unset($new_value['css_settings']);
-
-      $new_values[] = $new_value;
+    $new_values = parent::massageFormValues($values, $form, $form_state);
+
+    foreach ($new_values as $key => $value) {
+      $new_values[$key]['css_selector'] = $value['css_settings']['css_selector'];
+      $new_values[$key]['css_repeat'] = $value['css_settings']['css_repeat'];
+      $new_values[$key]['css_background_size'] = $value['css_settings']['css_background_size'];
+      $new_values[$key]['css_background_position'] = $value['css_settings']['css_background_position'];
+      unset($new_values[$key]['css_settings']);
     }
 
     return $new_values;
@@ -114,7 +104,6 @@ class BgImageFieldWidget extends ImageWidget {
         '#description' => t('CSS Selector for background image.'),
         '#default_value' => $selector,
         '#token_types' => $token_types,
-        '#element_validate' => 'token_element_validate',
         '#required' => FALSE,
       ];
 
-- 
GitLab