From 1dfd2fa5d06ef0e5a48b4d696d01a473e553a680 Mon Sep 17 00:00:00 2001
From: Attila Santo <attisan@2041338.no-reply.drupal.org>
Date: Thu, 17 Sep 2015 15:16:40 +0200
Subject: [PATCH] minor: added self reference option and normalized multi
 selected options to only take the first selection into
 account

---
 sites/all/modules/contrib_fields/ddf/ddf.js |   13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/sites/all/modules/contrib_fields/ddf/ddf.js b/sites/all/modules/contrib_fields/ddf/ddf.js
index 4e86b66..0caa3bf 100644
--- a/sites/all/modules/contrib_fields/ddf/ddf.js
+++ b/sites/all/modules/contrib_fields/ddf/ddf.js
@@ -53,7 +53,8 @@ Drupal.behaviors.ddf = {
 
         $.each(controlling_elements, function(field_name, controlling_element) {
           var value = $(controlling_element).fieldValue();
-          options.data[field_name] = (value.length > 0) ? value.join('+') : 'NULL';
+          // options.data[field_name] = (value.length > 0) ? value.join('+') : 'NULL';
+          options.data[field_name] = (value.length > 0) ? value.shift() : 'NULL';
         });
 
         $.each(dependent_selectors, function(field_name, selector) {options.data['dep:' + field_name] = selector;});
@@ -75,6 +76,7 @@ Drupal.ajax.prototype.commands.ddf_insertnowrap = function (ajax, response, stat
   var wrapper = response.selector ? $(response.selector) : $(ajax.wrapper);
   var method = response.method || ajax.method;
   var effect = ajax.getEffect(response);
+  var selections = wrapper.val();
 
   // We don't know what response.data contains: it might be a string of text
   // without HTML, so don't rely on jQuery correctly interpreting
@@ -116,6 +118,15 @@ Drupal.ajax.prototype.commands.ddf_insertnowrap = function (ajax, response, stat
     new_content[effect.showEffect](effect.showSpeed);
   }
 
+  // Set active selection.
+  if (selections) {
+    $.each(selections, function(index, seletion) {
+      if ($(response.selector + ' option[value=' + seletion + ']').length > 0) {
+        $(response.selector + ' option[value=' + seletion + ']').prop('selected', true);
+      }
+    });
+  }
+
   // Attach all JavaScript behaviors to the new content, if it was successfully
   // added to the page, this if statement allows #ajax['wrapper'] to be
   // optional.
-- 
1.7.10.4

