1a89c8e587e4cdbdb94430448caaa19247871cb8
tdreszer
Thu Sep 22 13:01:11 2011 -0700
Big load of changes for subCfg.
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 255cdd6..fdde31f 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -3990,30 +3990,31 @@
// The subtracks need to be sorted by priority but only sortable and dragable will have non-default (cart) priorities to sort on
if (sortOrder != NULL || useDragAndDrop)
{
preSorted = tdbRefSortPrioritiesFromCart(cart, &subtrackRefList); // preserves user's prev sort/drags
printf("
\n",(sortOrder != NULL ? "sortable " : "") );
}
else
{
slSort(&subtrackRefList, trackDbRefCmp); // straight from trackDb.ra
preSorted = TRUE;
puts("");
}
// Finally the big "for loop" to list each subtrack as a table row.
+printf("\n\n");
for (subtrackRef = subtrackRefList; subtrackRef != NULL; subtrackRef = subtrackRef->next)
{
subtrack = subtrackRef->val;
int ix;
// Determine whether subtrack is checked, visible, configurable, has group membership, etc.
int fourState = subtrackFourStateChecked(subtrack,cart);
boolean checkedCB = fourStateChecked(fourState);
boolean enabledCB = fourStateEnabled(fourState);
boolean visibleCB = fourStateVisible(fourState);
eCfgType cType = cfgTypeFromTdb(subtrack,FALSE);
if (cType != cfgNone)
{
#ifdef SUBTRACK_CFG
// Turn off configuring for certain track type or if explicitly turned off
@@ -4051,105 +4052,45 @@
for(di=dimX;didimMax;di++)
{
if (membersForAll->members[di] && -1 != (ix = stringArrayIx(membersForAll->members[di]->groupTag, membership->subgroups, membership->count)))
dyStringPrintf(dyHtml," %s",membership->membership[ix]);
}
if (membersForAll->members[dimV] && -1 != (ix = stringArrayIx(membersForAll->members[dimV]->groupTag, membership->subgroups, membership->count)))
dyStringPrintf(dyHtml, " %s",membership->membership[ix]); // Saved view for last
// And finally the checkBox is made!
safef(buffer, sizeof(buffer), "%s_sel", subtrack->track);
cgiMakeCheckBoxFourWay(buffer,checkedCB,enabledCB,id,dyStringContents(dyHtml),"onclick='matSubCbClick(this);' style='cursor:pointer'");
if (useDragAndDrop)
printf(" ");
#ifdef SUBTRACK_CFG
-#define SUBTRACK_CFG_VIS_SEEN
-#ifdef SUBTRACK_CFG_VIS_SEEN
enum trackVisibility vis = tdbVisLimitedByAncestors(cart,subtrack,FALSE,FALSE);
char *view = NULL;
if (membersForAll->members[dimV] && -1 != (ix = stringArrayIx(membersForAll->members[dimV]->groupTag, membership->subgroups, membership->count)))
view = membership->membership[ix];
- //enum trackVisibility vis = tdbVisLimitedByAncestry(cart, subtrack, TRUE);
- //if (fourStateVisible(fourState))
- // {
- // safef(buffer, sizeof(buffer), " onclick='return scm.cfgToggle(\"%s\");'%s",subtrack->track,(fourStateVisible(fourState) ?"":" disabled"));
- // char classList[256];
- // if (view != NULL)
- // safef(classList,sizeof(classList),"normalText subVisDD %s",view);
- // else
- // safecpy(classList,sizeof(classList),"normalText subVisDD");
- // hTvDropDownClassVisOnlyAndExtra(subtrack->track,vis,TRUE,classList, NULL,buffer);
- // }
- //else
- // {
char classList[256];
if (view != NULL)
safef(classList,sizeof(classList),"clickable fauxInput%s subVisDD %s",(visibleCB ? "":" disabled"),view); // view should be last!
else
safef(classList,sizeof(classList),"clickable fauxInput%s subVisDD",(visibleCB ? "":" disabled"));
#define SUBTRACK_CFG_VIS "
%s
\n"
printf(SUBTRACK_CFG_VIS,subtrack->track,classList,subtrack->track,hStringFromTv(vis));
- // }
-#endif///def SUBTRACK_CFG_VIS_SEEN
if (cType != cfgNone) // make a wrench
{
- //#define SUBTRACK_CFG_STARRED
- #ifdef SUBTRACK_CFG_STARRED
- //lmCleanup(&lm);
- //struct lm *lm = lmInit(0); // FIXME: If used, move lmInit to outside of subtrack loop.
- //struct slPair *changeViewSettings = cartVarsWithPrefixLm(cart, subtrack->track, lm);
- struct slPair *subSpecificSettings = cartVarsWithPrefix(cart, subtrack->track);
- buffer[0] = '\0';
- if (subSpecificSettings)
- {
- // Not interested in some:
- struct slPair *subSpecificFiltered = NULL;
- struct slPair *onePair;
- while(subSpecificSettings)
- {
- onePair = slPopHead(&subSpecificSettings);
- if (!endsWith(onePair->name,"_sel")
- && !endsWith(onePair->name,".priority")
- && !endsWith(onePair->name,"_imgOrd"))
- slAddHead(&subSpecificFiltered,onePair);
- //else
- // slPairFreeValsAndList(&onePair)
- }
- subSpecificSettings = subSpecificFiltered;
- if (subSpecificSettings)
- safef(buffer, sizeof(buffer), " (has differences)");
- // DEBUGGING are there other differences to be filtered
- //safef(buffer, sizeof(buffer), " (has %d differences", slCount(subSpecificSettings));
- //safef(buffer, sizeof(buffer), "*", slCount(subSpecificSettings));
- //printf("*%d\n",subtrack->track,slCount(subSpecificSettings));
- //{
- //printf("*%d",subtrack->track,slCount(subSpecificSettings));
- //onePair = subSpecificSettings;
- //for(;onePair != NULL;onePair = onePair->next)
- // printf(", %s=%s",onePair->name,(char *)onePair->val);
- //printf("\n");
- //}
- }
- #define SUBTRACK_CFG_WRENCH "%s\n"
- printf(SUBTRACK_CFG_WRENCH,subtrack->track,buffer,(subSpecificSettings?"*":""));
- // TODO: js support for adding/removing star. Problem: how many differences will there be?
- #else///ifndef SUBTRACK_CFG_STARRED
- //#define SUBTRACK_CFG_WRENCH "\n"
#define SUBTRACK_CFG_WRENCH "\n"
printf(SUBTRACK_CFG_WRENCH,(visibleCB ? "":" halfVis"),subtrack->track);
- #endif///ndef SUBTRACK_CFG_STARRED
}
#endif///def SUBTRACK_CFG
// A hidden field to keep track of subtrack order if it could change
if (sortOrder != NULL || useDragAndDrop)
{
safef(buffer, sizeof(buffer), "%s.priority", subtrack->track);
float priority = (float)cartUsualDouble(cart, buffer, subtrack->priority);
printf("", buffer, priority); // keeing track of priority
}
// A color patch which helps distinguish subtracks in some types of composites
if (doColorPatch)
{
printf("