fix(10.1-05): add mode: once to Execute Status nodes
Execute Workflow nodes need mode: "once" to properly pass input data to sub-workflows. Added to: - Execute Container Status - Execute Select Status - Execute Paginate Status - Execute Batch Cancel Status Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+16
-12
@@ -1810,7 +1810,7 @@
|
||||
"resource": "message",
|
||||
"operation": "sendMessage",
|
||||
"chatId": "={{ $json.message.chat.id }}",
|
||||
"text": "<b>Commands:</b>\n\n• status\n• start [name]\n• stop [name]\n• restart [name]\n• update [name]\n• logs [name]",
|
||||
"text": "<b>Commands:</b>\n\n\u2022 status\n\u2022 start [name]\n\u2022 stop [name]\n\u2022 restart [name]\n\u2022 update [name]\n\u2022 logs [name]",
|
||||
"additionalFields": {
|
||||
"parse_mode": "HTML"
|
||||
}
|
||||
@@ -3213,7 +3213,7 @@
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// Build confirmation message for update all\nconst data = $json;\nconst containers = data.containersToUpdate || [];\nconst count = data.count || 0;\n\n// Build container list (max 10 for display)\nconst displayContainers = containers.slice(0, 10);\nconst containerList = displayContainers.map(c => `• ${c.name}`).join('\\n');\nconst moreText = count > 10 ? `\\n...and ${count - 10} more` : '';\n\nconst message = `Update ${count} container${count !== 1 ? 's' : ''}?\\n\\n${containerList}${moreText}`;\n\n// Create inline keyboard\nconst timestamp = Math.floor(Date.now() / 1000);\nconst containerNames = containers.map(c => c.name).join(',');\n\n// Encode container names in callback (will need to lookup IDs later)\nreturn {\n json: {\n chatId: data.chatId,\n messageId: data.messageId,\n message: message,\n keyboard: {\n inline_keyboard: [\n [\n { text: '✅ Confirm', callback_data: `uall:confirm:${timestamp}` },\n { text: '❌ Cancel', callback_data: 'uall:cancel' }\n ]\n ]\n },\n containerNames: containerNames,\n containers: containers,\n timestamp: timestamp\n }\n};"
|
||||
"jsCode": "// Build confirmation message for update all\nconst data = $json;\nconst containers = data.containersToUpdate || [];\nconst count = data.count || 0;\n\n// Build container list (max 10 for display)\nconst displayContainers = containers.slice(0, 10);\nconst containerList = displayContainers.map(c => `\u2022 ${c.name}`).join('\\n');\nconst moreText = count > 10 ? `\\n...and ${count - 10} more` : '';\n\nconst message = `Update ${count} container${count !== 1 ? 's' : ''}?\\n\\n${containerList}${moreText}`;\n\n// Create inline keyboard\nconst timestamp = Math.floor(Date.now() / 1000);\nconst containerNames = containers.map(c => c.name).join(',');\n\n// Encode container names in callback (will need to lookup IDs later)\nreturn {\n json: {\n chatId: data.chatId,\n messageId: data.messageId,\n message: message,\n keyboard: {\n inline_keyboard: [\n [\n { text: '\u2705 Confirm', callback_data: `uall:confirm:${timestamp}` },\n { text: '\u274c Cancel', callback_data: 'uall:cancel' }\n ]\n ]\n },\n containerNames: containerNames,\n containers: containers,\n timestamp: timestamp\n }\n};"
|
||||
},
|
||||
"id": "code-build-update-all-confirmation",
|
||||
"name": "Build Update All Confirmation",
|
||||
@@ -3254,7 +3254,7 @@
|
||||
"resource": "message",
|
||||
"operation": "sendMessage",
|
||||
"chatId": "={{ $json.chatId }}",
|
||||
"text": "All containers are up to date! 🎉",
|
||||
"text": "All containers are up to date! \ud83c\udf89",
|
||||
"options": {}
|
||||
},
|
||||
"id": "telegram-send-all-up-to-date",
|
||||
@@ -3277,7 +3277,7 @@
|
||||
"resource": "callback",
|
||||
"operation": "answerQuery",
|
||||
"queryId": "={{ $json.queryId }}",
|
||||
"text": "⏱️ Confirmation expired (30s timeout)",
|
||||
"text": "\u23f1\ufe0f Confirmation expired (30s timeout)",
|
||||
"options": {
|
||||
"showAlert": true
|
||||
}
|
||||
@@ -3324,7 +3324,7 @@
|
||||
"resource": "callback",
|
||||
"operation": "answerQuery",
|
||||
"queryId": "={{ $json.queryId }}",
|
||||
"text": "❌ Update cancelled"
|
||||
"text": "\u274c Update cancelled"
|
||||
},
|
||||
"id": "telegram-answer-update-all-cancel",
|
||||
"name": "Answer Update All Cancel",
|
||||
@@ -3412,7 +3412,7 @@
|
||||
"resource": "callback",
|
||||
"operation": "answerQuery",
|
||||
"queryId": "={{ $json.queryId }}",
|
||||
"text": "✅ Starting batch update..."
|
||||
"text": "\u2705 Starting batch update..."
|
||||
},
|
||||
"id": "telegram-answer-update-all-confirm",
|
||||
"name": "Answer Update All Confirm",
|
||||
@@ -3880,7 +3880,7 @@
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsCode": "// Format logs result for inline keyboard display\nconst result = $json;\nconst data = $('Prepare Inline Logs Input').item.json;\n\nconst containerName = result.containerName;\n\n// Add timestamp to prevent 'message not modified' error on refresh\nconst timestamp = new Date().toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n});\n\n// Build inline keyboard\nconst keyboard = [\n [\n { text: '🔄 Refresh Logs', callback_data: `action:logs:${containerName}` },\n { text: '⬆️ Update', callback_data: `action:update:${containerName}` }\n ],\n [\n { text: '◀️ Back to List', callback_data: 'list:0' }\n ]\n];\n\n// Append timestamp to message\nconst messageWithTimestamp = result.message + `\\n\\n<i>Updated: ${timestamp}</i>`;\n\nreturn {\n json: {\n chatId: data.chatId,\n messageId: data.messageId,\n text: messageWithTimestamp,\n reply_markup: { inline_keyboard: keyboard }\n }\n};"
|
||||
"jsCode": "// Format logs result for inline keyboard display\nconst result = $json;\nconst data = $('Prepare Inline Logs Input').item.json;\n\nconst containerName = result.containerName;\n\n// Add timestamp to prevent 'message not modified' error on refresh\nconst timestamp = new Date().toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n});\n\n// Build inline keyboard\nconst keyboard = [\n [\n { text: '\ud83d\udd04 Refresh Logs', callback_data: `action:logs:${containerName}` },\n { text: '\u2b06\ufe0f Update', callback_data: `action:update:${containerName}` }\n ],\n [\n { text: '\u25c0\ufe0f Back to List', callback_data: 'list:0' }\n ]\n];\n\n// Append timestamp to message\nconst messageWithTimestamp = result.message + `\\n\\n<i>Updated: ${timestamp}</i>`;\n\nreturn {\n json: {\n chatId: data.chatId,\n messageId: data.messageId,\n text: messageWithTimestamp,\n reply_markup: { inline_keyboard: keyboard }\n }\n};"
|
||||
},
|
||||
"id": "b1800598-1ff6-4da3-8506-4e4e8127f902",
|
||||
"name": "Format Inline Logs Result",
|
||||
@@ -4210,7 +4210,8 @@
|
||||
},
|
||||
"options": {
|
||||
"waitForSubWorkflow": true
|
||||
}
|
||||
},
|
||||
"mode": "once"
|
||||
},
|
||||
"id": "execute-container-status",
|
||||
"name": "Execute Container Status",
|
||||
@@ -4332,7 +4333,8 @@
|
||||
},
|
||||
"options": {
|
||||
"waitForSubWorkflow": true
|
||||
}
|
||||
},
|
||||
"mode": "once"
|
||||
},
|
||||
"id": "execute-select-status",
|
||||
"name": "Execute Select Status",
|
||||
@@ -4366,7 +4368,8 @@
|
||||
},
|
||||
"options": {
|
||||
"waitForSubWorkflow": true
|
||||
}
|
||||
},
|
||||
"mode": "once"
|
||||
},
|
||||
"id": "execute-paginate-status",
|
||||
"name": "Execute Paginate Status",
|
||||
@@ -4400,7 +4403,8 @@
|
||||
},
|
||||
"options": {
|
||||
"waitForSubWorkflow": true
|
||||
}
|
||||
},
|
||||
"mode": "once"
|
||||
},
|
||||
"id": "execute-batch-cancel-status",
|
||||
"name": "Execute Batch Cancel Status",
|
||||
@@ -6537,4 +6541,4 @@
|
||||
"tags": [],
|
||||
"triggerCount": 1,
|
||||
"active": false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user