From 956ba38b7da65a68b9ac51de86e15dd6f77a7cb4 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Sun, 17 Aug 2025 13:12:40 -0700 Subject: [PATCH] fix(webui): handle name already being taken at rename (#2659) Closes #2643 Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/2659 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com> --- static/webui/script.js | 17 ++++++++++++----- static/webui/translations/de.js | 1 + static/webui/translations/en.js | 1 + static/webui/translations/es.js | 1 + static/webui/translations/fr.js | 1 + static/webui/translations/ru.js | 1 + static/webui/translations/uk.js | 1 + static/webui/translations/zh.js | 1 + 8 files changed, 19 insertions(+), 5 deletions(-) diff --git a/static/webui/script.js b/static/webui/script.js index 6d598ddd..6feb4020 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -148,13 +148,20 @@ function doLogout() { } } -function renameAccount() { - const newname = window.prompt(loc("code_changeNameConfirm")); +function renameAccount(taken_name) { + const newname = window.prompt( + (taken_name ? loc("code_changeNameRetry").split("|NAME|").join(taken_name) + " " : "") + + loc("code_changeNameConfirm") + ); if (newname) { revalidateAuthz().then(() => { - fetch("/custom/renameAccount?" + window.authz + "&newname=" + newname).then(() => { - $(".displayname").text(newname); - updateLocElements(); + fetch("/custom/renameAccount?" + window.authz + "&newname=" + newname).then(res => { + if (res.status == 409) { + renameAccount(newname); + } else { + $(".displayname").text(newname); + updateLocElements(); + } }); }); } diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js index 9add8618..b1d45481 100644 --- a/static/webui/translations/de.js +++ b/static/webui/translations/de.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `Anmeldung fehlgeschlagen. Bitte überprüfe deine Angaben.`, code_regFail: `Registrierung fehlgeschlagen. Account existiert bereits?`, code_changeNameConfirm: `In welchen Namen möchtest du deinen Account umbenennen?`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `Bist du sicher, dass du deinen Account |DISPLAYNAME| (|EMAIL|) löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.`, code_archgun: `Arch-Gewehr`, code_melee: `Nahkampf`, diff --git a/static/webui/translations/en.js b/static/webui/translations/en.js index 101e28ea..0603dc75 100644 --- a/static/webui/translations/en.js +++ b/static/webui/translations/en.js @@ -9,6 +9,7 @@ dict = { code_loginFail: `Login failed. Double-check the email and password.`, code_regFail: `Registration failed. Account already exists?`, code_changeNameConfirm: `What would you like to change your account name to?`, + code_changeNameRetry: `|NAME| is already taken.`, code_deleteAccountConfirm: `Are you sure you want to delete your account |DISPLAYNAME| (|EMAIL|)? This action cannot be undone.`, code_archgun: `Archgun`, code_melee: `Melee`, diff --git a/static/webui/translations/es.js b/static/webui/translations/es.js index e22a8fe2..54fb50ce 100644 --- a/static/webui/translations/es.js +++ b/static/webui/translations/es.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `Error al iniciar sesión. Verifica el correo electrónico y la contraseña.`, code_regFail: `Error al registrar la cuenta. ¿Ya existe una cuenta con este correo?`, code_changeNameConfirm: `¿Qué nombre te gustaría ponerle a tu cuenta?`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `¿Estás seguro de que deseas eliminar tu cuenta |DISPLAYNAME| (|EMAIL|)? Esta acción es permanente.`, code_archgun: `Archcañón`, code_melee: `Cuerpo a cuerpo`, diff --git a/static/webui/translations/fr.js b/static/webui/translations/fr.js index 8a45cc08..e48f0179 100644 --- a/static/webui/translations/fr.js +++ b/static/webui/translations/fr.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `Connexion échouée. Vérifiez le mot de passe.`, code_regFail: `Enregistrement impossible. Compte existant?`, code_changeNameConfirm: `Nouveau nom du compte :`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `Supprimer |DISPLAYNAME| (|EMAIL|) ? Cette action est irreversible.`, code_archgun: `Archgun`, code_melee: `Melee`, diff --git a/static/webui/translations/ru.js b/static/webui/translations/ru.js index 69923f3b..119afa5b 100644 --- a/static/webui/translations/ru.js +++ b/static/webui/translations/ru.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `Не удалось войти. Проверьте адрес электронной почты и пароль.`, code_regFail: `Не удалось зарегистрироваться. Учетная запись уже существует?`, code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`, code_archgun: `Арч-Пушка`, code_melee: `Ближний бой`, diff --git a/static/webui/translations/uk.js b/static/webui/translations/uk.js index 4271e5ee..ba0815cc 100644 --- a/static/webui/translations/uk.js +++ b/static/webui/translations/uk.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `Не вдалося увійти. Перевірте адресу електронної пошти та пароль.`, code_regFail: `Не вдалося зареєструватися. Обліковий запис вже існує?`, code_changeNameConfirm: `Яке ім'я ви хочете встановити для свого облікового запису?`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `Ви впевнені, що хочете видалити обліковий запис |DISPLAYNAME| (|EMAIL|)? Цю дію не можна скасувати.`, code_archgun: `Арк-гармата`, code_melee: `Холодна зброя`, diff --git a/static/webui/translations/zh.js b/static/webui/translations/zh.js index bba7c870..98357ff7 100644 --- a/static/webui/translations/zh.js +++ b/static/webui/translations/zh.js @@ -10,6 +10,7 @@ dict = { code_loginFail: `登录失败。请检查邮箱和密码。`, code_regFail: `注册失败。账号是否已存在?`, code_changeNameConfirm: `您想将账户名称更改为?`, + code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`, code_deleteAccountConfirm: `确定要删除您的账户 |DISPLAYNAME|(|EMAIL|) 吗?此操作不可撤销。`, code_archgun: `空战`, code_melee: `近战`,