From f55db455ecd3dac94570263522fb8dc832200bf0 Mon Sep 17 00:00:00 2001
From: Trevor Simonton <trevor@westernascent.com>
Date: Wed, 14 Nov 2012 12:17:13 -0700
Subject: [PATCH 1/2] Issue #1835852 by tmsimont: Added incremental unique ID function to assist in unique DOM id generation for IEF elements.

---
 inline_entity_form.module |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/inline_entity_form.module b/inline_entity_form.module
index 9723604..c1a7a98 100644
--- a/inline_entity_form.module
+++ b/inline_entity_form.module
@@ -316,7 +316,7 @@ function inline_entity_form_field_widget_form(&$form, &$form_state, $field, $ins
   $parents = array_merge($element['#field_parents'], array($element['#field_name'], $element['#language']));
 
   // Assign a unique identifier to each IEF widget.
-  $ief_id = $instance['id'];
+  $ief_id = _inline_entity_form_get_new_id();
   // Determine the wrapper ID for the entire element.
   $wrapper = 'inline-entity-form-' . $ief_id;
   $element = array(
@@ -769,6 +769,23 @@ function inline_entity_form_process_entity_form(&$entity_form, &$form_state) {
 }
 
 /**
+ * Generates a new DOM id for an IEF field that is unique to the page.
+ *
+ * @return
+ *   The DOM id that should be used as the form element ID.
+ */
+function _inline_entity_form_get_new_id() {
+  static $ief_domid;
+  if (! isset($ief_domid) || empty($ief_domid)) {
+    $ief_domid = 0;
+  }
+  $ief_domid++;
+  // Generate unique Map ID.
+  $ief_domid = 'ief_element_' . $ief_domid;
+  return $ief_domid;
+}
+
+/**
  * Provides the form for adding existing entities through an autocomplete field.
  *
  * @param $entity_form
@@ -1093,7 +1110,7 @@ function inline_entity_form_field_attach_submit($parent_entity_type, $parent_ent
     if (isset($instance['widget']) && $instance['widget']['type'] == 'inline_entity_form') {
       $field_name = $instance['field_name'];
       $langcode = $form[$field_name]['#language'];
-      $ief_id = $instance['id'];
+      $ief_id = $form[$field_name][$langcode]['#ief_id'];
       // There's no IEF data for this field, skip it.
       if (empty($form_state['inline_entity_form'][$ief_id])) {
         continue;
-- 
1.7.4.msysgit.0


From 551fff260cbb9e020a411940bb41e88fbcffbf32 Mon Sep 17 00:00:00 2001
From: Trevor Simonton <trevor@westernascent.com>
Date: Fri, 16 Nov 2012 17:47:45 -0700
Subject: [PATCH 2/2] use dashes on wrapper id, underscores on name parts

---
 inline_entity_form.module |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/inline_entity_form.module b/inline_entity_form.module
index c1a7a98..a91a83b 100644
--- a/inline_entity_form.module
+++ b/inline_entity_form.module
@@ -318,7 +318,7 @@ function inline_entity_form_field_widget_form(&$form, &$form_state, $field, $ins
   // Assign a unique identifier to each IEF widget.
   $ief_id = _inline_entity_form_get_new_id();
   // Determine the wrapper ID for the entire element.
-  $wrapper = 'inline-entity-form-' . $ief_id;
+  $wrapper = 'inline-entity-form-' . str_replace('_', '-', $ief_id);
   $element = array(
     '#type' => 'fieldset',
     '#tree' => TRUE,
@@ -675,7 +675,7 @@ function inline_entity_form_entity_form($controller, $entity_form, &$form_state)
     '#attributes' => array('class' => array('ief-entity-submit')),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $entity_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $entity_form['#ief_id']),
     ),
   );
   $entity_form['actions']['ief_' . $entity_form['#op'] . '_cancel'] = array(
@@ -685,7 +685,7 @@ function inline_entity_form_entity_form($controller, $entity_form, &$form_state)
     '#limit_validation_errors' => array(),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $entity_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $entity_form['#ief_id']),
     ),
   );
 
@@ -780,7 +780,7 @@ function _inline_entity_form_get_new_id() {
     $ief_domid = 0;
   }
   $ief_domid++;
-  // Generate unique Map ID.
+  // Generate a unique ID.
   $ief_domid = 'ief_element_' . $ief_domid;
   return $ief_domid;
 }
@@ -824,7 +824,7 @@ function inline_entity_form_reference_form($controller, $reference_form, &$form_
     '#attributes' => array('class' => array('ief-entity-submit')),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $reference_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $reference_form['#ief_id']),
     ),
   );
   $reference_form['actions']['ief_reference_cancel'] = array(
@@ -834,7 +834,7 @@ function inline_entity_form_reference_form($controller, $reference_form, &$form_
     '#limit_validation_errors' => array(),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $reference_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $reference_form['#ief_id']),
     ),
   );
 
@@ -953,7 +953,7 @@ function inline_entity_form_delete_form($controller, $delete_form, &$form_state)
     '#limit_validation_errors' => array(),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $delete_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $delete_form['#ief_id']),
     ),
     '#submit' => array('inline_entity_form_delete_confirm'),
     '#ief_row_delta' => $delete_form['#ief_row_delta'],
@@ -965,7 +965,7 @@ function inline_entity_form_delete_form($controller, $delete_form, &$form_state)
     '#limit_validation_errors' => array(),
     '#ajax' => array(
       'callback' => 'inline_entity_form_get_element',
-      'wrapper' => 'inline-entity-form-' . $delete_form['#ief_id'],
+      'wrapper' => 'inline-entity-form-' . str_replace('_', '-', $delete_form['#ief_id']),
     ),
     '#submit' => array('inline_entity_form_close_row_form'),
     '#ief_row_delta' => $delete_form['#ief_row_delta'],
-- 
1.7.4.msysgit.0

