70e9200a58ef4db6378dae703296d29188ae26b1
tdreszer
Fri Dec 17 14:58:43 2010 -0800
Make use of fileUi.h macros and support hgFileUi CGI
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 2b90d6a..948e1f1 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -13,30 +13,31 @@
#include "hCommon.h"
#include "hgConfig.h"
#include "chainCart.h"
#include "chainDb.h"
#include "netCart.h"
#include "obscure.h"
#include "wiggle.h"
#include "phyloTree.h"
#include "hgMaf.h"
#include "udc.h"
#include "customTrack.h"
#include "encode/encodePeak.h"
#include "mdb.h"
#include "web.h"
#include "hPrint.h"
+#include "fileUi.h"
static char const rcsid[] = "$Id: hui.c,v 1.297 2010/06/02 19:27:51 tdreszer Exp $";
#define SMALLBUF 128
#define MAX_SUBGROUP 9
#define ADD_BUTTON_LABEL "add"
#define CLEAR_BUTTON_LABEL "clear"
#define JBUFSIZE 2048
//#define PM_BUTTON "\n"
//#define DEF_BUTTON "
\n"
//#define DEFAULT_BUTTON(nameOrId,anc,beg,contains) printf(DEF_BUTTON,(anc),(anc),(nameOrId), (beg),(contains),(nameOrId),(beg),(contains),(anc),"defaults_sm.png","default")
//#define PLUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (anc),(anc),(nameOrId),"true", (beg),(contains),(anc),"add_sm.gif", "+")
//#define MINUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (anc),(anc),(nameOrId),"false",(beg),(contains),(anc),"remove_sm.gif","-")
#define PM_BUTTON "
\n"
@@ -55,39 +56,46 @@
* where the downloads are. */
{
if (!sameWord(tdb->type,"downloadsOnly") && !sameString(tdb->table, tdb->track))
{
tdb = hashFindVal(trackHash, tdb->table);
if (tdb == NULL)
errAbort("Can't find track for table %s in wgEncodeDownloadDirKeeper", tdb->table);
}
return trackDbTopLevelSelfOrParent(tdb);
}
static char *htmlStringForDownloadsLink(char *database, struct trackDb *tdb,char *name,boolean nameIsFile,
struct hash *trackHash)
// Returns an HTML string for a downloads link
{
-// Downloads directory if this is ENCODE
-if(trackDbSetting(tdb, "wgEncode") != NULL)
+// If has fileSortOrder, then link to new hgFileUi
+if (trackDbSetting(tdb, FILE_SORT_ORDER) != NULL)
+ {
+ char * link = needMem(PATH_LEN); // 512 should be enough
+ safef(link,PATH_LEN,"%s", // NOTE: TARGET=ucscDownloads ??
+ hgFileUiName(), /*cartSessionVarName(), cartSessionId(cart),*/ tdb->track, name); // Note the hgsid would be needed if downloads page ever saved fileSortOrder to cart.
+ return link;
+ }
+else if(trackDbSetting(tdb, "wgEncode") != NULL) // Downloads directory if this is ENCODE
{
struct trackDb *dirKeeper = wgEncodeDownloadDirKeeper(database, tdb, trackHash);
char *actualName = (sameWord(dirKeeper->type,"downloadsOnly")?dirKeeper->track:tdb->table);
- struct dyString *dyLink = dyStringCreate("%s",
+ struct dyString *dyLink = dyStringCreate("%s",
hDownloadsServer(),
trackDbSettingOrDefault(dirKeeper, "origAssembly",database),
- ENCODE_DCC_DOWNLOADS, actualName, (nameIsFile?name:""), name);
+ ENCODE_DCC_DOWNLOADS, actualName, (nameIsFile?name:""), nameIsFile?"file":"files",name);
return dyStringCannibalize(&dyLink);
}
return NULL;
}
static boolean makeNamedDownloadsLink(char *database, struct trackDb *tdb,char *name,
struct hash *trackHash)
// Make a downloads link (if appropriate and then returns TRUE)
{
char *htmlString = htmlStringForDownloadsLink(database,tdb,name,FALSE,trackHash);
if (htmlString == NULL)
return FALSE;
printf("%s", htmlString);
freeMem(htmlString);
@@ -4162,41 +4170,40 @@
printf(" ");
// Do we have a restricted until date?
char *dateDisplay = encodeRestrictionDateDisplay(db,subtrack);
if (dateDisplay)
printf("\n
"); // Tying subtracks with matrix and subtrack cfgs with views requires javascript help puts(""); #ifndef SUBTRACK_CFG_POPUP if (dependentCfgsNeedBinding) cfgLinkToDependentCfgs(cart,parentTdb,parentTdb->track); #endif//ndef SUBTRACK_CFG_POPUP