diff --git a/src/api/workflowApi.ts b/src/api/workflowApi.ts index 083cf3e..26e2367 100644 --- a/src/api/workflowApi.ts +++ b/src/api/workflowApi.ts @@ -414,7 +414,12 @@ export async function fetchWorkflow( export async function createWorkflow( request: ApiRequestFunction, instanceId: string, - body: { label: string; graph: Automation2Graph; invocations?: WorkflowEntryPoint[] } + body: { + label: string; + graph: Automation2Graph; + invocations?: WorkflowEntryPoint[]; + targetFeatureInstanceId?: string | null; + } ): Promise { return await request({ url: `/api/workflows/${instanceId}/workflows`, @@ -433,6 +438,7 @@ export async function updateWorkflow( invocations?: WorkflowEntryPoint[]; active?: boolean; notifyOnFailure?: boolean; + targetFeatureInstanceId?: string | null; } ): Promise { return await request({ diff --git a/src/pages/views/trustee/TrusteeAnalyseView.tsx b/src/pages/views/trustee/TrusteeAnalyseView.tsx index 8b12b87..a2f96b7 100644 --- a/src/pages/views/trustee/TrusteeAnalyseView.tsx +++ b/src/pages/views/trustee/TrusteeAnalyseView.tsx @@ -122,9 +122,6 @@ export const TrusteeAnalyseView: React.FC = () => { const pollTimerRef = useRef(null); const isPollingRef = useRef(false); - const [resultText, setResultText] = useState(null); - const [resultDocuments, setResultDocuments] = useState>([]); - const [budgetFileId, setBudgetFileId] = useState(null); const [budgetFileName, setBudgetFileName] = useState(null); const [uploading, setUploading] = useState(false); @@ -203,12 +200,6 @@ export const TrusteeAnalyseView: React.FC = () => { if (running.length === 0 && completed.length === steps.length && steps.length > 0) { setRunState('completed'); _stopPolling(); - const lastStep = [...steps].reverse().find((s) => s.status === 'completed' && s.output); - if (lastStep?.output) { - setResultText(lastStep.output.response || lastStep.output.context || null); - const docs = lastStep.output.documents || lastStep.output.documentList || []; - setResultDocuments(Array.isArray(docs) ? docs : []); - } showSuccess(t('Abgeschlossen'), t('Analyse-Workflow erfolgreich beendet.')); return; } @@ -235,25 +226,6 @@ export const TrusteeAnalyseView: React.FC = () => { useEffect(() => () => { _stopPolling(); }, [_stopPolling]); - const _extractResults = useCallback((nodeOutputs: Record) => { - const analyseOut = nodeOutputs?.analyse || nodeOutputs?.result; - if (!analyseOut) { - for (const key of Object.keys(nodeOutputs || {})) { - const v = nodeOutputs[key]; - if (v && typeof v === 'object' && (v.response || v.documents)) { - setResultText(v.response || v.context || null); - const docs = v.documents || v.documentList || []; - setResultDocuments(Array.isArray(docs) ? docs : []); - return; - } - } - return; - } - setResultText(analyseOut.response || analyseOut.context || null); - const docs = analyseOut.documents || analyseOut.documentList || []; - setResultDocuments(Array.isArray(docs) ? docs : []); - }, []); - // Reset run state when tab changes useEffect(() => { _stopPolling(); @@ -261,8 +233,6 @@ export const TrusteeAnalyseView: React.FC = () => { setRunId(null); setRunSummary(''); setRunError(null); - setResultText(null); - setResultDocuments([]); }, [activeTab, _stopPolling]); const _handleBudgetUpload = useCallback(async (e: React.ChangeEvent) => { @@ -305,8 +275,6 @@ export const TrusteeAnalyseView: React.FC = () => { setRunState('starting'); setRunError(null); setRunSummary(t('Workflow wird gestartet…')); - setResultText(null); - setResultDocuments([]); try { const executeBody: Record = { workflowId: wf.id }; const payload: Record = { @@ -326,9 +294,6 @@ export const TrusteeAnalyseView: React.FC = () => { } else if (res?.data?.success) { setRunState('completed'); setRunSummary(t('Workflow synchron abgeschlossen.')); - if (res.data.nodeOutputs) { - _extractResults(res.data.nodeOutputs); - } showSuccess(t('Abgeschlossen'), t('Analyse-Workflow erfolgreich beendet.')); } else { throw new Error(res?.data?.error || t('Unerwartete Antwort'));