4c389c37d5a42eafb281c81ca6d12271a58f1499
jcasper
Thu Jun 22 13:18:03 2017 -0700
hgHubConnect now expands on single click, show results in correct order,
and has more intuitive logic for the search/filter text boxes, refs #13625
diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c
index 6a7c49c..4a1fabe 100644
--- src/hg/hgHubConnect/hgHubConnect.c
+++ src/hg/hgHubConnect/hgHubConnect.c
@@ -398,74 +398,84 @@
}
else
{
// no db in the hubSearchText means this is a top-level hub hit.
// filter by the db list associated with the hub instead
struct hubEntry *hubInfo = hashFindVal(hubLookup, hubUrl);
char *dbList = cloneString(hubInfo->dbList);
tolowers(dbList);
if (stringIn(dbFilter, dbList) == NULL)
continue;
}
}
// Add hst to the list to be returned
slAddHead(&hubSearchResultsList, hst);
}
+slReverse(&hubSearchResultsList);
return hubSearchResultsList;
}
-void printSearchBox(char *hubSearchTerms, char *dbFilter)
+void printSearchAndFilterBoxes(int searchEnabled, char *hubSearchTerms, char *dbFilter)
/* Create the text boxes for search and database filtering along with the required
* javscript */
{
+char event[4096];
+if (searchEnabled)
+ {
+ safef(event, sizeof(event),
+ "document.searchHubForm.elements['hubSearchTerms'].value=$('#hubSearchTerms').val();"
+ "document.searchHubForm.elements['hubDbFilter'].value=$('#hubDbFilter').val();"
+ "document.searchHubForm.submit();return true;");
printf("Enter search terms to find in public track hub description pages:
"
" \n"
- "\n",
+ "type=\"text\" size=\"65\" value=\"%s\"> \n",
hubSearchTerms!=NULL?hubSearchTerms:"");
-jsOnEventById("click", "hubSearchButton",
- "document.searchHubForm.elements['hubSearchTerms'].value=$('#hubSearchTerms').val();"
- "document.searchHubForm.submit();return true;");
printf("
\n");
+ }
+else
+ {
+ safef(event, sizeof(event),
+ "document.searchHubForm.elements['hubDbFilter'].value=$('#hubDbFilter').val();"
+ "document.searchHubForm.submit();return true;");
+ }
+
printf("Filter hubs by assembly: "
" \n"
- "\n",
+ "\n",
hgHubDbFilter, dbFilter!=NULL?dbFilter:"");
-jsOnEventById("click", "dbFilterButton",
- "document.dbFilterHubForm.elements['hubDbFilter'].value=$('#hubDbFilter').val();"
- "document.dbFilterHubForm.submit();return true;");
-puts("
\n");
+jsOnEventById("click", "hubSearchButton", event);
+puts("
\n");
}
void printSearchTerms(char *hubSearchTerms)
/* Write out a reminder about the current search terms and a note about
* how to navigate detailed search results */
{
printf("Displayed list restricted by search terms: %s\n", hubSearchTerms);
puts("\n");
jsOnEventById("click", "hubDeleteSearchButton",
"document.searchHubForm.elements['hubSearchTerms'].value='';"
+ "document.searchHubForm.elements['hubDbFilter'].value='';"
"document.searchHubForm.submit();return true;");
puts("
\n");
printf("When exploring the detailed search results for a hub, you may right-click "
- "on an assembly or track line to open it in a new window\n");
+ "on an assembly or track line to open it in a new window.\n");
puts("
\n");
}
void printHubListHeader()
/* Write out the header for a list of hubs in its own table */
{
puts("Clicking Connect redirects to the gateway page of the selected hub's default assembly.
");
printf("
Display | " "Hub Name | " "Description | " "Assemblies | " "
---|