29cda3bb2fb4fa07a300e12de17ba83377706a65 tdreszer Fri Jul 29 17:54:52 2011 -0700 More incremental changes before i most switch back to the master brqanch diff --git src/hg/lib/hui.c src/hg/lib/hui.c index a67a151..0e357c9 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -4056,40 +4056,54 @@ 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 = tdbVisLimitedByAncestry(cart, subtrack, TRUE); + 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")); - // hTvDropDownClassVisOnlyAndExtra(subtrack->track,vis,TRUE,"normalText subVisDD", NULL,buffer); + // 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 // { - #define SUBTRACK_CFG_VIS "<div id= '%s_faux' class='clickable fauxInput%s subVisDD' style='width:65px;' onclick='return scm.replaceWithVis(this,\"%s\",true);'>%s</div>\n" - printf(SUBTRACK_CFG_VIS,subtrack->track,(visibleCB ? "":" disabled"),subtrack->track,hStringFromTv(vis)); + 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 "<div id= '%s_faux' class='%s' style='width:65px;' onclick='return scm.replaceWithVis(this,\"%s\",true);'>%s</div>\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; @@ -7123,31 +7137,31 @@ enum trackVisibility tdbVisLimitedByAncestors(struct cart *cart, struct trackDb *tdb, boolean checkBoxToo, boolean foldersToo) // returns visibility limited by ancestry. This includes subtrack vis override and parents limit maximum. // cart may be null, in which case, only trackDb settings (default state) are examined // checkBoxToo means ensure subtrack checkbox state is visible // foldersToo means limit by folders (aka superTracks) as well. { boolean subtrackOverride = FALSE; enum trackVisibility vis = tdbLocalVisibility(cart,tdb,&subtrackOverride); if (subtrackOverride) return vis; // subtracks without explicit (cart) vis but are selected, should get inherited vis if (tdbIsContainerChild(tdb)) { - if (checkBoxToo && fourStateVisible(subtrackFourStateChecked(tdb,cart))) + if (!checkBoxToo || fourStateVisible(subtrackFourStateChecked(tdb,cart))) vis = tvFull; // to be limited by ancestry } if (vis == tvHide || tdb->parent == NULL || (!foldersToo && tdbIsFolder(tdb->parent))) // aka superTrack return vis; // end of line return tvMin(vis,tdbVisLimitedByAncestors(cart,tdb->parent,checkBoxToo,foldersToo)); } char *compositeViewControlNameFromTdb(struct trackDb *tdb) /* Returns a string with the composite view control name if one exists */ { char *stView = NULL; char *name = NULL; char *rootName = NULL;