4db401fb2e91accfcf9ffcd3478b2f3d7881eb90
max
Wed Jul 27 06:50:50 2022 -0700
fixing plus buttons and yet another bug with the copy button, refs #29583
diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c
index be9d0fe..8bf62c5 100644
--- src/hg/hgHubConnect/hgHubConnect.c
+++ src/hg/hgHubConnect/hgHubConnect.c
@@ -112,109 +112,96 @@
{
int len = strlen(string);
if ( string[len - 1] == ',')
string[len - 1] = 0;
else if (len > 2 && endsWith(string,", "))
string[len - 2] = 0;
}
return string;
}
#define GENLISTWIDTH 40
static void printGenomeList(char *hubUrl, struct slName *genomes, int row, boolean withLink, boolean withPaste)
/* print supported assembly names from sl list */
{
-struct dyString *dyHtml = dyStringNew(1024);
+struct dyString *dyLongHtml = dyStringNew(1024);
struct dyString *dyShortHtml = dyStringNew(1024);
+char *linkHtml = "";
+
// create two strings: one shortened to GENLISTWIDTH characters
// and another one with all genomes
int charCount = 0;
struct slName *genome = genomes;
for(; genome; genome = genome->next)
{
char *trimmedName = trackHubSkipHubName(genome->name);
char *shortName = cloneString(trimmedName);
// If even the first element is too long, truncate its short name.
if (genome==genomes && strlen(trimmedName) > GENLISTWIDTH)
shortName[GENLISTWIDTH] = 0;
// append to dyShortHtml if necessary
if (charCount == 0 || (charCount+strlen(trimmedName)<=GENLISTWIDTH))
{
if (withLink)
{
dyStringPrintf(dyShortHtml,"%s" , genome->name, hubUrl, genome->name, shortName);
// https://hgdownload-test.gi.ucsc.edu/hubs/GCA/009/914/755/GCA_009914755.4/hub.txt
if (withPaste)
- {
- dyStringPrintf(dyShortHtml,"" , hubUrl);
- dyStringAppend(dyShortHtml, "");
- }
+ dyStringPrintf(dyShortHtml, linkHtml, hubUrl);
}
else
dyStringPrintf(dyShortHtml,"%s" , shortName);
dyStringPrintf(dyShortHtml,", ");
}
freeMem(shortName);
charCount += strlen(trimmedName);
- // always append to dyHtml
+ // always append to dyLongHtml
if (withLink)
- dyStringPrintf(dyHtml,"%s" , genome->name, hubUrl, genome->name, trimmedName);
+ {
+ dyStringPrintf(dyLongHtml,"%s" , genome->name, hubUrl, genome->name, trimmedName);
+ if (withPaste)
+ dyStringPrintf(dyLongHtml, linkHtml, hubUrl);
+ }
else
- dyStringPrintf(dyHtml,"%s" , trimmedName);
+ dyStringPrintf(dyLongHtml,"%s" , trimmedName);
if (genome->next)
{
- dyStringPrintf(dyHtml,", ");
+ dyStringPrintf(dyLongHtml,", ");
}
}
-char *longHtml = dyStringCannibalize(&dyHtml);
+char *longHtml = dyStringCannibalize(&dyLongHtml);
char *shortHtml = dyStringCannibalize(&dyShortHtml);
shortHtml = removeLastComma(shortHtml);
if (charCount < GENLISTWIDTH)
ourPrintCell(shortHtml);
else
{
- char id[256];
char tempHtml[1024+strlen(longHtml)+strlen(shortHtml)];
safef(tempHtml, sizeof tempHtml,
- "[+] %s..."
- "[-]
%s"
- , row, row, shortHtml
- , row, row, longHtml);
-
- safef(id, sizeof id, "Short%dPlus", row);
- jsOnEventByIdF("click", id,
- "document.getElementById('Short%d').style.display='none';"
- "document.getElementById('Full%d').style.display='inline';"
- "return false;"
- , row, row);
-
- safef(id, sizeof id, "Full%dMinus", row);
- jsOnEventByIdF("click", id,
- "document.getElementById('Full%d').style.display='none';"
- "document.getElementById('Short%d').style.display='inline';"
- "return false;"
- , row, row);
+ "[+] %s..."
+ "[-]
%s",
+ shortHtml, longHtml);
ourPrintCell(tempHtml);
}
freeMem(longHtml);
freeMem(shortHtml);
}
static void printGenomes(struct trackHub *thub, int row, boolean withLink)
/* print supported assembly names from trackHub */
{
/* List of associated genomes. */
struct trackHubGenome *genomes = thub->genomeList;
struct slName *list = NULL, *el;
for(; genomes; genomes = genomes->next)