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("    ", @@ -6960,33 +6901,35 @@ boolean isMatrix = dimensionsExist(tdb); boolean viewsOnly = FALSE; if (primarySubtrack == NULL && !cartVarExists(cart, "ajax")) { if(trackDbSetting(tdb, "dragAndDrop") != NULL) jsIncludeFile("jquery.tablednd.js", NULL); jsIncludeFile("ajax.js",NULL); #ifdef TABLE_SCROLL jsIncludeFile("jquery.fixedtable.js",NULL); #endif//def TABLE_SCROLL jsIncludeFile("hui.js",NULL); } #ifdef SUBTRACK_CFG -cgiMakeHiddenVar("db", db); // TODO: Change these to json vars as per Larry's new method -printf("\n",tdb->track); -#endif + jsonHashAddBoolean(NULL, "subCfg", TRUE); +#else///ifndef SUBTRACK_CFG + jsonHashAddBoolean(NULL, "subCfg", FALSE); +#endif///ndef SUBTRACK_CFG + cgiDown(0.7); if (trackDbCountDescendantLeaves(tdb) < MANY_SUBTRACKS && !hasSubgroups) { if(primarySubtrack) compositeUiSubtracksMatchingPrimary(db, cart, tdb,primarySubtrack); else compositeUiSubtracks(db, cart, tdb, trackHash); return; } if (fakeSubmit) cgiMakeHiddenVar(fakeSubmit, "submit"); if(primarySubtrack == NULL) { if(subgroupingExists(tdb,"view"))