diff --git a/esp/src/src-react/components/SourceEditor.tsx b/esp/src/src-react/components/SourceEditor.tsx index adca4cd89e9..47af5122e45 100644 --- a/esp/src/src-react/components/SourceEditor.tsx +++ b/esp/src/src-react/components/SourceEditor.tsx @@ -2,6 +2,7 @@ import * as React from "react"; import { CommandBar, ContextualMenuItemType, ICommandBarItemProps, useTheme } from "@fluentui/react"; import { useConst, useOnEvent } from "@fluentui/react-hooks"; import { Editor, ECLEditor, XMLEditor, JSONEditor } from "@hpcc-js/codemirror"; +import { Workunit } from "@hpcc-js/comms"; import nlsHPCC from "src/nlsHPCC"; import { HolyGrail } from "../layouts/HolyGrail"; import { AutosizeHpccJSComponent } from "../layouts/HpccJSAdapter"; @@ -219,12 +220,14 @@ export const ECLSourceEditor: React.FunctionComponent = ({ interface FetchEditor { url: string; + wuid?: string; readonly?: boolean; mode?: "ecl" | "xml" | "text"; } export const FetchEditor: React.FunctionComponent = ({ url, + wuid, readonly = true, mode = "text" }) => { @@ -232,12 +235,19 @@ export const FetchEditor: React.FunctionComponent = ({ const [text, setText] = React.useState(""); React.useEffect(() => { - fetch(url).then(response => { - return response.text(); - }).then(content => { - setText(content); - }); - }, [url]); + if (wuid) { + const wu = Workunit.attach({ baseUrl: "" }, wuid); + wu.fetchQuery().then(function (query) { + setText(query?.Text ?? ""); + }); + } else { + fetch(url).then(response => { + return response.text(); + }).then(content => { + setText(content); + }); + } + }, [url, wuid]); return ; }; diff --git a/esp/src/src-react/components/WorkunitDetails.tsx b/esp/src/src-react/components/WorkunitDetails.tsx index f8f66be72b8..d28de9fc137 100644 --- a/esp/src/src-react/components/WorkunitDetails.tsx +++ b/esp/src/src-react/components/WorkunitDetails.tsx @@ -103,7 +103,7 @@ export const WorkunitDetails: React.FunctionComponent = ({ {state ? - : + : } diff --git a/esp/src/src/ECLArchiveWidget.ts b/esp/src/src/ECLArchiveWidget.ts index eb28fcacd3f..7741afa794c 100644 --- a/esp/src/src/ECLArchiveWidget.ts +++ b/esp/src/src/ECLArchiveWidget.ts @@ -131,7 +131,7 @@ export class ECLArchiveWidget { const wu = Workunit.attach({ baseUrl: "" }, params.Wuid); wu.fetchQuery().then(function (query) { - context.editor.text(query.Text); + context.editor.text(query?.Text ?? ""); if (!wu.HasArchiveQuery) { context.archiveViewer .addWidget(context.editor)