diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx index 6d7829c17..42e88b22a 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/editor.tsx @@ -618,6 +618,15 @@ export function Editor() {
)} + {hasAdvancedOnlyFields && !canEditBlock && displayAdvancedOptions && ( +
+
+ + Additional fields + +
+
+ )} {advancedOnlySubBlocks.map((subBlock, index) => { const stableKey = getSubBlockStableKey( diff --git a/apps/sim/socket/handlers/subblocks.ts b/apps/sim/socket/handlers/subblocks.ts index 0c4e6e449..997f8416c 100644 --- a/apps/sim/socket/handlers/subblocks.ts +++ b/apps/sim/socket/handlers/subblocks.ts @@ -232,6 +232,7 @@ async function flushSubblockUpdate( } let updateSuccessful = false + let blockLocked = false await db.transaction(async (tx) => { const [block] = await tx .select({ @@ -250,6 +251,7 @@ async function flushSubblockUpdate( // Check if block is locked directly if (block.locked) { logger.info(`Skipping subblock update - block ${blockId} is locked`) + blockLocked = true return } @@ -266,6 +268,7 @@ async function flushSubblockUpdate( if (parentBlock?.locked) { logger.info(`Skipping subblock update - parent ${parentId} is locked`) + blockLocked = true return } } @@ -308,6 +311,13 @@ async function flushSubblockUpdate( serverTimestamp: Date.now(), }) }) + } else if (blockLocked) { + pending.opToSocket.forEach((socketId, opId) => { + io.to(socketId).emit('operation-confirmed', { + operationId: opId, + serverTimestamp: Date.now(), + }) + }) } else { pending.opToSocket.forEach((socketId, opId) => { io.to(socketId).emit('operation-failed', {