? .DS_Store
? contrib/.DS_Store
Index: luceneapi.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/luceneapi/luceneapi.module,v
retrieving revision 1.61.2.133
diff -u -p -r1.61.2.133 luceneapi.module
--- luceneapi.module	26 Feb 2010 18:44:01 -0000	1.61.2.133
+++ luceneapi.module	10 Jun 2010 21:20:55 -0000
@@ -37,6 +37,11 @@ define('LUCENEAPI_IRRELEVANT', 2E-9);
 define('LUCENEAPI_CACHE_TABLE', 'cache_luceneapi');
 
 /**
+ * Search key to use when none specified by user.
+ */
+define('LUCENEAPI_EMPTY_SEARCH_TEXT', 'text:empty');
+
+/**
  * Autoload callback, modeled after the Zend_Loader::loadClass() method.
  *
  * @param $class
@@ -1683,15 +1688,18 @@ function luceneapi_do_search(LuceneAPI_S
     }
 
     // parses user query if a string was passed
-    if (!$user_query instanceof Zend_Search_Lucene_Search_Query) {
-      $user_query = luceneapi_query_parse($user_query, $module, 'keys');
-      if (!$user_query || form_get_errors()) {
-        return array();
+    if($user_query != LUCENEAPI_EMPTY_SEARCH_TEXT) {
+      if (!$user_query instanceof Zend_Search_Lucene_Search_Query) {  
+
+        $user_query = luceneapi_query_parse($user_query, $module, 'keys');
+        if (!$user_query || form_get_errors()) {
+          return array();
+        }
       }
-    }
 
-    // adds user query to query container
-    luceneapi_subquery_add($query, $user_query, 'required', TRUE);
+      // adds user query to query container
+      luceneapi_subquery_add($query, $user_query, 'required', TRUE);      
+    }
 
     // gets the sort array from the query string, sanitized fields
     if (isset($_GET['lucenesort'])) {
Index: contrib/luceneapi_facet/luceneapi_facet.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/luceneapi/contrib/luceneapi_facet/Attic/luceneapi_facet.module,v
retrieving revision 1.1.2.64
diff -u -p -r1.1.2.64 luceneapi_facet.module
--- contrib/luceneapi_facet/luceneapi_facet.module	20 Feb 2010 15:02:41 -0000	1.1.2.64
+++ contrib/luceneapi_facet/luceneapi_facet.module	10 Jun 2010 21:20:56 -0000
@@ -309,6 +309,12 @@ function luceneapi_facet_search_form_val
     'keys'   => trim($form_state['values']['keys']),
     'facets' => _luceneapi_facet_values_extract($form_state['values']),
   );
+
+  // add dummy keys if facet selections have been made
+  if(empty($value['keys']) && !empty($value['facets'])) {
+    $value['keys'] = LUCENEAPI_EMPTY_SEARCH_TEXT;
+  }
+
   form_set_value($form['basic']['inline']['processed_keys'], $value, $form_state);
 }
 
@@ -764,6 +770,11 @@ function luceneapi_facet_form_search_for
     return;
   }
 
+  // allow facet only search - remove placeholder text from textfield
+  if($form['basic']['inline']['keys']['#default_value'] == LUCENEAPI_EMPTY_SEARCH_TEXT) {
+    $form['basic']['inline']['keys']['#default_value'] = '';
+  }  
+
   // adds rendered facets in the "fieldset" relam to the search form.
   $type = luceneapi_index_type_get($form['module']['#value']);
   $elements = luceneapi_facet_realm_render('fieldset', $form['module']['#value'], $type);
@@ -1018,12 +1029,17 @@ function luceneapi_facet_block_realm_ren
     if (!$query = luceneapi_query_get('boolean')) {
       throw new LuceneAPI_Exception(t('Error instantiating boolean query.'));
     }
-    if (!$user_query = luceneapi_query_parse(search_get_keys(), $module)) {
-      return array();
-    }
 
-    // adds user query to query container
-    luceneapi_subquery_add($query, $user_query, 'required', TRUE);
+    // parses search keys if provided by user
+    $search_keys = search_get_keys();
+    if ($search_keys != LUCENEAPI_EMPTY_SEARCH_TEXT) {
+      if(!$user_query = luceneapi_query_parse($search_keys, $module)) {
+        return array();
+      }      
+      // adds user query to query container
+      luceneapi_subquery_add($query, $user_query, 'required', TRUE);      
+    }  
+
 
     // invokes hook_luceneapi_query_alter() so modules can alter the query
     $type = luceneapi_index_type_get($module);
@@ -1067,23 +1083,7 @@ function luceneapi_facet_block_realm_ren
     foreach ($items as $name => $item) {
       foreach ($item['count'] as $value => $count) {
         if ($count) {
-          $qstring = $_GET;
-          if (!isset($item['selected'][$value])) {
-            if (empty($qstring[$item['element']]) || is_array($qstring[$item['element']])) {
-              $qstring[$item['element']][$value] = $value;
-            }
-            else {
-              $qstring[$item['element']] = array($value => $value);
-            }
-          }
-          else {
-            if (is_array($qstring[$item['element']])) {
-              unset($qstring[$item['element']][$value]);
-            }
-            else {
-              unset($qstring[$item['element']]);
-            }
-          }
+          $qstring = luceneapi_facet_get_qstring($item, $value);
 
           // formats the query string, adds to options
           $items[$name]['items'][$value]['options']['query'] = drupal_query_string_encode(
@@ -1105,11 +1105,37 @@ function luceneapi_facet_block_realm_ren
 }
 
 /**
+ * get the url query strings for the facet value
+ */ 
+function luceneapi_facet_get_qstring($item, $value) {
+  $qstring = $_GET;
+  if (!isset($item['selected'][$value])) {
+    if (empty($qstring[$item['element']]) || is_array($qstring[$item['element']])) {
+      $qstring[$item['element']][$value] = $value;
+    }
+    else {
+      $qstring[$item['element']] = array($value => $value);
+    }
+  }
+  else {
+    if (is_array($qstring[$item['element']])) {
+      unset($qstring[$item['element']][$value]);
+    }
+    else {
+      unset($qstring[$item['element']]);
+    }
+  }
+  return $qstring;  
+}
+
+/**
  * Implementation of hook_luceneapi_facet_postrander_alter()
  */
 function luceneapi_facet_luceneapi_facet_postrender_alter(&$items, $realm, $module, $type = NULL) {
   if ('fieldset' == $realm && isset($items['original_keys'])) {
-    $keys = search_get_keys();
+    // handle empty search reset for fieldset realm
+    $keys = search_get_keys() == LUCENEAPI_EMPTY_SEARCH_TEXT ? t('reset') : search_get_keys();  
+    
     if (!empty($keys)) {
       $items['original_keys'] = array_merge($items['original_keys'], array(
         '#prefix' => '<div class="criterion">',
@@ -1117,7 +1143,7 @@ function luceneapi_facet_luceneapi_facet
         '#value' => theme(
           'luceneapi_facet_markup',
           $items['original_keys']['#title'],
-          luceneapi_l(search_get_keys(), $_GET['q']),
+          luceneapi_l($keys, $_GET['q']),
           $module
         ),
       ));
@@ -1125,6 +1151,15 @@ function luceneapi_facet_luceneapi_facet
     else {
       $items['original_keys'] = array();
     }
+  } else if(isset($items['original_keys'])) {  
+    // handle empty search reset with other realms   
+    if($items['original_keys']['items']) {
+      foreach($items['original_keys']['items'] as $key => $item) {
+        if($item['text'] == LUCENEAPI_EMPTY_SEARCH_TEXT) {        
+          $items['original_keys']['items'][$key]['text'] = t('reset');
+        }
+      }                                         
+    }
   }
 }
 
Index: contrib/luceneapi_node/luceneapi_node.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/luceneapi/contrib/luceneapi_node/luceneapi_node.module,v
retrieving revision 1.40.2.92
diff -u -p -r1.40.2.92 luceneapi_node.module
--- contrib/luceneapi_node/luceneapi_node.module	11 Mar 2010 14:26:59 -0000	1.40.2.92
+++ contrib/luceneapi_node/luceneapi_node.module	10 Jun 2010 21:20:57 -0000
@@ -805,12 +805,14 @@ function luceneapi_node_luceneapi_facet_
     $rows = array();
     if ($result = db_query(db_rewrite_sql($sql))) {
       while ($row = db_fetch_object($result)) {
-        $path = sprintf('search/%s/%s:%s', $module, $facet['element'], $row->id);
+        $path = sprintf('search/%s/%s', $module, LUCENEAPI_EMPTY_SEARCH_TEXT);  
+        $qstring = luceneapi_facet_get_qstring($facet, $row->id);
+        unset($qstring['q']);
         $rows[$row->id] = array(
           'function' => 'luceneapi_facet_link',
           'text' => $row->id,
           'path' => $path,
-          'options' => array(),
+          'options' => array('query' => $qstring),
         );
         if ($empty_settings['counts']) {
           $rows[$row->id]['count'] = $row->num;
