|
|
|
|
@ -299,23 +299,23 @@ export function initRepoPullRequestMergeInstruction() {
|
|
|
|
|
export function initRepoPullRequestAllowMaintainerEdit() {
|
|
|
|
|
const wrapper = document.getElementById('allow-edits-from-maintainers');
|
|
|
|
|
if (!wrapper) return;
|
|
|
|
|
|
|
|
|
|
wrapper.querySelector('input[type="checkbox"]')?.addEventListener('change', async (e) => {
|
|
|
|
|
const checked = e.target.checked;
|
|
|
|
|
const checkbox = wrapper.querySelector('input[type="checkbox"]');
|
|
|
|
|
checkbox.addEventListener('input', async () => {
|
|
|
|
|
const url = `${wrapper.getAttribute('data-url')}/set_allow_maintainer_edit`;
|
|
|
|
|
wrapper.classList.add('is-loading');
|
|
|
|
|
e.target.disabled = true;
|
|
|
|
|
try {
|
|
|
|
|
const response = await POST(url, {data: {allow_maintainer_edit: checked}});
|
|
|
|
|
if (!response.ok) {
|
|
|
|
|
const resp = await POST(url, {data: new URLSearchParams({allow_maintainer_edit: checkbox.checked})});
|
|
|
|
|
if (!resp.ok) {
|
|
|
|
|
throw new Error('Failed to update maintainer edit permission');
|
|
|
|
|
}
|
|
|
|
|
const data = await resp.json();
|
|
|
|
|
checkbox.checked = data.allow_maintainer_edit;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
checkbox.checked = !checkbox.checked;
|
|
|
|
|
console.error(error);
|
|
|
|
|
showTemporaryTooltip(wrapper, wrapper.getAttribute('data-prompt-error'));
|
|
|
|
|
} finally {
|
|
|
|
|
wrapper.classList.remove('is-loading');
|
|
|
|
|
e.target.disabled = false;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|