forgejo/web_src/js/features/repo-commit.js
Robert Wolff 296e6a284e fix(ui): improve Git notes editing (#11365)
Closes #11355, namely:

1. bug: editing the note does not edit the orginal content, but the rendered content
    - 16368c4ccb
    - edit raw notes instead of rendered notes
2. bug: editing existing note on single-commit PR page leads to 404 page because it sends a POST request to `/OWNER/REPO/pulls/ID/commits/COMMIT_HASH/notes`
    - f036fc55db
    - add new paths for the actions on pull request pages for `/OWNER/REPO/pulls/ID/commits/COMMIT_HASH/notes` and `/OWNER/REPO/pulls/ID/commits/COMMIT_HASH/notes/remove`
3. feat: both for adding and editing there is no `Cancel` button
    - 58d8c7cc87
    - moved both the `Cancel` and the `Save`/`Edit` button to the right for better consistency how, e.g., issue comments are edited/created.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/11365
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Robert Wolff <mahlzahn@posteo.de>
Co-committed-by: Robert Wolff <mahlzahn@posteo.de>
2026-03-10 23:49:18 +01:00

45 lines
1.8 KiB
JavaScript

import {createTippy} from '../modules/tippy.js';
import {toggleElem} from '../utils/dom.js';
export function initRepoEllipsisButton() {
for (const button of document.querySelectorAll('.js-toggle-commit-body')) {
button.addEventListener('click', function (e) {
e.preventDefault();
const expanded = this.getAttribute('aria-expanded') === 'true';
toggleElem(this.parentElement.querySelector('.commit-body'));
this.setAttribute('aria-expanded', String(!expanded));
});
}
}
export function initCommitStatuses() {
for (const element of document.querySelectorAll('[data-tippy="commit-statuses"]')) {
const top = document.querySelector('.repository.file.list') || document.querySelector('.repository.diff');
createTippy(element, {
content: element.nextElementSibling,
placement: top ? 'top-start' : 'bottom-start',
interactive: true,
role: 'dialog',
theme: 'box-with-header',
interactiveBorder: element.closest('.forced-push') ? 0 : 20,
});
}
}
export function initCommitNotes() {
document.getElementById('commit-notes-edit-button')?.addEventListener('click', () => {
document.getElementById('commit-notes-display-area').classList.add('tw-hidden');
document.getElementById('commit-notes-edit-area').classList.remove('tw-hidden');
});
document.getElementById('commit-notes-add-button')?.addEventListener('click', () => {
document.getElementById('commit-notes-edit-area').classList.remove('tw-hidden');
});
document.getElementById('commit-notes-cancel-button')?.addEventListener('click', () => {
document.getElementById('commit-notes-edit-form').reset();
document.getElementById('commit-notes-display-area')?.classList.remove('tw-hidden');
document.getElementById('commit-notes-edit-area').classList.add('tw-hidden');
});
}