? 593858-1.patch
? 593858.patch
? draggableviews_handler_nodequeue.inc
? nodequeue_adding_empty_node_does_no_delete.patch
? nodequeue_index_notice.patch
? nodequeue_install.patch
? addons/.DS_Store
Index: nodequeue.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.install,v
retrieving revision 1.17
diff -u -p -r1.17 nodequeue.install
--- nodequeue.install	29 Sep 2009 16:22:56 -0000	1.17
+++ nodequeue.install	3 Oct 2009 20:18:58 -0000
@@ -387,6 +387,22 @@ function nodequeue_update_6001() {
 
 //The previous 6002 update has been moved to 5205.
 
+/*
+ * Remove invalid entries from the nodequeue_nodes table created as a result of bugs like http://drupal.org/node/593858.
+ */
+function nodequeue_update_6003() {
+  $ret = array();
+  $invalid = db_result(db_query("SELECT count(nid) FROM {nodequeue_nodes} WHERE nid = 0"));
+  if (!empty($invalid)) {
+    db_query("DELETE FROM {nodequeue_nodes} WHERE nid = 0");
+    $t = get_t();
+    $ret[] = array('success' => TRUE, 'query' => $t("Deleted @invalid invalid entries from the {nodequeue_nodes} table.", array('@invalid' => $invalid)));
+  }
+  else {
+    $ret[] = array('success' => TRUE, 'query' => "No invalid entries found in the {nodequeue_nodes} table.");
+  }
+  return $ret;
+}
 function nodequeue_install() {
   drupal_install_schema('nodequeue');
 }
Index: nodequeue.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.module,v
retrieving revision 1.93
diff -u -p -r1.93 nodequeue.module
--- nodequeue.module	29 Sep 2009 16:25:08 -0000	1.93
+++ nodequeue.module	3 Oct 2009 20:19:00 -0000
@@ -1121,7 +1121,7 @@ function nodequeue_arrange_subqueue_form
     '#value' => t('Clear'),
     '#submit' => array('nodequeue_arrange_subqueue_form_clear_submit'),
   );
-
+  $form['#validate'][] = 'nodequeue_arrange_subqueue_form_add_validate';
   // disable all buttons if the queue is empty
   if ($count == 0) {
     $form['submit']['#disabled']  = TRUE;
@@ -1279,10 +1279,12 @@ function nodequeue_arrange_subqueue_form
 function nodequeue_arrange_subqueue_form_add_submit($form, &$form_state) {
   $queue = nodequeue_load($form['#queue']['qid']);
   $subqueue = nodequeue_load_subqueue($form['#subqueue']['sqid']);
-
   if (!empty($form_state['values']['add']['nid'])) {
     preg_match('/\[nid: (\d+)\]$/', $form_state['values']['add']['nid'], $matches);
     $nid = $matches[1];
+    if (empty($nid)) {
+      form_set_error('', t('Please enter a valid node title.'));
+    }
   }
 
   nodequeue_subqueue_add($queue, $subqueue, $nid);
@@ -1995,22 +1997,21 @@ function nodequeue_remove_subqueue($sqid
  *   The node ID
  */
 function nodequeue_subqueue_add($queue, &$subqueue, $nid) {
-  // If adding this would make the queue too big, pop the front node
-  // (or nodes) out.
-
-  if (!empty($queue->size)) {
-    // 0 means infinity so never do this if false
-    nodequeue_check_subqueue_size($queue, $subqueue, $queue->size - 1);
-  }
-
-  db_query("INSERT INTO {nodequeue_nodes} (sqid, qid, nid, position, timestamp) VALUES (%d, %d, %d, %d, %d)", $subqueue->sqid, $queue->qid, $nid, $subqueue->count + 1, time());
-  $subqueue->count++;
-  if (module_exists('apachesolr')) {
-    apachesolr_mark_node($nid);
+  if (!empty($nid)) {
+    db_query("INSERT INTO {nodequeue_nodes} (sqid, qid, nid, position, timestamp) VALUES (%d, %d, %d, %d, %d)", $subqueue->sqid, $queue->qid, $nid, $subqueue->count + 1, time());
+    $subqueue->count++;
+    // If adding this would make the queue too big, pop the front node
+    // (or nodes) out.
+    if (!empty($queue->size)) {
+      // 0 means infinity so never do this if false
+      nodequeue_check_subqueue_size($queue, $subqueue, $queue->size - 1);
+    }
+    if (module_exists('apachesolr')) {
+      apachesolr_mark_node($nid);
+    }  
+    //Invoke the hook to notify other modules of the node addition.
+    module_invoke_all('nodequeue_add', $subqueue->sqid, $nid);
   }
-
-  // Invoke the hook to notify other modules of the node addition.
-  module_invoke_all('nodequeue_add', $subqueue->sqid, $nid);
 }
 
 /**
