c1c9f22b6ed67eb3f3d889da0b17f18cbb2c81b7 tdreszer Thu Mar 24 20:40:04 2011 -0700 Corrected the about message at the bottom of the page. diff --git src/hg/hgFileSearch/hgFileSearch.c src/hg/hgFileSearch/hgFileSearch.c index 7c8038b..8dd6b68 100644 --- src/hg/hgFileSearch/hgFileSearch.c +++ src/hg/hgFileSearch/hgFileSearch.c @@ -208,45 +208,51 @@ struct slName *tdbGroups = tdbListGetGroups(tdbList); if (tdbList == NULL) return *grps; while (grpList != NULL) { struct grp *grp = slPopHead(&grpList); if (slNameInList(tdbGroups,grp->name)) slAddHead(grps,grp); } slNameFreeList(&tdbGroups); slReverse(grps); return *grps; } -static void doFileSearch(char *db,struct cart *cart,struct trackDb *tdbList) +static void doFileSearch(char *db,char *organism,struct cart *cart,struct trackDb *tdbList) { if (!advancedJavascriptFeaturesEnabled(cart)) { warn("Requires advanced javascript features."); return; } +struct sqlConnection *conn = hAllocConn(db); +boolean metaDbExists = sqlTableExists(conn, "metaDb"); +if (!sqlTableExists(conn, "metaDb")) + { + warn("Assembly %s %s does not support Downloadable Files search.", organism, hFreezeFromDb(db)); + hFreeConn(&conn); + return; + } #ifdef SUPPORT_COMPOSITE_SEARCH char *nameSearch = cartOptionalString(cart, TRACK_SEARCH_ON_NAME); char *descSearch=NULL; #endif///def SUPPORT_COMPOSITE_SEARCH char *fileTypeSearch = cartOptionalString(cart, FILE_SEARCH_ON_FILETYPE); boolean doSearch = sameWord(cartUsualString(cart, FILE_SEARCH,"no"), "search"); -struct sqlConnection *conn = hAllocConn(db); -boolean metaDbExists = sqlTableExists(conn, "metaDb"); #ifdef ONE_FUNC struct hash *parents = newHash(4); #endif///def ONE_FUNC boolean searchTermsExist = FALSE; // FIXME: Why is this needed? int cols; #ifdef SUPPORT_COMPOSITE_SEARCH #ifdef USE_TABS enum searchTab selectedTab = simpleTab; char *currentTab = cartUsualString(cart, FILE_SEARCH_CURRENT_TAB, "simpleTab"); if(sameString(currentTab, "simpleTab")) { selectedTab = simpleTab; descSearch = cartOptionalString(cart, TRACK_SEARCH_SIMPLE); freez(&nameSearch); @@ -481,39 +487,35 @@ if (doSearch && mdbSelects != NULL && isNotEmpty(fileTypeSearch)) fileSearchResults(db, conn, mdbSelects, fileTypeSearch); else printf("

No files found.

\n"); if (measureTiming) uglyTime("Searched for files"); } slPairFreeList(&mdbSelects); } hFreeConn(&conn); webNewSection("About Downloadable Files Search"); -if(metaDbExists) - printf("

Search for terms in track names, descriptions, groups, and ENCODE " - "metadata. If multiple terms are entered, only tracks with all terms " - "will be part of the results."); -else - printf("

Search for terms in track descriptions, groups, and names. " - "If multiple terms are entered, only tracks with all terms " - "will be part of the results."); -printf("
more help

\n"); +printf("

Search for downloadable ENCODE files by entering search terms in " + "the Track name or Description fields and/or by making selections with " + "the group, data format, and/or ENCODE metadata drop-downs. For exact " + "matches, use quotes around your search terms."); +printf("
more help

\n"); webEndSectionTables(); } void doMiddle(struct cart *cart) /* Write body of web page. */ { struct trackDb *tdbList = NULL; char *organism = NULL; char *db = NULL; getDbAndGenome(cart, &db, &organism, NULL); char *chrom = cartUsualString(cart, "c", hDefaultChrom(db)); measureTiming = isNotEmpty(cartOptionalString(cart, "measureTiming")); // QUESTION: Do We need track list ??? trackHash ??? Can't we just get one track and no children trackHash = trackHashMakeWithComposites(db,chrom,&tdbList,FALSE); @@ -521,31 +523,31 @@ cartWebStart(cart, db, "Search for Downloadable Files in the %s %s Assembly", organism, hFreezeFromDb(db)); webIncludeResourceFile("HGStyle.css"); webIncludeResourceFile("jquery-ui.css"); webIncludeResourceFile("ui.dropdownchecklist.css"); jsIncludeFile("jquery.js", NULL); jsIncludeFile("jquery-ui.js", NULL); //jsIncludeFile("ui.core.js",NULL); // NOTE: This appears to be not needed as long as jquery-ui.js comes before ui.dropdownchecklist.js jsIncludeFile("ui.dropdownchecklist.js",NULL); jsIncludeFile("utils.js",NULL); // This line is needed to get the multi-selects initialized //printf("\n"); printf("\n"); -doFileSearch(db,cart,tdbList); +doFileSearch(db,organism,cart,tdbList); printf("
\n"); webEnd(); } char *excludeVars[] = { "submit", "Submit", "g", "ajax", FILE_SEARCH,TRACK_SEARCH_ADD_ROW,TRACK_SEARCH_DEL_ROW}; // HOW IS 'ajax" going to be supported? int main(int argc, char *argv[]) /* Process command line. */ { cgiSpoof(&argc, argv); htmlSetBackground(hBackgroundImage()); cartEmptyShell(doMiddle, hUserCookie(), excludeVars, NULL); return 0;