0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-01-09 16:10:50 -05:00

show edit textfield always initially when editing comments

When a comment was added and saved with the preview tab active, the
preview tab is still active, when the comment is edited again.
This adds a "hacky" solution, but it works and is simple.
Every time the edit is "started" and the editor already exists, the tab
with the edit text field gets clicked to activate it.

Fixes 
This commit is contained in:
Beowulf 2024-06-01 03:20:04 +02:00
parent 8e33f82a85
commit 09aa1c57f1
No known key found for this signature in database
GPG key ID: 44225F5F2792841D
2 changed files with 34 additions and 0 deletions
tests/e2e
web_src/js/features

View file

@ -0,0 +1,31 @@
// @ts-check
import {test, expect} from '@playwright/test';
import {login_user, load_logged_in_context} from './utils_e2e.js';
test.beforeAll(async ({browser}, workerInfo) => {
await login_user(browser, workerInfo, 'user2');
});
test('Always focus edit tab first on edit', async ({browser}, workerInfo) => {
const context = await load_logged_in_context(browser, workerInfo, 'user2');
const page = await context.newPage();
const response = await page.goto('/user2/repo1/issues/1');
await expect(response?.status()).toBe(200);
// Switch to preview tab and save
await page.click('#issue-1 .comment-container .context-menu');
await page.click('#issue-1 .comment-container .menu>.edit-content');
await page.locator('#issue-1 .comment-container a[data-tab-for=markdown-previewer]').click();
await page.click('#issue-1 .comment-container .save');
await page.waitForLoadState('networkidle');
// Edit again and assert that edit tab should be active (and not preview tab)
await page.click('#issue-1 .comment-container .context-menu');
await page.click('#issue-1 .comment-container .menu>.edit-content');
const editTab = page.locator('#issue-1 .comment-container a[data-tab-for=markdown-writer]');
const previewTab = page.locator('#issue-1 .comment-container a[data-tab-for=markdown-previewer]');
await expect(editTab).toHaveClass(/active/);
await expect(previewTab).not.toHaveClass(/active/);
});

View file

@ -479,6 +479,9 @@ async function onEditContent(event) {
editContentZone.addEventListener('ce-quick-submit', saveAndRefresh);
editContentZone.querySelector('.cancel.button').addEventListener('click', cancelAndReset);
editContentZone.querySelector('.save.button').addEventListener('click', saveAndRefresh);
} else {
const tabEditor = editContentZone.querySelector('.combo-markdown-editor').querySelector('.tabular.menu > a[data-tab-for=markdown-writer]');
tabEditor?.click();
}
// Show write/preview tab and copy raw content as needed