9fb48fcf916f66ad45f316969a25599c82fe385e max Tue Jun 14 07:34:25 2022 -0700 adding copy to clipboard feature to hgSession.c. refs #29586 diff --git src/hg/hgSession/hgSession.c src/hg/hgSession/hgSession.c index 39a0924..af3ad72 100644 --- src/hg/hgSession/hgSession.c +++ src/hg/hgSession/hgSession.c @@ -177,39 +177,48 @@ else dyStringPrintf(dyTmp, "%shgTracks?hgS_doOtherUser=submit&" "hgS_otherUserName=%s&hgS_otherUserSessionName=%s", hLocalHostCgiBinUrl(), userName, sessionName); if (encode) { dyStringPrintf(dy, "%s", cgiEncodeFull(dyTmp->string)); } else { dyStringPrintf(dy, "%s", dyTmp->string); } dyStringFree(&dyTmp); } +void printCopyToClipboardIcon(struct dyString *dy, char *iconId, char *targetId) +/* print a copy-to-clipboard icon with DOM id iconId that copies the node text of targetId */ +{ +dyStringPrintf(dy, "\n", iconId, targetId); +jsOnEventById("click", "copyIcon", "copyToClipboard(event);"); +} + void printShareMessage(struct dyString *dy, char *userName, char *sessionName, boolean encode) { struct dyString *dyTmp = dyStringNew(0); addSessionLink(dyTmp, userName, sessionName, encode, TRUE); dyStringPrintf(dy, - "

You can share this session with the following URL: %s

", + "

You can share this session with the following URL:
%s", dyTmp->string); -//dyStringFree(&dyTmp); + +printCopyToClipboardIcon(dy, "copyIcon", "urlText"); +dyStringAppend(dy, "

"); } char *getSessionLink(char *encUserName, char *encSessionName) /* Form a link that will take the user to a bookmarkable page that * will load the given session. */ { struct dyString *dy = dyStringNew(1024); dyStringPrintf(dy, "Browser\n"); return dyStringCannibalize(&dy); } char *getSessionEmailLink(char *encUserName, char *encSessionName) /* Invoke mailto: with a cgi-encoded link that will take the user to a