d1dafcb2502a7c2fd549c0bf978f15920a817a37
kate
Mon May 6 15:22:05 2019 -0700
Fix problem with +/- buttons at buttoms of big matrix. They were being created with non-unique ID. refs #20532
diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index 71f92cd..4b18ece 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -7455,38 +7455,38 @@
freeMem(words[0]);
freeMem(rootLabel);
return cloneString(label);
}
#define PM_BUTTON_UC ""
#define PM_BUTTON_UC_JS "return (matSetMatrixCheckBoxes(%s%s%s%s%s%s) == false);"
#define PM_MAKE_BUTTON_UC(s1,s2,s3,s4,s5,s6,name,img) \
safef(id, sizeof id, "btn_%s", (name)); \
printf(PM_BUTTON_UC, id, (img)); \
safef(javascript, sizeof javascript, PM_BUTTON_UC_JS, (s1),(s2),(s3),(s4),(s5),(s6)); \
jsOnEventById("click", id, javascript);
#define MATRIX_RIGHT_BUTTONS_AFTER 8
#define MATRIX_BOTTOM_BUTTONS_AFTER 20
-static void buttonsForAll(boolean left)
+static void buttonsForAll(boolean left, boolean top)
{
char id[256];
char javascript[1024];
char fullname[256];
-safef(fullname, sizeof fullname, "plus_all_%s" , left?"left":"right");
+safef(fullname, sizeof fullname, "plus_all_%s_%s", left ? "left" : "right", top ? "top" : "bottom");
PM_MAKE_BUTTON_UC("true", "", "", "", "", "", fullname, "add_sm.gif")
-safef(fullname, sizeof fullname, "minus_all_%s", left?"left":"right");
+safef(fullname, sizeof fullname, "minus_all_%s_%s", left ? "left" : "right", top ? "top" : "bottom");
PM_MAKE_BUTTON_UC("false","", "", "", "", "", fullname, "remove_sm.gif")
}
static void buttonsForOne(char *class, boolean vertical, boolean left)
{
char id[256];
char javascript[1024];
char fullname[256];
safef(fullname, sizeof fullname, "plus_%s_all_%s" , class, left?"left":"right");
PM_MAKE_BUTTON_UC("true", ",'", class, "'", "", "", fullname, "add_sm.gif")
if (vertical)
puts("
");
safef(fullname, sizeof fullname, "minus_%s_all_%s", class, left?"left":"right");
PM_MAKE_BUTTON_UC("false", ",'", class, "'", "", "", fullname, "remove_sm.gif")
}
@@ -7520,31 +7520,31 @@
return FALSE;
}
static void matrixXheadingsRow1(char *db,struct trackDb *parentTdb,boolean squeeze,
membersForAll_t* membersForAll,boolean top)
// prints the top row of a matrix: 'All' buttons; X titles; buttons 'All'
{
members_t *dimensionX = membersForAll->members[dimX];
members_t *dimensionY = membersForAll->members[dimY];
printf("