482cd8f6baaff31cfbfc99391f19d1e739e67114
tdreszer
  Mon Sep 27 11:59:41 2010 -0700
Moved mdb queries from hgTracks and hgApi to mdb.  Made sure the queries exclude files.
diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c
index e01fcc0..dbf8770 100644
--- src/hg/hgTracks/searchTracks.c
+++ src/hg/hgTracks/searchTracks.c
@@ -15,6 +15,7 @@
 #include "web.h"
 #include "jksql.h"
 #include "hdb.h"
+#include "mdb.h"
 #include "trix.h"
 #include "jsHelper.h"
 #include "imageV2.h"
@@ -125,28 +126,14 @@
 return FALSE;
 }
 
-#define MDB_VAL_TRUNC_AT 50
 static int getTermArray(struct sqlConnection *conn, char ***terms, char *type)
 // Pull out all term fields from ra entries with given type
 // Returns count of items found and items via the terms argument.
 {
-struct sqlResult *sr = NULL;
-char **row = NULL;
-char query[256];
-struct slName *termList = NULL;
 int i, count = 0;
 char **retVal;
-
-safef(query, sizeof(query), "select distinct LEFT(val,%d) from metaDb where var = '%s'", MDB_VAL_TRUNC_AT,type);
-sr = sqlGetResult(conn, query);
-while ((row = sqlNextRow(sr)) != NULL)
-    {
-    slNameAddHead(&termList, row[0]);
-    count++;
-    }
-sqlFreeResult(&sr);
-slSort(&termList, slNameCmpCase);
-count++; // make room for "Any"
+struct slName *termList = mdbValSearch(conn, type, MDB_VAL_STD_TRUNCATION, TRUE, FALSE); // Tables not files
+count = slCount(termList) + 1; // make room for "Any"
 AllocArray(retVal, count);
 retVal[0] = cloneString(ANYLABEL);
 for(i = 1; termList != NULL;termList = termList->next, i++)
@@ -157,30 +144,6 @@
 return count;
 }
 
-static struct slName *metaDbSearch(struct sqlConnection *conn, char *name, char *val, char *op)
-// Search the assembly's metaDb table for var; If name == NULL, we search every metadata field.
-// Search is via mysql, so it's case-insensitive.
-{
-char query[512];
-char *prefix = "select distinct obj from metaDb";
-if(sameString(op, "contains"))
-    if(name == NULL)
-        safef(query, sizeof(query), "%s where val like  '%%%s%%'", prefix, val);
-    else
-        safef(query, sizeof(query), "%s where var = '%s' and val like  '%%%s%%'", prefix, name, val);
-else if (strlen(val) == MDB_VAL_TRUNC_AT)
-    if(name == NULL)
-        safef(query, sizeof(query), "%s where val like '%s%%'", prefix, val);
-    else
-        safef(query, sizeof(query), "%s where var = '%s' and val like '%s%%'", prefix, name, val);
-else
-    if(name == NULL)
-        safef(query, sizeof(query), "%s where val = '%s'", prefix, val);
-    else
-        safef(query, sizeof(query), "%s where var = '%s' and val = '%s'", prefix, name, val);
-return sqlQuickList(conn, query);
-}
-
 static int metaDbVars(struct sqlConnection *conn, char *** metaVars, char *** metaLabels)
 // Search the assemblies metaDb table; If name == NULL, we search every metadata field.
 {
@@ -342,7 +305,7 @@
 
 webStartWrapperDetailedNoArgs(cart, database, "", "Search for Tracks", FALSE, FALSE, FALSE, FALSE);
 
-hPrintf("<div style='max-width:1000px;'>");
+hPrintf("<div style='max-width:1080px;'>");
 hPrintf("<form action='%s' name='SearchTracks' id='searchTracks' method='get'>\n\n", hgTracksName());
 cartSaveSession(cart);  // Creates hidden var of hgsid to avoid bad voodoo
 
@@ -357,7 +320,7 @@
         "<li><a href='#simpleTab'><span>Search</span></a></li>\n"
         "<li><a href='#advancedTab'><span>Advanced</span></a></li>\n"
         "</ul>\n"
-        "<div id='simpleTab' style='max-width:inherit;'>\n",cgiBrowser()==btIE?"width:980px;":"max-width:inherit;");
+        "<div id='simpleTab' style='max-width:inherit;'>\n",cgiBrowser()==btIE?"width:1060px;":"max-width:inherit;");
 
 hPrintf("<table style='width:100%%;'><tr><td colspan='2'>");
 hPrintf("<input type='text' name='hgt.simpleSearch' id='simpleSearch' value='%s' style='max-width:1000px; width:100%%' onkeyup='findTracksSearchButtonsEnable(true);'>\n", descSearch == NULL ? "" : descSearch);
@@ -599,7 +562,8 @@
             {
             if(!isEmpty(mdbVal[i]))
                 {
-                struct slName *tmp = metaDbSearch(conn, mdbVar[i], mdbVal[i], "is");
+                struct slName *tmp = mdbObjSearch(conn, mdbVar[i], mdbVal[i], "is", MDB_VAL_STD_TRUNCATION, TRUE, FALSE);
+                //struct slName *tmp = metaDbSearch(conn, mdbVar[i], mdbVal[i], "is");
                 if(metaTracks == NULL)
                     metaTracks = tmp;
                 else