c5a827f8f0c4094c20ff333acb191ded2bf86744
braney
Wed Dec 20 11:36:10 2017 -0800
ongoing work on hgCollection
diff --git src/hg/hgCollection/hgCollection.c src/hg/hgCollection/hgCollection.c
index e070d5c..bda1af9 100644
--- src/hg/hgCollection/hgCollection.c
+++ src/hg/hgCollection/hgCollection.c
@@ -386,30 +386,32 @@
puts("");
puts(
" \n"
" \n");
}
static void doMainPage(struct cart *cart, char *db, struct grp *groupList, struct trackDb *trackList)
/* Print out initial HTML of control page. */
{
webStartGbNoBanner(cart, db, "Collections");
webIncludeResourceFile("gb.css");
webIncludeResourceFile("spectrum.min.css");
webIncludeResourceFile("hgGtexTrackSettings.css");
+jsReloadOnBackButton(cart);
+
webIncludeFile("inc/hgCollection.html");
char *assembly = stringBetween("(", ")", hFreezeFromDb(db));
jsInlineF("$('#assembly').text('%s');\n",assembly);
printHelp();
doTable(cart, db, groupList, trackList);
puts("");
puts("");
puts("");
puts("");
puts("\n");
jsIncludeFile("utils.js", NULL);
jsIncludeFile("ajax.js", NULL);
jsIncludeFile("spectrum.min.js", NULL);
@@ -455,49 +457,50 @@
if (differentString(hel->name, "parent") && differentString(hel->name, "polished")&& differentString(hel->name, "shortLabel")&& differentString(hel->name, "longLabel")&& differentString(hel->name, "color")&& differentString(hel->name, "visibility")&& differentString(hel->name, "track")&& differentString(hel->name, "trackNames")&& differentString(hel->name, "superTrack")&& differentString(hel->name, "priority")&& differentString(hel->name, "group"))
fprintf(f, "%s%s %s\n", tabs,hel->name, (char *)hel->val);
}
if (bigDataUrl == NULL)
{
if (dataUrl != NULL)
fprintf(f, "%sbigDataUrl %s\n", tabs,dataUrl);
}
fprintf(f, "%sparent %s\n",tabs,parent);
fprintf(f, "%scolor %d,%d,%d\n", tabs,(color >> 16) & 0xff,(color >> 8) & 0xff,color & 0xff);
fprintf(f, "%svisibility %s\n",tabs,visibility);
fprintf(f, "%spriority %d\n",tabs,priority);
fprintf(f, "\n");
}
-static void outComposite(FILE *f, struct track *collection)
+static void outComposite(FILE *f, struct track *collection, int priority)
// output a composite header for user composite
{
char *parent = collection->name;
char *shortLabel = collection->shortLabel;
char *longLabel = collection->longLabel;
fprintf(f,"track %s\n\
shortLabel %s\n\
compositeTrack on\n\
autoScale on\n\
maxHeightPixels 100:30:11 \n\
aggregate none\n\
longLabel %s\n\
%s on\n\
color %ld,%ld,%ld \n\
viewFunc %s\n\
type mathWig\n\
+\tpriority %d\n\
visibility full\n\n", parent, shortLabel, longLabel, CUSTOM_COMPOSITE_SETTING,
- 0xff& (collection->color >> 16),0xff& (collection->color >> 8),0xff& (collection->color), collection->viewFunc);
+ 0xff& (collection->color >> 16),0xff& (collection->color >> 8),0xff& (collection->color), collection->viewFunc, priority);
}
static void modifyName(struct trackDb *tdb, char *hubName, struct hash *collectionNameHash)
/* If this is a new track in the collection we want to make sure
* it gets a different name than the track in trackDb.
* If it's a native track, we want to squirrel away the original track name. */
{
if ((tdb->grp == NULL) || (hubName == NULL) || differentString(tdb->grp, hubName))
{
if (collectionNameHash)
hashStore(collectionNameHash, tdb->track);
char *bigDataUrl = trackDbSetting(tdb, "bigDataUrl");
if (bigDataUrl == NULL)
@@ -540,38 +543,38 @@
static void updateHub(struct cart *cart, char *db, struct track *collectionList, struct hash *nameHash)
// save our state to the track hub
{
char *filename = getHubName(cart, db);
char *hubName = hubNameFromUrl(filename);
FILE *f = mustOpen(filename, "w");
chmod(filename, 0666);
struct hash *collectionNameHash = newHash(6);
outHubHeader(f, db);
struct track *collection;
struct sqlConnection *conn = hAllocConn(db);
+int priority = 1;
for(collection = collectionList; collection; collection = collection->next)
{
if (collection->trackList == NULL) // don't output composites without children
continue;
- outComposite(f, collection);
+ outComposite(f, collection, priority++);
struct trackDb *tdb;
struct track *track;
- int priority = 1;
for (track = collection->trackList; track; track = track->next)
{
if (track->viewFunc != NULL)
{
priority = outView(f, conn, db, track, collection->name, nameHash, collectionNameHash, priority, hubName);
}
else
{
tdb = hashMustFindVal(nameHash, track->name);
modifyName(tdb, hubName, collectionNameHash);
outTdb(conn, db, f, track->name,tdb, collection->name, track->visibility, track->color, track, nameHash, collectionNameHash, 1, priority++);
}
}
}