? nodereference_url_edit_fallback_v2.patch
? nodereference_url_edit_fallback_v3.patch
Index: nodereference_url.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodereference_url/nodereference_url.module,v
retrieving revision 1.19
diff -u -p -r1.19 nodereference_url.module
--- nodereference_url.module	7 Jan 2010 05:15:06 -0000	1.19
+++ nodereference_url.module	19 Jan 2010 06:28:50 -0000
@@ -229,6 +229,11 @@ function nodereference_url_widget_settin
           '#required' => TRUE,
           '#element_validate' => array('nodereference_url_fallback_validate'),
         );
+        $form['edit_fallback'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Use fallback behavior during edit mode.'),
+          '#default_value' => isset($widget['edit_fallback']) ? $widget['edit_fallback'] : FALSE,
+        );        
 
         $form['node_link'] = array(
           '#tree' => TRUE,
@@ -274,7 +279,7 @@ function nodereference_url_widget_settin
       return $form;
 
     case 'save':
-      return array('node_link', 'fallback');
+      return array('node_link', 'fallback', 'edit_fallback');
   }
 }
 
@@ -334,8 +339,8 @@ function nodereference_url_widget(&$form
     }
   }
 
-  // If no NID is available, use the fallback behavior.
-  if (!isset($referenced_nid)) {
+  // If no NID is available or edit_fallback is true, use the fallback behavior.
+  if ( !isset($referenced_nid) || (isset($referenced_nid) && $field['widget']['edit_fallback'] == TRUE && count($items) > 0) ){
     // If not on a node/add page (such as editing a node that does not yet have
     // a reference), switch to using an autocomplete widget.
     if ($field['widget']['fallback'] == 'page_not_found' && arg(0) == 'node' && is_numeric(arg(1))) {
@@ -373,7 +378,7 @@ function nodereference_url_widget(&$form
     }
   }
 
-  if (isset($referenced_nid)) {
+  if (isset($referenced_nid) && $field['widget']['edit_fallback'] == FALSE || count($items) == 0) {
     $element[0]['nid'] = array(
       '#title' => $field['widget']['label'],
       '#type' => 'nodereference_url',
