From d2edda610341df06784e1253943da8ae521a4911 Mon Sep 17 00:00:00 2001 From: Juan Cuevas y Anya Marcano <19-10336@usb.ve> Date: Fri, 4 Oct 2024 14:35:25 -0400 Subject: [PATCH] New feature: suggest a new username if the one you put is already taken --- public/language/en-US/error.json | 2 +- public/language/es/error.json | 2 +- public/src/client/register.js | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/public/language/en-US/error.json b/public/language/en-US/error.json index f12e15c..f685a4f 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 this one: ", "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..f9e998c 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. Prueba este: ", "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..16b1fec 100644 --- a/public/src/client/register.js +++ b/public/src/client/register.js @@ -119,7 +119,8 @@ define('forum/register', [ const username_notify = $('#username-notify'); username_notify.text(''); - const usernameInput = $('#username'); + const + usernameInput = $('#username'); const userslug = slugify(username); if (username.length < ajaxify.data.minimumUsernameLength || userslug.length < ajaxify.data.minimumUsernameLength) { showError(usernameInput, username_notify, '[[error:username-too-short]]'); @@ -135,7 +136,8 @@ define('forum/register', [ if (results.every(obj => obj.status === 'rejected')) { showSuccess(usernameInput, username_notify, successIcon); } else { - showError(usernameInput, username_notify, '[[error:username-taken]]'); + const randomN = `${Math.floor(Math.random() * 10000)}`.padStart(4, "0") + showError(usernameInput, username_notify, '[[error:username-taken]]' + username + randomN); } callback();