diff --git a/src/Pages/GroupTasks/GroupTasksViewModal.js b/src/Pages/GroupTasks/GroupTasksViewModal.js
index 9ce11d1..6629a58 100644
--- a/src/Pages/GroupTasks/GroupTasksViewModal.js
+++ b/src/Pages/GroupTasks/GroupTasksViewModal.js
@@ -236,7 +236,9 @@ export default function GroupTasksViewModal({ isOpen }) {
key: index,
title:
groupTaskSteps[index] !== undefined &&
- groupTaskSteps[index].Inputs !== "" ? (
+ groupTaskSteps[index].Inputs !== "" &&
+ groupTaskSteps[index].Status !==
+ Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED ? (
<>
{groupTask.name}{" "}
{
JSON.parse(groupTaskSteps[index].Inputs).find(
- (step) =>
- step.parameterName === task.parameterName
- ).value
+ (input) =>
+ input.parameterName === task.parameterName
+ )?.value
}
@@ -331,8 +333,6 @@ export default function GroupTasksViewModal({ isOpen }) {
)}
- {console.log(groupTaskSteps[index])}
-
@@ -357,6 +357,11 @@ export default function GroupTasksViewModal({ isOpen }) {
webSocketContext={webSocketContext}
currentGroupTask={currentGroupTask}
groupTaskParameters={groupTask.parameters}
+ groupTaskStepInputs={
+ groupTaskSteps[index] !== undefined &&
+ groupTaskSteps[index].Inputs !== "" &&
+ groupTaskSteps[index].Inputs
+ }
notificationApi={notificationApi}
step={index + 1}
taskLockedByUserId={groupTaskSteps[index].LockedByUserId}
@@ -522,6 +527,7 @@ function InputRequiredHandler({
webSocketContext,
currentGroupTask,
groupTaskParameters,
+ groupTaskStepInputs,
notificationApi,
step,
taskLockedByUserId,
@@ -529,8 +535,20 @@ function InputRequiredHandler({
const [inputFields, setInputFields] = useState({});
const globalInputs = JSON.parse(currentGroupTask.GlobalInputs);
+ const stepInputs = JSON.parse(groupTaskStepInputs);
const getDefaultValue = (groupTaskParameter) => {
+ if (stepInputs !== false) {
+ const stepInput = stepInputs.find(
+ (stepInput) =>
+ stepInput.parameterName === groupTaskParameter.parameterName
+ )?.value;
+
+ if (stepInput) {
+ return stepInput;
+ }
+ }
+
if (globalInputs === undefined || !groupTaskParameter.global) return null;
return globalInputs.find(
diff --git a/src/utils.js b/src/utils.js
index a13ce51..da50a14 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -1,6 +1,6 @@
import { UserOutlined } from "@ant-design/icons";
import { Avatar, Badge, Tooltip } from "antd";
-import { createContext, useContext, useEffect, useRef, useState } from "react";
+import { createContext, useEffect, useRef, useState } from "react";
import { useNavigate } from "react-router-dom";
import { Buffer } from "buffer";
@@ -342,11 +342,54 @@ export function WebSocketProvider({
});
break;
case ReceivedMessagesCommands.UpdateGroupTaskStepUserInputValue:
+ // html based DOM manipulation
const foundInput = document.getElementById(body.element);
if (foundInput) {
setNativeValue(foundInput, body.value);
}
+
+ // update group task step as html based DOM manipulation only works if user has no other modal open
+ setGroupTasksSteps((arr) => {
+ const newArr = [...arr];
+
+ const stepIndex = arr.findIndex(
+ (arr1) =>
+ arr1.GroupTasksId === body.groupTaskId &&
+ arr1.Step === body.step
+ );
+
+ if (stepIndex === -1) return newArr;
+
+ let inputs = [];
+
+ if (newArr[stepIndex].Inputs !== "") {
+ inputs = JSON.parse(newArr[stepIndex].Inputs);
+ }
+
+ let parameterFound = false;
+
+ for (let i = 0; i < inputs.length; i++) {
+ if (inputs[i].parameterName === body.parameterName) {
+ inputs[i].value = body.value;
+ parameterFound = true;
+ break;
+ }
+ }
+
+ if (!parameterFound) {
+ let obj = {};
+
+ obj["parameterName"] = body.parameterName;
+ obj["value"] = body.value;
+
+ inputs.push(obj);
+ }
+
+ newArr[stepIndex].Inputs = JSON.stringify(inputs);
+
+ return newArr;
+ });
break;
default: