bcec70fe84ce99461679dcd3dfad352d6874bd36 larrym Wed Feb 8 16:27:54 2012 -0800 revert previous commit; it turns out when need trackDb for first page in order to populate the group list (see #6931) diff --git src/hg/hgTracks/searchTracks.c src/hg/hgTracks/searchTracks.c index ed3b3ab..768a99f 100644 --- src/hg/hgTracks/searchTracks.c +++ src/hg/hgTracks/searchTracks.c @@ -557,43 +557,64 @@ jsIncludeFile("ui.dropdownchecklist.js",NULL); // This line is needed to get the multi-selects initialized jsIncludeFile("ddcl.js",NULL); 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 = cartUsualString( cart, TRACK_SEARCH_ON_TYPE,ANYLABEL); char *simpleEntry = cartOptionalString(cart, TRACK_SEARCH_SIMPLE); char *descSearch = cartOptionalString(cart, TRACK_SEARCH_ON_DESCR); char *groupSearch = cartUsualString( cart, TRACK_SEARCH_ON_GROUP,ANYLABEL); -boolean doSearch = sameWord(cartString(cart, TRACK_SEARCH), "Search") || cartUsualInt(cart, TRACK_SEARCH_PAGER, -1) >= 0; +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; boolean searchTermsExist = FALSE; int cols; char buf[512]; char *currentTab = cartUsualString(cart, TRACK_SEARCH_CURRENT_TAB, "simpleTab"); enum searchTab selectedTab = (sameString(currentTab, "advancedTab") ? advancedTab : simpleTab); if(selectedTab == simpleTab && !isEmpty(simpleEntry)) // NOTE: could support quotes in simple tab by detecting quotes and choosing to use doesNameMatch() || doesDescriptionMatch() stripChar(simpleEntry, '"'); +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 + +slSort(&groupList, gCmpGroup); +for (group = groupList; group != NULL; group = group->next) + { + groupTrackListAddSuper(cart, group); + if (group->trackList != NULL) + { + groups[numGroups] = cloneString(group->name); + labels[numGroups] = cloneString(group->label); + numGroups++; + if (numGroups >= ArraySize(groups)) + internalErr(); + } + } + safef(buf, sizeof(buf),"Search for Tracks in the %s %s Assembly", organism, hFreezeFromDb(database)); webStartWrapperDetailedNoArgs(cart, database, "", buf, FALSE, FALSE, FALSE, FALSE); hPrintf("<div style='max-width:1080px;'>"); hPrintf("<form action='%s' name='%s' id='%s' method='get'>\n\n", hgTracksName(),TRACK_SEARCH_FORM,TRACK_SEARCH_FORM); 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); @@ -688,51 +709,30 @@ hPrintf("</div>\n"); hPrintf("</div>\n"); hPrintf("</form>\n"); hPrintf("</div>"); // Restricts to max-width:1000px; cgiDown(0.8); if (measureTiming) measureTime("Rendered tabs"); if(doSearch) { // Now search struct slRef *tracks = NULL; - 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 - - slSort(&groupList, gCmpGroup); - for (group = groupList; group != NULL; group = group->next) - { - groupTrackListAddSuper(cart, group); - if (group->trackList != NULL) - { - groups[numGroups] = cloneString(group->name); - labels[numGroups] = cloneString(group->label); - numGroups++; - if (numGroups >= ArraySize(groups)) - internalErr(); - } - } - if(selectedTab==simpleTab && !isEmpty(simpleEntry)) tracks = simpleSearchForTracksstruct(simpleEntry); else if(selectedTab==advancedTab) tracks = advancedSearchForTracks(conn,groupList,nameSearch,typeSearch,descSearch,groupSearch,mdbSelects); if (measureTiming) measureTime("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);