a2dbf4340f99161cce599508bb219b7fcacab764
braney
  Mon Nov 27 14:52:41 2017 -0800
make sure button id's are all unique in compositieUi without composites.  #20581

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 375c162..fb543bb 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -7983,31 +7983,31 @@
     subGroup = cloneString(words[0]);
     if (sameWord(subGroup,"view"))
         continue;  // Multi-view should have taken care of "view" subgroup already
     puts("<TABLE>");
     printf("<TR><TD><B><EM>&nbsp; &nbsp; %s</EM></B></TD></TR>", words[1]);
     for (j = 2; j < wordCnt; j++)
         {
         if (!parseAssignment(words[j], &name, &value))
             continue;
         printf("<TR><TD>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; %s</TD><TD>",
                value);
         safef(buttonVar, sizeof buttonVar, "%s_%s", subGroup, name);
         if (formName)
             {
 	    char id[256];
-	    safef(id, sizeof id, "cpmUiNoMtx_but_%d", i);
+	    safef(id, sizeof id, "cpmUiNoMtx_but_%d_%d", i, j);
             makeAddClearButtonPair(id, name,"</TD><TD>");
             }
         else
             {
             cgiMakeButton(buttonVar, ADD_BUTTON_LABEL);
             puts("</TD><TD>");
             cgiMakeButton(buttonVar, CLEAR_BUTTON_LABEL);
             }
         puts("</TD></TR>");
         button = cgiOptionalString(buttonVar);
         if (isEmpty(button))
             continue;
 	struct slRef *tdbRefList = trackDbListGetRefsToDescendantLeaves(parentTdb->subtracks);
 	struct slRef *tdbRef;
 	for (tdbRef = tdbRefList; tdbRef != NULL; tdbRef = tdbRef->next)