ff9f567866c9c0e9e429e010fcdde9b6af5ea92e kate Mon Oct 14 10:07:49 2019 -0700 Add collapsible panel for details of individual interactions in a cluster. Requested by QA. refs #24037 diff --git src/hg/hgc/interactClick.c src/hg/hgc/interactClick.c index df3824b..dcd49b2 100644 --- src/hg/hgc/interactClick.c +++ src/hg/hgc/interactClick.c @@ -1,28 +1,29 @@ /* Details page for interact type tracks */ /* Copyright (C) 2018 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "obscure.h" #include "hdb.h" #include "jksql.h" #include "hgc.h" #include "customTrack.h" #include "trashDir.h" #include "hex.h" +#include "jsHelper.h" #include #include "interact.h" #include "interactUi.h" struct interactPlusRow { /* Keep field values in string format, for url processing */ struct interactPlusRow *next; struct interact *interact; char **row; }; static struct interactPlusRow *getInteractsFromTable(struct trackDb *tdb, char *chrom, int start, int end, char *name, char *foot) @@ -448,35 +449,46 @@ printf("%s interactions region:   " "%s:%s-%s ", item, chrom, start+1, end, chrom, startBuf, endBuf); printf("  %s bp
\n", sizeBuf); } else { // overlapping items, same start/end/name doInteractRegionDetails(tdb, inters); } multiRegionLink(tdb, item, inters); printf("

"); } //genericHeader(tdb, item); +if (clusterMode && count > 1) + { + puts(""); + jsBeginCollapsibleSectionFontSize(cart, tdb->track, "clusterInteractions", + "Show individual interactions in cluster", FALSE, "inherit"); + } static struct interactPlusRow *ipr = NULL; for (ipr = iprs; ipr != NULL; ipr = ipr->next) { if (count > 1) printf("
\n"); doInteractItemDetails(tdb, ipr, item, count > 1); if (foot || (clusterMode && count > 1)) { struct interact *inter = ipr->interact; // just one interact (we have these in list for handling clusters earlier) inter->next = NULL; doInteractRegionDetails(tdb, inter); multiRegionLink(tdb, inter->name, inter); } if (count > 1 && !isEmptyTextField(ipr->interact->name) && sameString(ipr->interact->name, item)) printf("
\n"); } +if (clusterMode && count > 1) + { + jsEndCollapsibleSection(); + puts("
"); + } }