diff --git a/public/src/client/register.js b/public/src/client/register.js index f989901e7b..5571bf700c 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -115,7 +115,7 @@ define('forum/register', [ }; function validateUsername(username, callback) { - callback = callback || function () {}; + callback = callback || function () { }; const username_notify = $('#username-notify'); username_notify.text(''); @@ -135,7 +135,10 @@ define('forum/register', [ if (results.every(obj => obj.status === 'rejected')) { showSuccess(usernameInput, username_notify, successIcon); } else { - showError(usernameInput, username_notify, '[[error:username-taken]]'); + var nameValue = usernameInput.val ? usernameInput.val() : usernameInput.value; + + var suggestion = nameValue + '_' + generateRandomWord(); + showError(usernameInput, username_notify, '[[error:username-taken]]' + '. Maybe try ' + suggestion); } callback(); @@ -143,6 +146,20 @@ define('forum/register', [ } } + function generateRandomWord(length = 5) { + let word = ''; + + for (let i = 0; i < length; i++) { + + const asciiCode = Math.floor(Math.random() * 26) + 97; + + // Convert the numeric ASCII code into a string character + word += String.fromCharCode(asciiCode); + } + + return word; + } + function validatePassword(password, password_confirm) { const passwordInput = $('#password'); const password_notify = $('#password-notify');