d7dd4f55e28699bb783563b8bece5bf23f392995
chmalee
  Wed May 13 11:07:57 2026 -0700
Adds hg.conf myVariantsDataDir for writing ctfiles outside trash/, per-db short/long label rename on hgTrackUi, and a shared removal helper so the hgTrackUi remove button, hgTracks trash icon, and hgCustom checkbox all function the same, refs #33808

diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c
index f117e6e154e..b1e70e9a7c5 100644
--- src/hg/hgTrackUi/hgTrackUi.c
+++ src/hg/hgTrackUi/hgTrackUi.c
@@ -4026,30 +4026,49 @@
         cgiMakeHiddenVar(CT_SELECTED_TABLE_VAR, tdb->track);
         puts(" ");
         if (differentString(tdb->type, "chromGraph") &&
             differentString(tdb->type, "myVariants"))
             {
             char buf[256];
             if (ajax)
                 // reference to a separate form doesn't work in modal dialog,
                 // so change window.location directly.
                 safef(buf, sizeof(buf), "window.location='%s?hgsid=%s&%s=%s';return false;",
                       hgCustomName(), cartSessionId(cart), CT_SELECTED_TABLE_VAR, tdb->track);
             else
                 safef(buf, sizeof(buf), "document.customTrackForm.submit();return false;");
             cgiMakeOnClickButton("htui_updtCustTrk", buf, "Update custom track");
             }
+        if (sameString(tdb->type, "myVariants") &&
+            !startsWith("myVariants_shared_", tdb->track))
+            {
+            /* Labels are per (track, db) so the same myVariants table can
+             * carry a different name on each assembly. */
+            char shortVar[256], longVar[256];
+            safef(shortVar, sizeof shortVar, "%s.%s.shortLabel",
+                tdb->track, database);
+            safef(longVar, sizeof longVar, "%s.%s.longLabel",
+                tdb->track, database);
+            char *curShort = cartUsualString(cart, shortVar, "");
+            char *curLong = cartUsualString(cart, longVar, "");
+            puts("<div style='margin-top:0.5em'><b>Rename track:</b> ");
+            puts("Short Label ");
+            cgiMakeTextVar(shortVar, curShort, 18);
+            puts(" Long Label ");
+            cgiMakeTextVar(longVar, curLong, 50);
+            puts(" <span style='color:#888'>(blank = default)</span></div>");
+            }
         }
     }
 
 if (!tdbIsSuper(tdb) && !tdbIsDownloadsOnly(tdb) && !ajax)
     {
     // NAVLINKS - For pages w/ matrix, add Description, Subtracks and Downloads links
     if (trackDbSetting(tdb, "dimensions")
     ||  (trackDbSetting(tdb, "wgEncode") && tdbIsComposite(tdb)))
         {
         printf("\n&nbsp;&nbsp;<span id='navDown' style='float:right; display:none;'>");
         if (trackDbSetting(tdb, "wgEncode") && isEncode2(database, tdb->track))
             {
             printf("<A TARGET=_BLANK HREF='../ENCODE/index.html' TITLE='ENCODE Portal'>ENCODE at UCSC</A>");
             printf("&nbsp;&nbsp;");
             makeDownloadsLink(database, tdb);