fix: complete legacy operator parity workflows
This commit is contained in:
@@ -4378,6 +4378,11 @@
|
||||
}
|
||||
namedPlaylistConfirmationModal.hidden = false;
|
||||
lockNamedPlaylistControls();
|
||||
// The confirmation can open immediately after a correlated DB refresh or
|
||||
// selection receipt. Re-establish its own controls here so a transient
|
||||
// busy render cannot leave the affirmative action stale-disabled.
|
||||
namedPlaylistConfirmationYes.disabled = false;
|
||||
namedPlaylistConfirmationNo.disabled = false;
|
||||
syncModalFocus();
|
||||
return true;
|
||||
}
|
||||
@@ -4496,8 +4501,11 @@
|
||||
namedPlaylistDeleteButton.disabled = modalLocked || named.canDelete !== true;
|
||||
namedPlaylistConfirmButton.disabled = modalLocked ||
|
||||
(namedPlaylistMode === "save" ? named.canSave !== true : named.canLoad !== true);
|
||||
namedPlaylistConfirmationYes.disabled = operatorMutationLocked || uiBusy ||
|
||||
pendingNamedPlaylistCommand !== null ||
|
||||
// A PROGRAM auto-refresh can begin between pointer-down and pointer-up.
|
||||
// Keep the already-open confirmation clickable through unrelated busy
|
||||
// state; the native ordered gate serializes the request and performs the
|
||||
// authoritative mutation-safety check before any database write.
|
||||
namedPlaylistConfirmationYes.disabled = pendingNamedPlaylistCommand !== null ||
|
||||
!!(namedPlaylistState && namedPlaylistState.isWriteInProgress === true);
|
||||
if (deferredSelectionAction) {
|
||||
runNamedPlaylistDoubleClick(
|
||||
@@ -4921,7 +4929,10 @@
|
||||
dialogCaption.textContent = state.dialog.caption || "MmoneyCoder";
|
||||
dialogMessage.textContent = state.dialog.message;
|
||||
dialogOk.textContent = legacyDialogIsConfirmation ? "예" : "확인";
|
||||
dialogOk.disabled = state.isBusy === true;
|
||||
// A one-button result alert is safe to acknowledge while an unrelated
|
||||
// refresh is finishing. Disabling it between pointer-down and pointer-up
|
||||
// swallowed real operator clicks; native dispatch now queues one dismissal.
|
||||
dialogOk.disabled = legacyDialogIsConfirmation && state.isBusy === true;
|
||||
dialogNo.hidden = !legacyDialogIsConfirmation;
|
||||
dialogNo.disabled = state.isBusy === true;
|
||||
if (dialog.hidden) rememberModalOpener(legacyAlertDialog);
|
||||
|
||||
Reference in New Issue
Block a user