Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion public/language/en-US/error.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": "The username is already taken. Try octocat_ci3715.",
"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",
Expand Down
2 changes: 1 addition & 1 deletion public/language/es/error.json
Original file line number Diff line number Diff line change
Expand Up @@ -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 ya en uso. Pruebe utilizando octocat_ci3715.",
"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",
Expand Down
44 changes: 37 additions & 7 deletions public/src/client/register.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,21 @@ define('forum/register', [
$('#username').trigger('focus');
};

function checkUsernameNotTaken(username, callback){

const username_notify = $('#username-notify');
username_notify.text('');
const usernameInput = $('#username');
const userslug = slugify(username);

Promise.allSettled([
api.head(`/users/bySlug/${userslug}`, {}),
api.head(`/groups/${username}`, {}),
]).then((results) => {
return (results.every(obj => obj.status === 'rejected'))
});
}

function validateUsername(username, callback) {
callback = callback || function () {};

Expand All @@ -128,18 +143,33 @@ define('forum/register', [
} else if (!utils.isUserNameValid(username) || !userslug) {
showError(usernameInput, username_notify, '[[error:invalid-username]]');
} else {
Promise.allSettled([
api.head(`/users/bySlug/${userslug}`, {}),
api.head(`/groups/${username}`, {}),
]).then((results) => {
if (results.every(obj => obj.status === 'rejected')) {

if (checkUsernameNotTaken(username, callback)) {
showSuccess(usernameInput, username_notify, successIcon);
} else {
showError(usernameInput, username_notify, '[[error:username-taken]]');

let usernameSuffix = 0;
let exampleUsername = username.concat(usernameSuffix.toString(),'_ci3715');

//placeholder para el codigo que revisaria que el nuevo username generado
// no este ya tomado tambien, y pueda calcularse otro si ese es el caso
//(ahorita esto genera un loop infinito, y yo no c hacer llamadas al backend por ahora)
/*
while(!checkUsernameNotTaken(exampleUsername, callback)){
exampleUsername = username.concat(usernameSuffix.toString(),'_ci3715');
usernameSuffix ++;
}
*/

//showError(usernameInput, username_notify, '[[error:username-taken]]');
// aqui hay que agregar un link con los error.json en los idiomas correspondientes que use lo que se calculo
//para los mensajes de error
showError(usernameInput, username_notify, `${username}?, really?!, why not ${exampleUsername} instead?`);
}

callback();
});


}
}

Expand Down