c1ac48b0feb9a8ff0f0bb16d7aff15d417d6772b lrnassar Tue Sep 8 12:38:42 2026 -0700 Share dialog: scope the snapshot-lifetime wording to the BLAT alignment share only. Feedback from CR. refs #37996 The softer durability text (link valid for years, save into a Session for permanence) keyed on the generic url mode, so hgTrackUi's page-share link and the hgc item-popup share, both plain non-expiring URLs, showed misleading copy. The wording is now behind an explicit snapshot flag that only the BLAT alignment page's share passes; every other caller keeps "Links never time out". Also removes a stray blank line in hgc.c from the same review. diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 99bb876867d..03d3741d2ab 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -9790,31 +9790,31 @@ " if (btn.dataset.busy) return;\n" " btn.dataset.busy = '1';\n" " var label = btn.textContent;\n" " btn.textContent = 'Creating link\\u2026';\n" " fetch('../cgi-bin/hgSession', {method:'POST', credentials:'same-origin'," " headers:{'Content-Type':'application/x-www-form-urlencoded'}," // hgS_snapshotType=blat -> a lightweight snapshot storing only blatLastBigBed (+db), not the // whole cart, under a server-generated unique "__" name (see lib/snapshotSession.c). " body:'hgsid=%s&hgS_doSaveSessionJson=1&hgS_shareAnon=1&hgS_snapshotType=blat'})\n" " .then(function(r){ return r.json(); }).then(function(data){\n" " btn.textContent = label; btn.dataset.busy = '';\n" " if (!data || !data.name) return;\n" " var link = window.location.origin + window.location.pathname +\n" " '?g=htcBlatAlign&c=%s&o=%d&i=' + encodeURIComponent('%s') +\n" // db comes from the session " '&u=l&s=' + encodeURIComponent(data.name);\n" - " if (window.topLinks && topLinks.shareUrl) topLinks.shareUrl(link);\n" + " if (window.topLinks && topLinks.shareUrl) topLinks.shareUrl(link, {snapshot: true});\n" " }).catch(function(){ btn.textContent = label; btn.dataset.busy = ''; });\n" "});\n" "})();\n", cartSessionId(cart), tNameJs, psl->tStart, qNameJs); freeMem(qNameHtml); freeMem(chromHtml); freeMem(qNameJs); freeMem(chromJs); freeMem(tNameJs); } void alnModernStart(char *classicTitle) /* Begin an alignment page. With the modernAlignPage hg.conf flag set, start the modern single-page * chrome (webStartGbNoBanner) and arm gAlnModern so showSomeAlignment() renders the modern body; * otherwise start the classic