? contributions/modules/term_queue/LICENSE.txt
Index: contributions/modules/term_queue/term_queue.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/term_queue/term_queue.admin.inc,v
retrieving revision 1.1
diff -u -p -r1.1 term_queue.admin.inc
--- contributions/modules/term_queue/term_queue.admin.inc	25 Sep 2008 17:56:55 -0000	1.1
+++ contributions/modules/term_queue/term_queue.admin.inc	27 Oct 2008 23:38:24 -0000
@@ -76,6 +76,28 @@ function term_queue_form_submit($form, &
 }
 
 /**
+ * Form to for Term Queue Settings
+ *
+ * @ingroup forms
+ */
+function term_queue_settings_form(&$form_state, $edit = array()) {
+  $form = array();
+
+  $form['global_settings'] = array('#type' => 'fieldset', '#title' => t('Global Settings'));
+
+  $form['global_settings']['term_queue_use_autocomplete'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use Autocomplete Textfield When Adding Terms?'),
+    '#default_value' => variable_get('term_queue_use_autocomplete', FALSE),
+    '#description' => t('Enable this when you have a large number of vocabularies'),
+  );
+
+  // TODO: Add filter for vocabularies
+
+  return system_settings_form($form); 
+}
+
+/**
  * Form to edit an existing term queue
  *
  * @ingroup forms
@@ -144,14 +166,25 @@ function term_queue_add_term_form(&$form
     '#value' => $queue->qid,
   );
 
-  $form['tid'] = array(
-    '#type' => 'select',
-    '#title' => t('Term'),
-    '#options' => $options,
-    '#description' => t('Select a term to be added to the queue.'),
-    '#weight' => -15,
-    '#theme' => 'taxonomy_term_select',
-  );
+  // use a different form field for autocomplete 
+  if(is_autocomplete()) {
+    $form['tid'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Term'),
+      '#autocomplete_path' => 'term_queue/autocomplete',
+      '#description' => t('Begin typing the term name and choices will appear.  Terms are displayed as "termname (category)"'),
+    );
+  }
+  else {
+    $form['tid'] = array(
+      '#type' => 'select',
+      '#title' => t('Term'),
+      '#options' => $options,
+      '#description' => t('Select a term to be added to the queue.'),
+      '#weight' => -15,
+      '#theme' => 'taxonomy_term_select',
+    );
+  }
   
   $form['submit'] = array('#type' => 'submit', '#value' => 'Add Term');
   $form['cancel'] = array(
@@ -170,7 +203,17 @@ function term_queue_add_term_form(&$form
  */
 function term_queue_add_term_form_submit($form, &$form_state) {
   $qid = $form_state['values']['qid'];
-  $tid = $form_state['values']['tid'];
+  
+  // handle the tid value if using autocomplete
+  if(is_autocomplete()) {
+    // value comes in as 'Charterhouse Group (Company) [tid:5193]', parse the tid.
+    $value = preg_match("/tid:\d+/", $form_state['values']['tid'], $matches);
+    $tid_array = explode(":", $matches[0]);
+    $tid = $tid_array[1];
+  }
+  else  
+    $tid = $form_state['values']['tid'];
+
   term_queue_add_term($qid, $tid);
   $form_state['redirect'] = "admin/build/term_queue/$qid/add";
   
@@ -303,5 +346,32 @@ function term_queue_delete_term_form_sub
   return;
 }
 
+/**
+ * Callback for the term name autocomplete.
+ *
+ */
+function term_queue_autocomplete_term($string = '') {
+  $matches = array();
+  if($string) {
+    $sql = "SELECT td.tid, td.name as termname, v.name as category FROM {term_data} td ";
+    $sql .= "JOIN {vocabulary} v ON v.vid = td.vid ";
+    $sql .= "WHERE td.name LIKE '%s%' LIMIT 20";
+    $params = array("$string");
+
+    $result = db_query($sql, $params);
+
+    while($term = db_fetch_object($result)) {
+      $key = "$term->termname ($term->category) [tid:$term->tid]";
+      $matches[$key] = "$term->termname (<b>$term->category</b>)";
+    }
+  }
 
+  drupal_json($matches); 
+}
 
+/**
+ * helper to check if autocomplete is enabled.
+ */
+function is_autocomplete() {
+  return variable_get('term_queue_use_autocomplete', FALSE);
+}
Index: contributions/modules/term_queue/term_queue.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/term_queue/term_queue.info,v
retrieving revision 1.1
diff -u -p -r1.1 term_queue.info
--- contributions/modules/term_queue/term_queue.info	25 Sep 2008 17:56:55 -0000	1.1
+++ contributions/modules/term_queue/term_queue.info	27 Oct 2008 23:38:24 -0000
@@ -1,4 +1,10 @@
 name = "Term Queue"
 description = "Creates ordered lists of Taxonomy Terms"
 core = 6.x
-dependencies[] = taxonomy
\ No newline at end of file
+dependencies[] = taxonomy
+; Information added by drupal.org packaging script on 2008-09-25
+version = "6.x-0.9"
+core = "6.x"
+project = "term_queue"
+datestamp = "1222365924"
+
Index: contributions/modules/term_queue/term_queue.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/term_queue/term_queue.module,v
retrieving revision 1.1
diff -u -p -r1.1 term_queue.module
--- contributions/modules/term_queue/term_queue.module	25 Sep 2008 17:56:55 -0000	1.1
+++ contributions/modules/term_queue/term_queue.module	27 Oct 2008 23:38:24 -0000
@@ -63,6 +63,7 @@ function term_queue_menu() {
     'type' => MENU_DEFAULT_LOCAL_TASK,
     'weight' => -10,
   );
+
   $items['admin/build/term_queue/add'] = array(
     'title' => 'Add Term Queue',
     'page callback' => 'drupal_get_form',
@@ -71,6 +72,16 @@ function term_queue_menu() {
     'type' => MENU_LOCAL_TASK,
     'file' => 'term_queue.admin.inc',
   );
+
+  $items['admin/build/term_queue/settings'] = array(
+    'title' => 'Settings',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('term_queue_settings_form'),
+    'access arguments' => array('administer term queue'),
+    'type' => MENU_LOCAL_TASK,
+    'file' => 'term_queue.admin.inc',
+  );
+
   $items['admin/build/term_queue/%term_queue/edit'] = array(
     'title' => 'Edit Term Queue',
     'page callback' => 'term_queue_edit_form',
@@ -118,6 +129,13 @@ function term_queue_menu() {
     'file' => 'term_queue.admin.inc',
   );
 
+  $items['term_queue/autocomplete'] = array(
+    'title' => t('term auto complete'),
+    'page callback' => 'term_queue_autocomplete_term',
+    'access arguments' => array('administer term queue'),
+    'file' => 'term_queue.admin.inc',
+    'type' => MENU_CALLBACK,
+  );
   return $items;  
 }
 
