11<script setup lang="ts">
2- import { faArrowRight , faCog , faInfoCircle , faSitemap } from " @fortawesome/free-solid-svg-icons" ;
2+ import { faReadme } from " @fortawesome/free-brands-svg-icons" ;
3+ import { faArrowRight , faCog , faSitemap } from " @fortawesome/free-solid-svg-icons" ;
34import { FontAwesomeIcon } from " @fortawesome/vue-fontawesome" ;
4- import { BAlert , BButton , BButtonGroup , BCard , BFormCheckbox , BOverlay } from " bootstrap-vue" ;
5+ import { BAlert , BButton , BButtonGroup , BFormCheckbox , BOverlay } from " bootstrap-vue" ;
56import { storeToRefs } from " pinia" ;
67import { computed , ref , watch } from " vue" ;
78
89import { isWorkflowInput } from " @/components/Workflow/constants" ;
910import { useConfig } from " @/composables/config" ;
10- import { useMarkdown } from " @/composables/markdown" ;
1111import { usePersistentToggle } from " @/composables/persistentToggle" ;
1212import { usePanels } from " @/composables/usePanels" ;
13+ import { useWorkflowInstance } from " @/composables/useWorkflowInstance" ;
1314import { provideScopedWorkflowStores } from " @/composables/workflowStores" ;
1415import { useHistoryStore } from " @/stores/historyStore" ;
1516import { errorMessageAsString } from " @/utils/simple-error" ;
@@ -18,6 +19,7 @@ import { invokeWorkflow } from "./services";
1819
1920import WorkflowAnnotation from " ../WorkflowAnnotation.vue" ;
2021import WorkflowNavigationTitle from " ../WorkflowNavigationTitle.vue" ;
22+ import WorkflowHelpDisplay from " ./WorkflowHelpDisplay.vue" ;
2123import WorkflowRunGraph from " ./WorkflowRunGraph.vue" ;
2224import WorkflowStorageConfiguration from " ./WorkflowStorageConfiguration.vue" ;
2325import Heading from " @/components/Common/Heading.vue" ;
@@ -60,22 +62,29 @@ const splitObjectStore = ref(false);
6062const preferredObjectStoreId = ref <string | null >(null );
6163const preferredIntermediateObjectStoreId = ref <string | null >(null );
6264const waitingForRequest = ref (false );
63- const showRightPanel = ref <" help" | " graph" | null >(! showPanels . value && props . model . runData . help ? " help " : null );
65+ const showRightPanel = ref <" help" | " graph" | null >(null );
6466
6567const showGraph = computed (() => showRightPanel .value === " graph" );
6668const showHelp = computed (() => showRightPanel .value === " help" );
6769
68- const { renderMarkdown } = useMarkdown ({
69- openLinksInNewPage: true ,
70- removeNewlinesAfterList: true ,
71- increaseHeadingLevelBy: 2 ,
72- });
73-
7470const { toggled : showRuntimeSettingsPanel, toggle : toggleRuntimeSettings } =
7571 usePersistentToggle (" workflow-run-settings-panel" );
7672
7773const { changingCurrentHistory } = storeToRefs (useHistoryStore ());
7874
75+ // Workflow REAME/help panel setup
76+ const { workflow, loading : workflowLoading } = useWorkflowInstance (props .model .runData .workflow_id );
77+ watch (
78+ () => workflow .value ,
79+ (workflow ) => {
80+ if (workflow ) {
81+ // once the workflow loads, and if we are not showing panels, show the help if it exists by default
82+ showRightPanel .value = ! showPanels .value && workflow .readme ? " help" : null ;
83+ }
84+ },
85+ { immediate: true }
86+ );
87+
7988watch (
8089 () => showGraph .value ,
8190 (show ) => {
@@ -233,14 +242,14 @@ async function onExecute() {
233242 <FontAwesomeIcon :icon =" faSitemap" fixed-width />
234243 </BButton >
235244 <BButton
236- v-if =" model.runData .help"
245+ v-if =" workflow?.readme || workflow? .help"
237246 v-b-tooltip.hover.noninteractive.html
238247 size =" sm"
239248 :title =" !showHelp ? 'Show workflow help' : 'Hide workflow help'"
240249 variant =" link"
241250 :pressed =" showHelp"
242251 @click =" showRightPanel = showHelp ? null : 'help'" >
243- <FontAwesomeIcon :icon =" faInfoCircle " fixed-width />
252+ <FontAwesomeIcon :icon =" faReadme " fixed-width />
244253 </BButton >
245254 <BButton
246255 v-b-tooltip.hover.noninteractive
@@ -312,7 +321,11 @@ async function onExecute() {
312321 </div >
313322 </div >
314323
315- <WorkflowAnnotation :workflow-id =" model.runData.workflow_id" :history-id =" model.historyId" show-details />
324+ <WorkflowAnnotation
325+ :workflow-id =" model.runData.workflow_id"
326+ :history-id =" model.historyId"
327+ show-details
328+ :hide-hr =" Boolean(showRightPanel)" />
316329
317330 <div class =" overflow-auto h-100" >
318331 <div class =" d-flex h-100" >
@@ -347,11 +360,7 @@ async function onExecute() {
347360 :form-inputs =" formInputs" />
348361 <div v-else-if =" showHelp" class =" d-flex flex-column" >
349362 <Heading class =" sticky-top" h2 separator bold size =" sm" > Help </Heading >
350- <BCard class =" mx-1 flex-grow-1 overflow-auto" >
351- <!-- eslint-disable-next-line vue/no-v-html -->
352- <p class =" container" v-html =" renderMarkdown(model.runData.help)" />
353- <div class =" py-2 text-center" >- End of help -</div >
354- </BCard >
363+ <WorkflowHelpDisplay :workflow =" workflow" :loading =" workflowLoading" />
355364 </div >
356365 </div >
357366 </div >
0 commit comments