Skip to content

Commit d189e7b

Browse files
committed
Fix database deadlock when update issue labels
1 parent 253d9e4 commit d189e7b

File tree

2 files changed

+21
-26
lines changed

2 files changed

+21
-26
lines changed

web_src/js/features/repo-issue.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -332,20 +332,16 @@ export function initRepoIssueWipTitle() {
332332
});
333333
}
334334

335-
export function updateIssuesMeta(url, action, issueIds, elementId) {
336-
return new Promise((resolve, reject) => {
337-
$.ajax({
338-
type: 'POST',
339-
url,
340-
data: {
341-
_csrf: csrfToken,
342-
action,
343-
issue_ids: issueIds,
344-
id: elementId,
345-
},
346-
success: resolve,
347-
error: reject,
348-
});
335+
export async function updateIssuesMeta(url, action, issueIds, elementId) {
336+
return $.ajax({
337+
type: 'POST',
338+
url,
339+
data: {
340+
_csrf: csrfToken,
341+
action,
342+
issue_ids: issueIds,
343+
id: elementId,
344+
},
349345
});
350346
}
351347

web_src/js/features/repo-legacy.js

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,18 +84,17 @@ export function initRepoCommentForm() {
8484
$(`.${selector}`).dropdown('setting', 'onHide', () => {
8585
hasUpdateAction = $listMenu.data('action') === 'update'; // Update the var
8686
if (hasUpdateAction) {
87-
const promises = [];
88-
Object.keys(items).forEach((elementId) => {
89-
const item = items[elementId];
90-
const promise = updateIssuesMeta(
91-
item['update-url'],
92-
item.action,
93-
item['issue-id'],
94-
elementId,
95-
);
96-
promises.push(promise);
97-
});
98-
Promise.all(promises).then(() => window.location.reload());
87+
(async function() {
88+
for (const [elementId, item] of Object.entries(items)) {
89+
await updateIssuesMeta(
90+
item['update-url'],
91+
item.action,
92+
item['issue-id'],
93+
elementId,
94+
);
95+
}
96+
window.location.reload();
97+
})();
9998
}
10099
});
101100

0 commit comments

Comments
 (0)