4a417a4de2663cfb670879fd3fa2e6524eeda512 angie Wed Mar 9 09:55:52 2011 -0800 Feature/Bug #3148 (DGV description page refs): fixing bug found by b0b:the filter on PubMed references was set to "include" by default, but all checkboxes were empty by default. Fix: if the checkbox group variable is not defined in the cart, then set all checkboxes. diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index addf991..398170b 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -2269,44 +2269,49 @@ struct sqlResult *sr; char **row; char query[256]; safef(query, sizeof(query), "select reference,pubMedId from %s group by pubMedId order by reference;", tdb->table); sr = sqlGetResult(conn, query); printf("<BR><B>Filter by publication reference:</B>\n"); char cartVarName[256]; safef (cartVarName, sizeof(cartVarName), "hgt_%s_filterType", tdb->track); boolean isInclude = sameString("include", cartUsualString(cart, cartVarName, "include")); cgiMakeRadioButton(cartVarName, "include", isInclude); printf("include\n"); cgiMakeRadioButton(cartVarName, "exclude", !isInclude); printf("exclude<BR>\n"); safef (cartVarName, sizeof(cartVarName), "hgt_%s_filterPmId", tdb->track); -struct slName *checked = cartOptionalSlNameList(cart, cartVarName); +boolean filterPmIdInCart = cartListVarExists(cart, cartVarName); +struct slName *checked = NULL; +if (filterPmIdInCart) + checked = cartOptionalSlNameList(cart, cartVarName); #define MAX_DGV_REFS 128 char *labelArr[MAX_DGV_REFS], *valueArr[MAX_DGV_REFS]; int refCount = 0; while ((row = sqlNextRow(sr)) != NULL) { char *ref = row[0]; char *pmId = row[1]; char label[512]; safef(label, sizeof(label), "<A HREF=\"http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed" "&list_uids=%s&dopt=Abstract&tool=genome.ucsc.edu\" TARGET=_BLANK>%s</A>", pmId, ref); labelArr[refCount] = cloneString(label); valueArr[refCount++] = cloneString(pmId); + if (! filterPmIdInCart) + slNameAddHead(&checked, pmId); if (refCount >= MAX_DGV_REFS) errAbort("dgvUi: %s has too many references (max %d)", tdb->track, MAX_DGV_REFS); } sqlFreeResult(&sr); jsMakeCheckboxGroupSetClearButton(cartVarName, TRUE); jsMakeCheckboxGroupSetClearButton(cartVarName, FALSE); cgiMakeCheckboxGroupWithVals(cartVarName, labelArr, valueArr, refCount, checked, 4); hFreeConn(&conn); } void superTrackUi(struct trackDb *superTdb) /* List tracks in this collection, with visibility controls and UI links */ { struct trackDb *tdb; printf("<P><TABLE CELLPADDING=2>");