diff --git a/public/language/en-GB/error.json b/public/language/en-GB/error.json index d849187..c634bd1 100644 --- a/public/language/en-GB/error.json +++ b/public/language/en-GB/error.json @@ -36,7 +36,7 @@ "invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2", - "username-taken": "Username taken", + "username-taken": "Username taken. Maybe try", "email-taken": "Email address is already taken.", "email-nochange": "The email entered is the same as the email already on file.", "email-invited": "Email was already invited", diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json index f12e15c..34a05f5 100644 --- a/public/language/en-US/error.json +++ b/public/language/en-US/error.json @@ -31,7 +31,7 @@ "invalid-path": "Invalid path", "folder-exists": "Folder exists", "invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2", - "username-taken": "Username taken", + "username-taken": "Username taken. Maybe try", "email-taken": "Email address is already taken.", "email-nochange": "The email entered is the same as the email already on file.", "email-invited": "Email was already invited", diff --git a/public/language/es/error.json b/public/language/es/error.json index c9a2e45..b85a42d 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -31,7 +31,7 @@ "invalid-path": "Invalid path", "folder-exists": "Folder exists", "invalid-pagination-value": "Número de página inválido, debe estar entre %1 y %2", - "username-taken": "Nombre de usuario ocupado", + "username-taken": "Nombre de usuario ocupado. Puedes intentar con", "email-taken": "Email address is already taken.", "email-nochange": "The email entered is the same as the email already on file.", "email-invited": "Email was already invited", diff --git a/public/src/client/register.js b/public/src/client/register.js index d8144d2..51e28f5 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -135,9 +135,9 @@ define('forum/register', [ if (results.every(obj => obj.status === 'rejected')) { showSuccess(usernameInput, username_notify, successIcon); } else { - showError(usernameInput, username_notify, '[[error:username-taken]]'); + const newUsername = utils.addNewSuffix(username, 3); + showError(usernameInput, username_notify, '[[error:username-taken]]' + ' "' + newUsername + '"'); } - callback(); }); } diff --git a/public/src/utils.common.js b/public/src/utils.common.js index dd01af9..2c9e1e2 100644 --- a/public/src/utils.common.js +++ b/public/src/utils.common.js @@ -275,6 +275,14 @@ const HTMLEntities = Object.freeze({ /* eslint-disable no-redeclare */ const utils = { // https://github.com/substack/node-ent/blob/master/index.js + addNewSuffix: function (text, suffixLength) { + const nums = "1234567890"; + let result = ""; + for (let i = 0; i < suffixLength; i++) { + result += nums.charAt(Math.floor(Math.random() * nums.length)); + } + return text + result; + }, decodeHTMLEntities: function (html) { return String(html) .replace(/&#(\d+);?/g, function (_, code) {