From c897e40d4f2e59e647ce99789c50584eb2db5750 Mon Sep 17 00:00:00 2001 From: forgejo-backport-action Date: Tue, 2 Sep 2025 08:00:46 +0200 Subject: [PATCH] [v12.0/forgejo] fix(ui): clear fields when canceling adding ssh key (#9112) **Backport:** https://codeberg.org/forgejo/forgejo/pulls/8990 - Add javascript to clear fields upon clicking the cancel button inside the panel for adding new SSH keys. - Add E2E test. - Resolves #8915 Co-authored-by: dawe Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9112 Reviewed-by: Gusted Co-authored-by: forgejo-backport-action Co-committed-by: forgejo-backport-action --- tests/e2e/user-settings.test.e2e.ts | 18 ++++++++++++++++++ web_src/js/features/sshkey-helper.js | 7 +++++++ web_src/js/index.js | 3 ++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/e2e/user-settings.test.e2e.ts b/tests/e2e/user-settings.test.e2e.ts index 726c7b4f4a..008548be9f 100644 --- a/tests/e2e/user-settings.test.e2e.ts +++ b/tests/e2e/user-settings.test.e2e.ts @@ -78,3 +78,21 @@ test('User: Storage overview', async ({browser}, workerInfo) => { await expect(page.getByText('Git LFS')).toBeVisible(); await save_visual(page); }); + +test('User: Canceling adding SSH key clears inputs', async ({browser}, workerInfo) => { + const page = await login({browser}, workerInfo); + await page.goto('/user/settings/keys'); + await page.locator('#add-ssh-button').click(); + + await page.getByLabel('Key name').fill('MyAwesomeKey'); + await page.locator('#ssh-key-content').fill('Wront key material'); + + await page.getByRole('button', {name: 'Cancel'}).click(); + await page.locator('#add-ssh-button').click(); + + const keyName = page.getByLabel('Key name'); + await expect(keyName).toHaveValue(''); + + const content = page.locator('#ssh-key-content'); + await expect(content).toHaveValue(''); +}); diff --git a/web_src/js/features/sshkey-helper.js b/web_src/js/features/sshkey-helper.js index 3960eefe8e..71caadd5b1 100644 --- a/web_src/js/features/sshkey-helper.js +++ b/web_src/js/features/sshkey-helper.js @@ -8,3 +8,10 @@ export function initSshKeyFormParser() { } }); } + +export function initSshKeyCancelButton() { + document.getElementById('cancel-ssh-button')?.addEventListener('click', () => { + document.getElementById('ssh-key-title').value = ''; + document.getElementById('ssh-key-content').value = ''; + }); +} diff --git a/web_src/js/index.js b/web_src/js/index.js index 1dab9ae292..6cc9eb49df 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -51,7 +51,7 @@ import {initAdminEmails} from './features/admin/emails.js'; import {initAdminCommon} from './features/admin/common.js'; import {initRepoTemplateSearch} from './features/repo-template.js'; import {initRepoCodeView} from './features/repo-code.js'; -import {initSshKeyFormParser} from './features/sshkey-helper.js'; +import {initSshKeyFormParser, initSshKeyCancelButton} from './features/sshkey-helper.js'; import {initRepoArchiveLinks} from './features/repo-common.js'; import {initRepoMigrationStatusChecker} from './features/repo-migrate.js'; import { @@ -124,6 +124,7 @@ onDomReady(() => { initMarkupAnchors(); initMarkupContent(); initSshKeyFormParser(); + initSshKeyCancelButton(); initStopwatch(); initTableSort(); initAutoFocusEnd();