feat: complete authored pull workspace access (Closes #1348)
This commit is contained in:
1 parent
050390d6f6
commit
2102b0e5da
7 files changed
+264
-44
No files matched your search
+15
-4
@@ -187,17 +187,27 @@ function ownershipExitMessage(item, action, transitionResult) {
|
||||
'. Next work item opened.' : '. Choose the next ready Today item.');
|
||||
}
|
||||
|
||||
function resetOwnershipControls(doc, item, checkpointed) {
|
||||
function applyOwnershipCapabilities(doc, capabilities = null) {
|
||||
const ownership = doc.querySelector('#pull-ownership');
|
||||
const assigned = capabilities?.assigned !== false;
|
||||
ownership.hidden = !assigned;
|
||||
ownership.inert = !assigned;
|
||||
return assigned;
|
||||
}
|
||||
|
||||
function resetOwnershipControls(doc, item, checkpointed, capabilities = null) {
|
||||
const qs = selector => doc.querySelector(selector);
|
||||
const assigned = applyOwnershipCapabilities(doc, capabilities);
|
||||
qs('#pull-ownership').open = false;
|
||||
qs('#pull-handoff-recipient').innerHTML = '<option value="">Select a teammate</option>';
|
||||
qs('#pull-handoff-recipient').disabled = true;
|
||||
qs('#confirm-pull-handoff').disabled = true;
|
||||
qs('#confirm-pull-handoff').textContent = checkpointed(item) ? 'Hand off & next' : 'Confirm handoff';
|
||||
qs('#load-pull-handoff').disabled = false;
|
||||
qs('#release-pull').disabled = false;
|
||||
qs('#load-pull-handoff').disabled = !assigned;
|
||||
qs('#release-pull').disabled = !assigned;
|
||||
qs('#release-pull').textContent = checkpointed(item) ? 'Release & next' : 'Release assignment';
|
||||
qs('#pull-handoff-status').textContent = 'Load teammates to transfer ownership.';
|
||||
qs('#pull-handoff-status').textContent = assigned ?
|
||||
'Load teammates to transfer ownership.' : 'Assignment controls are not available for this pull request.';
|
||||
qs('#edit-pull-content').hidden = true;
|
||||
qs('#pull-edit-form').hidden = true;
|
||||
qs('#pull-edit-status').textContent = '';
|
||||
@@ -227,6 +237,7 @@ function bindReviewRequestControls(doc, controller, getSelected, getDetail, getL
|
||||
load.dataset.reviewRequestBound = 'true';
|
||||
controller.setReviewDetail = detail => {
|
||||
resetReviewRequestControls(doc, detail);
|
||||
applyOwnershipCapabilities(doc, detail?.capabilities);
|
||||
controller.edit?.setDetail(detail, Boolean(detail?.saved_at));
|
||||
const publishable = detail?.state === 'open' && detail?.draft === true &&
|
||||
detail?.author === getLogin?.() && detail?.head_sha;
|
||||
|
||||
Reference in new issue
Block a user