c777a406269f3c9a4a6144c53213e25402f10b89 chmalee Fri Jan 27 10:29:01 2023 -0800 faceted bar chart hgTrackUi pages are broken in the hgTracks hgTrackUi pop up. don't do the faceted selection part when we are in a pop up, refs #30102 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index 21d8472..82df621 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -440,30 +440,40 @@ /* Write out wrapper draws a SVG bar*/ { printf("<div style=\"background-color:%s\"> </span>", val); // printf("<TD><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR>"); } void barChartFacetedUi(char *database, struct cart *cart, struct trackDb *tdb, char *track, char *title, boolean boxed) /* Bar chart track type that has an associated facets tables */ { puts("<br>"); barChartUiLogTransform(cart, track, tdb); puts(" "); barChartUiViewLimits(cart, track, tdb); +if (isPopup) + { + char *categoryLabel = trackDbSettingClosestToHomeOrDefault(tdb, + BAR_CHART_CATEGORY_LABEL, BAR_CHART_CATEGORY_LABEL_DEFAULT); + printf("<div><b>%s:</b>\n", categoryLabel); + printf("<a href='%s?g=%s'><button type='button'>Change</button><a>", + hTrackUiForTrack(track), track); + } +else + { char *facets = trackDbSetting(tdb, "barChartFacets"); char *statsFile = hReplaceGbdb(trackDbRequiredSetting(tdb, "barChartStatsUrl")); /* Write html to make white background */ hInsideStyleToWhite(); /* Set up url that has enough context to get back to us. */ struct dyString *returnUrl = dyStringNew(0); dyStringPrintf(returnUrl, "../cgi-bin/hgTrackUi?g=%s", track); dyStringPrintf(returnUrl, "&%s", cartSidUrlString(cart)); /* Load up table from tsv file */ char *requiredStatsFields[] = {"count",}; struct fieldedTable *table = fieldedTableFromTabFile(statsFile, statsFile, requiredStatsFields, ArraySize(requiredStatsFields)); @@ -490,30 +500,31 @@ struct slName *facetNameList = slNameListFromComma(facets); struct slName *facetName; for (facetName = facetNameList; facetName != NULL; facetName = facetName->next) { if (fieldedTableFindFieldIx(selected, facetName->name)) dyStringPrintf(displayList, ",%s", facetName->name); } /* Put up facets and table */ facetedTableWriteHtml(facTab, cart, selected, selectedFf, displayList->string, returnUrl->string, 40, wrapperHash, NULL, 7); /* Clean up and go home. */ facetedTableFree(&facTab); } +} void barChartCfgUi(char *database, struct cart *cart, struct trackDb *tdb, char *track, char *title, boolean boxed) /* Put up facets in certain situations. */ { if (cartVarExists(cart, "ajax")) isPopup = TRUE; boxed = cfgBeginBoxAndTitle(tdb, boxed, title); if (startsWith("big", tdb->type)) labelCfgUi(database, cart, tdb, track); char *facets = trackDbSetting(tdb, "barChartFacets"); if (facets != NULL) barChartFacetedUi(database, cart, tdb, track, title, boxed); else barChartCfgUiSelectEachBar(database, cart, tdb, track, title, boxed);