c98c3de9ee7469a28f93815b873a1693231791ec jcasper Tue Nov 4 21:55:36 2025 -0800 Fixing dependency on named central database/server in new UI, refs #36320 diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index 27f0c703f39..dcba862c95d 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2924,32 +2924,30 @@ * * bigCompositeName_dataElementName_dataTypeName_sel=1 * * And only sends unique dataElement and dataTypes, which might be * much smaller. The bigComposite assumes that selection of * dataTypes applies to all dataElements, but within the cart, these * are separate tracks, and each must be present to be drawn. But * the JS doesn't need the product {dataType} x {dataElement}, just * the union {datType} U {dataElement}. These are put in two arrays * in a JSON section of the HTML. */ const int token_size = 64; const int query_buff_size = 256; - const char db[] = "hgcentral"; - const char profile[] = "central"; // html elements for the controls page (from singleCellMerged) const char pageStyle[] = "<style>body.cgi { background: #F0F0F0; }" "table.hgInside { background: #FFFFFF; }</style>"; const char placeholderDiv[] = "<div id='metadata-placeholder'></div>\n"; const char openJSON[] = "<script id=\"app-data\" type=\"application/json\">{"; const char closeJSON[] = "}</script>\n"; const char openDataTypesJSON[] = "\"dataTypes\":{"; const char closeDataTypesJSON[] = "}"; // closing a dict const char openDataElementsJSON[] = "\"dataElements\":["; const char closeDataElementsJSON[] = "]"; // closing an array const char metadataTableScriptElement[] = "<script type='text/javascript' src='/js/bigComposite.js'></script>\n"; // const char metaDataUrlFmt[] = "\"metadata_url\": \"%s\""; @@ -2974,31 +2972,31 @@ tdb->track); // optional const char *colorSettingsUrl = (const char *)hashFindVal(tdb->settingsHash, "colorSettingsUrl"); const char *maxCheckboxes = (const char *)hashFindVal(tdb->settingsHash, "maxCheckboxes"); // --- done parsing values from trackDb.settings --- const char *metaDataId = tdb->track; char queryFmt[] = "SELECT contents FROM sessionDb WHERE id='%d' AND sessionKey='%s';"; char query[query_buff_size]; sqlSafef(query, query_buff_size, queryFmt, id, sessionKey); - struct sqlConnection *conn = hAllocConnProfile((char *)profile, (char *)db); + struct sqlConnection *conn = hConnectCentral(); const char *contents = sqlQuickString(conn, query); struct cgiParsedVars *varList = cgiParsedVarsNew((char *)contents); printf(pageStyle); // css printf(placeholderDiv); // placholder /* --- START embedded JSON data --- */ printf(openJSON); printf(openDataTypesJSON); // find selected data types int not_first = 0; int anySelDataType = -1; // non-neg val will be used as index and flag for (int i = 0; i < nDataTypes; ++i) { char toMatch[token_size]; snprintf(toMatch, token_size, "_%s_sel", dataTypes[i]); @@ -3036,31 +3034,31 @@ if (maxCheckboxes) // only if present in trackDb.settings entry printf(",\"maxCheckboxes\": \"%s\"", maxCheckboxes); if (colorSettingsUrl) // only if present in trackDb.settings entry printf(",\"colorSettingsUrl\": \"%s\"", colorSettingsUrl); printf(",\"metadataUrl\": \"%s\"", metaDataUrl); printf(closeJSON); /* --- END embedded JSON data --- */ printf(metadataTableScriptElement); // cleanup for (int i = 0; i < nDataTypes; ++i) free(dataTypes[i]); free(dataTypes); cgiParsedVarsFreeList(&varList); - hFreeConn(&conn); + hDisconnectCentral(&conn); } void specificUi(struct trackDb *tdb, struct trackDb *tdbList, struct customTrack *ct, boolean ajax) /* Draw track specific parts of UI. */ { char *track = tdb->track; char *db = database; char *liftDb = cloneString(trackDbSetting(tdb, "quickLiftDb")); if (liftDb != NULL) db = liftDb; // Ideally check cfgTypeFromTdb()/cfgByCfgType() first, but with all these special cases already in // place, lets be cautious at this time. // NOTE: Developer, please try to use cfgTypeFromTdb()/cfgByCfgType(). boolean boxed = trackDbSettingClosestToHomeOn(tdb, "boxedCfg");