5872e3a9d5f3d2916bbf10f359011b9d04fc3b93 max Wed Aug 26 03:18:39 2026 -0700 Revert "Share a link: create the session only when the user asks, and copy in one click" This reverts commit 3f97b357c59. The change was work in progress and was committed by mistake; web.c still has the matching data-shortlink part uncommitted, so this half does not stand on its own. The genark syncFtp commit that went out with it is fine and stays. diff --git src/hg/js/hgSession.js src/hg/js/hgSession.js index 1cba1a3abdd..a1dda41235a 100644 --- src/hg/js/hgSession.js +++ src/hg/js/hgSession.js @@ -35,40 +35,39 @@ var sessData = null; // set in sessionBuild: {config, sessions} var sessDt = null; // the DataTable API var sessSelectMode = false; // bulk-select (checkbox column) shown? function sessEnc(s) { // HTML-escape via the shared utils.js helper (escapes quotes too, so it is attribute-safe). return (typeof htmlEncode === 'function') ? htmlEncode(String(s == null ? '' : s)) : String(s); } function sessNum(n) { return (typeof commify === 'function') ? commify(n) : String(n); } function sessRandomShareName() { - // Auto-name convention for machine-generated session names: a leading "_" (which marks the name - // as internally generated, and is kept verbatim by the short-link encoder) followed by 8 URL-safe - // alphanumeric chars. This is the single source of the convention: the top-right "Share a link" - // menu (topLinks.js) and hgSession.c both defer to a name generated here. + // Mirror the server's auto/anonymous share-name convention ("share_" + 8 URL-safe alphanumeric + // chars). hgSession.c's doSaveSessionJson generates the same style server-side for the top-right + // "Share a link"; we generate it here so the confirm dialog can show the name before saving. var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var s = ''; for (var i = 0; i < 8; i++) { s += chars.charAt(Math.floor(Math.random() * chars.length)); } - return '_' + s; + return 'share_' + s; } function sessMbpPos(pos) { // Shorten a position to megabases to save horizontal space: // "chr7:155799529-155812871" -> "chr7:155.80-155.81 Mbp". Falls back to the raw string // if it doesn't parse. var m = /^(.+):([0-9,]+)-([0-9,]+)$/.exec(String(pos)); if (!m) { return String(pos); } var s = parseInt(m[2].replace(/,/g, ''), 10); var e = parseInt(m[3].replace(/,/g, ''), 10); if (isNaN(s) || isNaN(e)) { return String(pos); } return m[1] + ':' + (s / 1e6).toFixed(2) + '-' + (e / 1e6).toFixed(2) + ' Mbp'; } function sessMsg(text, cls) { @@ -421,31 +420,31 @@ } // Build the base params for an action on a given session (decoded name; the CGI re-encodes it). function sessActParams(action, row) { var p = {}; p[action] = '1'; p[SESS_P.oldName] = row.name; return p; } // ---- Save current view --------------------------------------------------- function sessDoSave() { var name = document.getElementById('sessSaveName').value.trim(); if (!name) { - // Empty name: offer to save under a random internal "_XXXXXXXX" name, after + // Empty name: offer to save under a server-style random "share_XXXXXXXX" name, after // confirming the user really meant to leave it blank. var rand = sessRandomShareName(); sessConfirm({ title: 'Save without a name?', bodyHtml: 'You left the session name empty. Your session will be saved under the ' + 'randomly generated name <b>' + sessEnc(rand) + '</b>.<br><br>You can also create ' + 'these quick share links any time from the <b>Share a link</b> option at the top ' + 'right of every Genome Browser page.', okLabel: 'Save session', onOk: function() { sessModalClose(); sessDoSaveWithName(rand); } }); return; } sessDoSaveWithName(name); }