d57d2f80be605f3d71a7eb30ba4a65f8f6bce98c tdreszer Wed Apr 20 15:42:40 2011 -0700 Removed a lot of ifdef'd out code. We are not going to revive fileSearch as a tab on trackSearch (unfortunately) diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c index 4df1ff0..83c8cd1 100644 --- src/hg/hgTracks/searchTracks.c +++ src/hg/hgTracks/searchTracks.c @@ -22,35 +22,30 @@ #include "imageV2.h" #define TRACK_SEARCH_FORM "trackSearch" #define SEARCH_RESULTS_FORM "searchResults" #define TRACK_SEARCH_CURRENT_TAB "tsCurTab" #define TRACK_SEARCH_SIMPLE "tsSimple" #define TRACK_SEARCH_ON_NAME "tsName" #define TRACK_SEARCH_ON_TYPE "tsType" #define TRACK_SEARCH_ON_GROUP "tsGroup" #define TRACK_SEARCH_ON_DESCR "tsDescr" #define TRACK_SEARCH_SORT "tsSort" #define SUPPORT_QUOTES_IN_NAME_SEARCH -//#define FILES_SEARCH -#ifdef FILES_SEARCH - #define FILE_SEARCH_ON_FILETYPE "tsFileType" -#endif///def FILES_SEARCH - static int gCmpGroup(const void *va, const void *vb) /* Compare groups based on label. */ { const struct group *a = *((struct group **)va); const struct group *b = *((struct group **)vb); return strcmp(a->label, b->label); } // Would like to do a radio button choice ofsorts enum sortBy { sbRelevance=0, sbAbc =1, sbHierarchy=2, }; @@ -591,67 +586,57 @@ webIncludeResourceFile("ui.dropdownchecklist.css"); //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); // This line is needed to get the multi-selects initialized hPrintf("<script type='text/javascript'>$(document).ready(function() { $('.filterBy').each( function(i) { $(this).dropdownchecklist({ firstItemChecksAll: true, noneIsAll: true });});});</script>\n"); struct group *group; char *groups[128]; char *labels[128]; int numGroups = 1; groups[0] = ANYLABEL; labels[0] = ANYLABEL; char *nameSearch = cartOptionalString(cart, TRACK_SEARCH_ON_NAME); char *typeSearch = cartOptionalString(cart, TRACK_SEARCH_ON_TYPE); -#ifdef FILES_SEARCH -char *fileTypeSearch = cartOptionalString(cart, FILE_SEARCH_ON_FILETYPE); -#endif///def FILES_SEARCH char *descSearch = NULL; char *groupSearch = cartOptionalString(cart, TRACK_SEARCH_ON_GROUP); boolean doSearch = sameString(cartOptionalString(cart, TRACK_SEARCH), "Search") || cartUsualInt(cart, TRACK_SEARCH_PAGER, -1) >= 0; struct sqlConnection *conn = hAllocConn(database); boolean metaDbExists = sqlTableExists(conn, "metaDb"); int tracksFound = 0; struct trix *trix; char trixFile[HDB_MAX_PATH_STRING]; char **descWords = NULL; int descWordCount = 0; boolean searchTermsExist = FALSE; int cols; char buf[512]; enum searchTab selectedTab = simpleTab; char *currentTab = cartUsualString(cart, TRACK_SEARCH_CURRENT_TAB, "simpleTab"); if(sameString(currentTab, "simpleTab")) { selectedTab = simpleTab; descSearch = cartOptionalString(cart, TRACK_SEARCH_SIMPLE); freez(&nameSearch); } else if(sameString(currentTab, "advancedTab")) { selectedTab = advancedTab; descSearch = cartOptionalString(cart, TRACK_SEARCH_ON_DESCR); } -#ifdef FILES_SEARCH -else if(sameString(currentTab, "filesTab")) - { - selectedTab = filesTab; - descSearch = cartOptionalString(cart, TRACK_SEARCH_ON_DESCR); - } -#endif///def FILES_SEARCH #ifdef SUPPORT_QUOTES_IN_NAME_SEARCH if(descSearch && selectedTab == simpleTab) // TODO: could support quotes in simple tab by detecting quotes and choosing to use doesNameMatch() || doesDescriptionMatch() stripChar(descSearch, '"'); #else///ifndef SUPPORT_QUOTES_IN_NAME_SEARCH if(descSearch) stripChar(descSearch, '"'); #endif///ndef SUPPORT_QUOTES_IN_NAME_SEARCH trackList = getTrackList(&groupList, -2); // global makeGlobalTrackHash(trackList); // NOTE: This is necessary when container cfg by '*' results in vis changes // This will handle composite/view override when subtrack specific vis exists, AND superTrack reshaping. parentChildCartCleanup(trackList,cart,oldVars); // Subtrack settings must be removed when composite/view settings are updated @@ -679,33 +664,30 @@ cartSaveSession(cart); // Creates hidden var of hgsid to avoid bad voodoo safef(buf, sizeof(buf), "%lu", clock1()); cgiMakeHiddenVar("hgt_", buf); // timestamps page to avoid browser cache hPrintf("<input type='hidden' name='db' value='%s'>\n", database); hPrintf("<input type='hidden' name='%s' id='currentTab' value='%s'>\n", TRACK_SEARCH_CURRENT_TAB, currentTab); hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_DEL_ROW); hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_ADD_ROW); hPrintf("<input type='hidden' name='%s' value=''>\n",TRACK_SEARCH_PAGER); hPrintf("<div id='tabs' style='display:none; %s'>\n" "<ul>\n" "<li><a href='#simpleTab'><B style='font-size:.9em;font-family: arial, Geneva, Helvetica, san-serif;'>Search</B></a></li>\n" "<li><a href='#advancedTab'><B style='font-size:.9em;font-family: arial, Geneva, Helvetica, san-serif;'>Advanced</B></a></li>\n" -#ifdef FILES_SEARCH - "<li><a href='#filesTab'><B style='font-size:.9em;font-family: arial, Geneva, Helvetica, san-serif;'>Files</B></a></li>\n" -#endif///def FILES_SEARCH "</ul>\n" "<div id='simpleTab' style='max-width:inherit;'>\n",cgiBrowser()==btIE?"width:1060px;":"max-width:inherit;"); hPrintf("<table id='simpleTable' style='width:100%%; font-size:.9em;'><tr><td colspan='2'>"); hPrintf("<input type='text' name='%s' id='simpleSearch' class='submitOnEnter' value='%s' style='max-width:1000px; width:100%%;' onkeyup='findTracksSearchButtonsEnable(true);'>\n", TRACK_SEARCH_SIMPLE,descSearch == NULL ? "" : descSearch); if (selectedTab==simpleTab && descSearch) searchTermsExist = TRUE; hPrintf("</td></tr><td style='max-height:4px;'></td></tr></table>"); //hPrintf("</td></tr></table>"); hPrintf("<input type='submit' name='%s' id='searchSubmit' value='search' style='font-size:.8em;'>\n", TRACK_SEARCH); hPrintf("<input type='button' name='clear' value='clear' class='clear' style='font-size:.8em;' onclick='findTracksClear();'>\n"); hPrintf("<input type='submit' name='submit' value='cancel' class='cancel' style='font-size:.8em;'>\n"); hPrintf("</div>\n"); @@ -767,103 +749,30 @@ if (output) { puts(output); freeMem(output); } slPairFreeList(&mdbVars); } hPrintf("</table>\n"); hPrintf("<input type='submit' name='%s' id='searchSubmit' value='search' style='font-size:.8em;'>\n", TRACK_SEARCH); hPrintf("<input type='button' name='clear' value='clear' class='clear' style='font-size:.8em;' onclick='findTracksClear();'>\n"); hPrintf("<input type='submit' name='submit' value='cancel' class='cancel' style='font-size:.8em;'>\n"); //hPrintf("<a target='_blank' href='../goldenPath/help/trackSearch.html'>help</a>\n"); hPrintf("</div>\n"); -#ifdef FILES_SEARCH -// Files tab -hPrintf("<div id='filesTab' style='width:inherit;'>\n" - "<table id='filesTable' cellSpacing=0 style='width:inherit; font-size:.9em;'>\n"); -cols = 8; - -//// Track Name contains -//hPrintf("<tr><td colspan=3></td>"); -//hPrintf("<td nowrap><b style='max-width:100px;'>Track Name:</b></td>"); -//hPrintf("<td align='right'>contains</td>\n"); -//hPrintf("<td colspan='%d'>", cols - 4); -//hPrintf("<input type='text' name='%s' id='nameSearch' class='submitOnEnter' value='%s' onkeyup='findTracksSearchButtonsEnable(true);' style='min-width:326px; font-size:.9em;'>", -// TRACK_SEARCH_ON_NAME, nameSearch == NULL ? "" : nameSearch); -//hPrintf("</td></tr>\n"); -// -//// Description contains -//hPrintf("<tr><td colspan=2></td><td align='right'>and </td>"); -//hPrintf("<td><b style='max-width:100px;'>Description:</b></td>"); -//hPrintf("<td align='right'>contains</td>\n"); -//hPrintf("<td colspan='%d'>", cols - 4); -//hPrintf("<input type='text' name='%s' id='descSearch' value='%s' class='submitOnEnter' onkeyup='findTracksSearchButtonsEnable(true);' style='max-width:536px; width:536px; font-size:.9em;'>", -// TRACK_SEARCH_ON_DESCR, descSearch == NULL ? "" : descSearch); -//hPrintf("</td></tr>\n"); -//if (selectedTab==fileTab && descSearch) -// searchTermsExist = TRUE; -// -//hPrintf("<tr><td colspan=2></td><td align='right'>and </td>\n"); -//hPrintf("<td><b style='max-width:100px;'>Group:</b></td>"); -//hPrintf("<td align='right'>is</td>\n"); -//hPrintf("<td colspan='%d'>", cols - 4); -//cgiMakeDropListFull(TRACK_SEARCH_ON_GROUP, labels, groups, numGroups, groupSearch, "class='groupSearch' style='min-width:40%; font-size:.9em;'"); -//hPrintf("</td></tr>\n"); -//if (selectedTab==fileTab && groupSearch) -// searchTermsExist = TRUE; - -// Track Type is (drop down) -hPrintf("<tr><td colspan=2></td><td align='right'> </td>\n"); -//hPrintf("<tr><td colspan=2></td><td align='right'>and </td>\n"); // Bring back "and" if using "Track Name,Description or Group -hPrintf("<td nowrap><b style='max-width:100px;'>Data Format:</b></td>"); -hPrintf("<td align='right'>is</td>\n"); -hPrintf("<td colspan='%d'>", cols - 4); -char *dropDownHtml = fileFormatSelectHtml(FILE_SEARCH_ON_FILETYPE,fileTypeSearch,"style='min-width:40%; font-size:.9em;'"); -if (dropDownHtml) - { - puts(dropDownHtml); - freeMem(dropDownHtml); - } -hPrintf("</td></tr>\n"); -if (selectedTab==filesTab && fileTypeSearch) - searchTermsExist = TRUE; - -// mdb selects -if(metaDbExists) - { - struct slPair *mdbVars = mdbVarsSearchable(conn,TRUE,FALSE); // Tables but not file only objects - mdbSelects = mdbSelectPairs(cart,selectedTab, mdbVars); - char *output = mdbSelectsHtmlRows(conn,mdbSelects,mdbVars,colsFALSE); // not a fileSearch - if (output) - { - puts(output); - freeMem(output); - } - slPairFreeList(&mdbVars); - } - -hPrintf("</table>\n"); -hPrintf("<input type='submit' name='%s' id='searchSubmit' value='search' style='font-size:.8em;'>\n", TRACK_SEARCH); -hPrintf("<input type='button' name='clear' value='clear' class='clear' style='font-size:.8em;' onclick='findTracksClear();'>\n"); -hPrintf("<input type='submit' name='submit' value='cancel' class='cancel' style='font-size:.8em;'>\n"); -//hPrintf("<a target='_blank' href='../goldenPath/help/trackSearch.html'>help</a>\n"); -hPrintf("</div>\n"); - -#endif///def FILES_SEARCH hPrintf("</div>\n"); hPrintf("</form>\n"); hPrintf("</div>"); // Restricts to max-width:1000px; if (measureTiming) uglyTime("Rendered tabs"); if(descSearch != NULL && !strlen(descSearch)) descSearch = NULL; if(groupSearch != NULL && sameString(groupSearch, ANYLABEL)) groupSearch = NULL; if(typeSearch != NULL && sameString(typeSearch, ANYLABEL)) typeSearch = NULL; @@ -883,34 +792,30 @@ for(i = 0, el = descList; el != NULL; i++, el = el->next) descWords[i] = strLower(el->name); } if (doSearch && selectedTab==simpleTab && descWordCount <= 0) doSearch = FALSE; if(doSearch) { // Now search struct slRef *tracks = NULL; if(selectedTab==simpleTab) tracks = simpleSearchForTracksstruct(trix,descWords,descWordCount); else if(selectedTab==advancedTab) tracks = advancedSearchForTracks(conn,groupList,descWords,descWordCount,nameSearch,typeSearch,descSearch,groupSearch,mdbSelects); -#ifdef FILES_SEARCH - else if(selectedTab==filesTab && mdbSelects != NULL) - fileSearchResults(database, conn, mdbSelects, fileTypeSearch); -#endif///def FILES_SEARCH if (measureTiming) uglyTime("Searched for tracks"); // Sort and Print results if(selectedTab!=filesTab) { enum sortBy sortBy = cartUsualInt(cart,TRACK_SEARCH_SORT,sbRelevance); tracksFound = slCount(tracks); if(tracksFound > 1) findTracksSort(&tracks,sortBy); displayFoundTracks(cart,tracks,tracksFound,sortBy); if (measureTiming)