4f7feb0c81142e6ff34ba5a23bee77d2e04a945d hiram Thu Aug 6 13:25:41 2026 -0700 reposition the hide/show icon outside the password box and show mouse over information about the function refs #37921 diff --git src/hg/hgLogin/hgLogin.c src/hg/hgLogin/hgLogin.c index 3445e3459d7..595cb879f59 100644 --- src/hg/hgLogin/hgLogin.c +++ src/hg/hgLogin/hgLogin.c @@ -731,39 +731,39 @@ /* Set up new user account and send activation mail to user */ { char query[256]; char *token = generateRandomPassword(); char *tokenMD5 = generateTokenMD5(token); sqlSafef(query,sizeof(query), "UPDATE gbMembers SET lastUse=NOW(),emailToken='%s', emailTokenExpires=DATE_ADD(NOW(), INTERVAL 7 DAY), accountActivated='N' WHERE userName='%s'", tokenMD5, username ); sqlUpdate(conn, query); sendActivateMail(email, username, tokenMD5); return; } void printPwdEyeIcon(char *iconId, char *slashId) -/* print a clickable eye icon, absolutely positioned inside a password - * input's wrapper span; slashId is the toggled to show "hidden". - * No-op if disabled via hg.conf login.pwdEyeIcon. */ +/* print a clickable eye icon as a normal sibling right after a password + * input (not overlapping it); slashId is the toggled to show + * "hidden". No-op if disabled via hg.conf login.pwdEyeIcon. */ { if (!pwdEyeIconEnabled) return; hPrintf( "" "" "" "" "" "" "", iconId, slashId); } void printPwdToggleJS() /* define the password show/hide toggle function used by all eye icons */ { jsInline( "function togglePwdVisibility(inputId, slashId) {\n" @@ -794,31 +794,31 @@ "\n", hgLoginUrl); if (errMsg && sameString(errMsg, "Your account has been activated.")) hPrintf("%s\n", errMsg ? errMsg : ""); else hPrintf("%s\n", errMsg ? errMsg : ""); hPrintf("
" "\n" "
" "" "" "Forgot username" "
" "\n" "
" "" - "" + "" "" , hgLoginUrl, username, hgLoginUrl); printPwdEyeIcon("pwdEyeIcon", "pwdEyeSlash"); hPrintf( "" "Forgot password" "
" "\n" "
" " " "  Cancel" "
" , hgLoginUrl, getReturnToURL()); if (pwdEyeIconEnabled) { @@ -877,49 +877,49 @@ "

Change Password

" "\n" "

%s

" "\n" "" "\n" "
" "" "" "
" "\n", errMsg ? errMsg : "", hgLoginUrl, cartUsualString(cart, "hgLogin_userName", "")); hPrintf("
" "\n" "" - "" + "" ""); printPwdEyeIcon("curPwEyeIcon", "curPwEyeSlash"); hPrintf( "" "
" "\n" "
" "" - "" + "" ""); printPwdEyeIcon("newPw1EyeIcon", "newPw1EyeSlash"); hPrintf( "" "
" "\n" "
" "" - "" + "" ""); printPwdEyeIcon("newPw2EyeIcon", "newPw2EyeSlash"); hPrintf( "" "
" "\n" "
" "   " " Cancel" "\n" "
" "
" "\n" "" "\n", getReturnToURL()); @@ -1283,41 +1283,41 @@ "" "" "\n", cartUsualString(cart, "hgLogin_userName", ""), cartUsualString(cart, "hgLogin_email", ""), cartUsualString(cart, "hgLogin_email2", "")); if (sqlFieldIndex(conn, "gbMembers", "recovEmail") != -1) hPrintf("
" "" "" "
" "\n"); hPrintf("
" "" - "" + "" "", cartUsualString(cart, "hgLogin_password", "")); printPwdEyeIcon("signupPwEyeIcon", "signupPwEyeSlash"); hPrintf( "" "
" "\n" "
" "" - "" + "" "", cartUsualString(cart, "hgLogin_password2", "")); printPwdEyeIcon("signupPwCheckEyeIcon", "signupPwCheckEyeSlash"); hPrintf( "" "\n" "
" "\n" "
" "   " " Cancel" "
" "" "", getReturnToURL());