Files
new-api/web_src/js/features/repo-settings-branches.ts
T
2026-05-30 22:47:36 +08:00

33 lines
1.1 KiB
TypeScript

import {createSortable} from '../modules/sortable.ts';
import {POST} from '../modules/fetch.ts';
import {showErrorToast} from '../modules/toast.ts';
import {queryElemChildren} from '../utils/dom.ts';
import {errorMessage} from '../modules/errors.ts';
export function initRepoSettingsBranchesDrag() {
const protectedBranchesList = document.querySelector<HTMLElement>('#protected-branches-list');
if (!protectedBranchesList) return;
createSortable(protectedBranchesList, {
handle: '.drag-handle',
animation: 150,
onEnd: () => {
(async () => {
const itemElems = queryElemChildren(protectedBranchesList, '.item[data-id]');
const itemIds = Array.from(itemElems, (el) => parseInt(el.getAttribute('data-id')!));
try {
await POST(protectedBranchesList.getAttribute('data-update-priority-url')!, {
data: {
ids: itemIds,
},
});
} catch (err) {
showErrorToast(`Failed to update branch protection rule priority: ${errorMessage(err)}`);
}
})();
},
});
}