import { snackbarActions } from 'store/snackbar/snackbar-actions';
import { SnackbarKind } from '../snackbar/snackbar-actions';
import { showWorkflowDetails } from 'store/workflow-panel/workflow-panel-actions';
-import { loadSubprocessPanel } from "../subprocess-panel/subprocess-panel-actions";
+import { loadSubprocessPanel, subprocessPanelActions } from "../subprocess-panel/subprocess-panel-actions";
import { initProcessLogsPanel, processLogsPanelActions } from "store/process-logs-panel/process-logs-panel-actions";
import { CollectionFile } from "models/collection-file";
import { ContainerRequestResource } from "models/container-request";
import { getIOParamDisplayValue, ProcessIOParameter } from "views/process-panel/process-io-card";
import { OutputDetails, NodeInstanceType, NodeInfo } from "./process-panel";
import { AuthState } from "store/auth/auth-reducer";
-import { CommonService } from "services/common-service/common-service";
-import { camelCase } from "lodash";
export const processPanelActions = unionize({
RESET_PROCESS_PANEL: ofType<{}>(),
export const toggleProcessPanelFilter = processPanelActions.TOGGLE_PROCESS_PANEL_FILTER;
export const loadProcessPanel = (uuid: string) =>
- async (dispatch: Dispatch) => {
+ async (dispatch: Dispatch, getState: () => RootState) => {
+ // Reset subprocess data explorer if navigating to new process
+ // Avoids resetting pagination when refreshing same process
+ if (getState().processPanel.containerRequestUuid !== uuid) {
+ dispatch(subprocessPanelActions.CLEAR());
+ }
dispatch(processPanelActions.RESET_PROCESS_PANEL());
dispatch(processLogsPanelActions.RESET_PROCESS_LOGS_PANEL());
dispatch<ProcessPanelAction>(processPanelActions.SET_PROCESS_PANEL_CONTAINER_REQUEST_UUID(uuid));
return;
};
try {
- const propsOutputs = getRawOutputs(containerRequest);
const filesPromise = services.collectionService.files(containerRequest.logUuid);
const collectionPromise = services.collectionService.get(containerRequest.logUuid);
- const [files, collection] = await Promise.all([filesPromise, collectionPromise]);
+ const [files] = await Promise.all([filesPromise, collectionPromise]);
// Fetch node.json from keep
const nodeFile = files.find((file) => file.name === 'node.json') as CollectionFile | undefined;
let nodeData = nodeFile ? await services.collectionService.getFileContents(nodeFile) : undefined;
if (nodeData && (nodeData = JSON.parse(nodeData))) {
dispatch<ProcessPanelAction>(processPanelActions.SET_NODE_INFO({
- nodeInfo: CommonService.mapKeys(camelCase)(nodeData) as NodeInstanceType
+ nodeInfo: nodeData as NodeInstanceType
}));
} else {
dispatch<ProcessPanelAction>(processPanelActions.SET_NODE_INFO(noLog));
ProcessStatus.CANCELLED
]);
-const formatInputData = (inputs: CommandInputParameter[], auth: AuthState): ProcessIOParameter[] => {
+export const formatInputData = (inputs: CommandInputParameter[], auth: AuthState): ProcessIOParameter[] => {
return inputs.map(input => {
return {
id: getIOParamId(input),
});
};
-const formatOutputData = (definitions: CommandOutputParameter[], values: any, pdh: string | undefined, auth: AuthState): ProcessIOParameter[] => {
+export const formatOutputData = (definitions: CommandOutputParameter[], values: any, pdh: string | undefined, auth: AuthState): ProcessIOParameter[] => {
return definitions.map(output => {
return {
id: getIOParamId(output),