diff --git a/src/components/graph/DomWidgets.vue b/src/components/graph/DomWidgets.vue index 2dddf172a..468b90673 100644 --- a/src/components/graph/DomWidgets.vue +++ b/src/components/graph/DomWidgets.vue @@ -12,7 +12,8 @@ diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index e4cf189ad..40e53e581 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -70,7 +70,7 @@ import { usePaste } from '@/composables/usePaste' import { useWorkflowAutoSave } from '@/composables/useWorkflowAutoSave' import { useWorkflowPersistence } from '@/composables/useWorkflowPersistence' import { CORE_SETTINGS } from '@/constants/coreSettings' -import { i18n } from '@/i18n' +import { i18n, t } from '@/i18n' import type { NodeId } from '@/schemas/comfyWorkflowSchema' import { UnauthorizedError, api } from '@/scripts/api' import { app as comfyApp } from '@/scripts/app' @@ -230,7 +230,7 @@ useEventListener( () => { toastStore.add({ severity: 'warn', - summary: 'No items selected', + summary: t('toastMessages.nothingSelected'), life: 2000 }) }, diff --git a/src/locales/en/main.json b/src/locales/en/main.json index 7804610b1..20ddb5629 100644 --- a/src/locales/en/main.json +++ b/src/locales/en/main.json @@ -1260,7 +1260,8 @@ "failedToAccessBillingPortal": "Failed to access billing portal: {error}", "failedToPurchaseCredits": "Failed to purchase credits: {error}", "unauthorizedDomain": "Your domain {domain} is not authorized to use this service. Please contact {email} to add your domain to the whitelist.", - "useApiKeyTip": "Tip: Can't access normal login? Use the Comfy API Key option." + "useApiKeyTip": "Tip: Can't access normal login? Use the Comfy API Key option.", + "nothingSelected": "Nothing selected" }, "auth": { "apiKey": { diff --git a/src/locales/es/main.json b/src/locales/es/main.json index ece00bd32..7764aa85c 100644 --- a/src/locales/es/main.json +++ b/src/locales/es/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "No hay escena 3D para exportar", "noTemplatesToExport": "No hay plantillas para exportar", "nodeDefinitionsUpdated": "Definiciones de nodos actualizadas", + "nothingSelected": "Nada seleccionado", "nothingToGroup": "Nada para agrupar", "nothingToQueue": "Nada para poner en cola", "pendingTasksDeleted": "Tareas pendientes eliminadas", diff --git a/src/locales/fr/main.json b/src/locales/fr/main.json index 03f7b78a1..a36550373 100644 --- a/src/locales/fr/main.json +++ b/src/locales/fr/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "Aucune scène 3D à exporter", "noTemplatesToExport": "Aucun modèle à exporter", "nodeDefinitionsUpdated": "Définitions de nœuds mises à jour", + "nothingSelected": "Aucune sélection", "nothingToGroup": "Rien à regrouper", "nothingToQueue": "Rien à ajouter à la file d’attente", "pendingTasksDeleted": "Tâches en attente supprimées", diff --git a/src/locales/ja/main.json b/src/locales/ja/main.json index 4c01d237e..544ac3991 100644 --- a/src/locales/ja/main.json +++ b/src/locales/ja/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "エクスポートする3Dシーンがありません", "noTemplatesToExport": "エクスポートするテンプレートがありません", "nodeDefinitionsUpdated": "ノード定義が更新されました", + "nothingSelected": "選択されていません", "nothingToGroup": "グループ化するものがありません", "nothingToQueue": "キューに追加する項目がありません", "pendingTasksDeleted": "保留中のタスクが削除されました", diff --git a/src/locales/ko/main.json b/src/locales/ko/main.json index 192c41b41..74293ccd9 100644 --- a/src/locales/ko/main.json +++ b/src/locales/ko/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "내보낼 3D 장면이 없습니다", "noTemplatesToExport": "내보낼 템플릿이 없습니다", "nodeDefinitionsUpdated": "노드 정의가 업데이트되었습니다", + "nothingSelected": "선택된 항목이 없습니다", "nothingToGroup": "그룹화할 항목이 없습니다", "nothingToQueue": "대기열에 추가할 항목이 없습니다", "pendingTasksDeleted": "보류 중인 작업이 삭제되었습니다", diff --git a/src/locales/ru/main.json b/src/locales/ru/main.json index f6ecf7e50..85063e4cf 100644 --- a/src/locales/ru/main.json +++ b/src/locales/ru/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "Нет 3D сцены для экспорта", "noTemplatesToExport": "Нет шаблонов для экспорта", "nodeDefinitionsUpdated": "Определения узлов обновлены", + "nothingSelected": "Ничего не выбрано", "nothingToGroup": "Нечего группировать", "nothingToQueue": "Нет заданий в очереди", "pendingTasksDeleted": "Ожидающие задачи удалены", diff --git a/src/locales/zh/main.json b/src/locales/zh/main.json index ebe3006bc..51896baa7 100644 --- a/src/locales/zh/main.json +++ b/src/locales/zh/main.json @@ -1334,6 +1334,7 @@ "no3dSceneToExport": "没有3D场景可以导出", "noTemplatesToExport": "没有模板可以导出", "nodeDefinitionsUpdated": "节点定义已更新", + "nothingSelected": "未选择任何内容", "nothingToGroup": "没有可分组的内容", "nothingToQueue": "没有可加入队列的内容", "pendingTasksDeleted": "待处理任务已删除", diff --git a/src/scripts/app.ts b/src/scripts/app.ts index a2fcf8e66..96062adab 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -1090,6 +1090,7 @@ export class ComfyApp { title: t('errorDialog.loadWorkflowTitle'), reportType: 'loadWorkflowError' }) + console.error(error) return } for (const node of this.graph.nodes) { @@ -1229,6 +1230,7 @@ export class ComfyApp { title: t('errorDialog.promptExecutionError'), reportType: 'promptExecutionError' }) + console.error(error) if (error instanceof PromptExecutionError) { executionStore.lastNodeErrors = error.response.node_errors ?? null diff --git a/src/utils/executionUtil.ts b/src/utils/executionUtil.ts index 75cbdde85..a7e169274 100644 --- a/src/utils/executionUtil.ts +++ b/src/utils/executionUtil.ts @@ -158,7 +158,7 @@ export const graphToPrompt = async ( if (link) { if (parent?.updateLink) { - // groupNode + // Subgraph node / groupNode callback; deprecated, should be replaced link = parent.updateLink(link) } if (link) { diff --git a/tests-ui/tests/store/workflowStore.test.ts b/tests-ui/tests/store/workflowStore.test.ts index 313be0435..096491eb1 100644 --- a/tests-ui/tests/store/workflowStore.test.ts +++ b/tests-ui/tests/store/workflowStore.test.ts @@ -271,7 +271,7 @@ describe('useWorkflowStore', () => { // Set up initial bookmark expect(workflow.path).toBe('workflows/dir/test.json') - bookmarkStore.setBookmarked(workflow.path, true) + await bookmarkStore.setBookmarked(workflow.path, true) expect(bookmarkStore.isBookmarked(workflow.path)).toBe(true) // Mock super.rename @@ -351,7 +351,7 @@ describe('useWorkflowStore', () => { vi.spyOn(workflow, 'delete').mockResolvedValue() // Bookmark the workflow - bookmarkStore.setBookmarked(workflow.path, true) + await bookmarkStore.setBookmarked(workflow.path, true) expect(bookmarkStore.isBookmarked(workflow.path)).toBe(true) // Delete the workflow