15746316e92290a4aee220a757cb35293176d6e8
max
Tue Feb 7 05:29:10 2023 -0800
adding file download links directly to the table browser "schema / data format" button, refs #30491
diff --git src/hg/hgTables/hgTables.c src/hg/hgTables/hgTables.c
index cf08e35..c6b42a2 100644
--- src/hg/hgTables/hgTables.c
+++ src/hg/hgTables/hgTables.c
@@ -222,30 +222,67 @@
return curTrack->shortLabel;
else
return curTable;
}
char *getScriptName()
/* returns script name from environment or hardcoded for command line */
{
char *script = cgiScriptName();
if (script != NULL)
return script;
else
return hgTablesName();
}
+void printDownloadLink(char *typeLabel, char *fileName)
+/* print a link to the file, so the user can download it right here */
+{
+char *downPrefix = "";
+if (startsWith("/gbdb", fileName))
+ downPrefix = "https://hgdownload.soe.ucsc.edu";
+
+hPrintf("%s File Download: %s", typeLabel, downPrefix, fileName, fileName);
+}
+
+boolean printTypeHelpDesc(char *type)
+/* print a little link to our help docs given a track type. Return true if file type is a big* file format. */
+{
+boolean isBig = FALSE;
+
+if (startsWith("vcf", type))
+ {
+ hPrintf("See the Variant Call Format specification for more details
\n",
+ "http://www.1000genomes.org/wiki/analysis/vcf4.0");
+ }
+else if (startsWithWord("bigWig", type))
+ {
+ printf("
The data is stored in the binary "
+ ""
+ "BigWig format.\n");
+ isBig = TRUE;
+ }
+else if (startsWith("big", type))
+ {
+ printf("
The data is stored in the binary "
+ ""
+ "BigBed format.
\n");
+ isBig = TRUE;
+ }
+
+return isBig;
+}
void textOpen()
/* Start up page in text format. (No need to close this).
* In case of pipeline output to a compressor, it is closed
* at main() exit.
*/
{
// hgBotDelay function is now in earlyBotCheck() at the start of main(), and in
// this case, the issueBotWarning flag is ignored to avoid any output here
// hgBotDelayNoWarn(); // delay but suppress warning at 10-20 sec delay level because this is not html output.
char *fileName = textOutSanitizeHttpFileName(cartUsualString(cart, hgtaOutFileName, ""));
char *compressType = cartUsualString(cart, hgtaCompressType,
textOutCompressNone);