diff --git a/src/Handlers/WebSocketMessageHandler.js b/src/Handlers/WebSocketMessageHandler.js
index f3e9be1..8d578f5 100644
--- a/src/Handlers/WebSocketMessageHandler.js
+++ b/src/Handlers/WebSocketMessageHandler.js
@@ -298,6 +298,8 @@ export function handleWebSocketMessage(
// update input value
+ console.log("body", body.inputType, body.value, body.element);
+
if (body.inputType === "text") {
// html based DOM manipulation
const foundInput = document.getElementById(body.element);
@@ -306,7 +308,7 @@ export function handleWebSocketMessage(
// this timeout is needed because the previous useState for the lockedByUserId takes some milliseconds to complete
setTimeout(() => setNativeValue(foundInput, body.value), 50);
}
- } else if (body.inputType === "select") {
+ } else if (body.inputType === "select" || body.inputType === "checkbox") {
groupTasksContext.setSelectInputs((prev) => {
const newInputs = { ...prev };
diff --git a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
index 6382d4e..c539392 100644
--- a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
+++ b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
@@ -1,18 +1,20 @@
import {
Alert,
Button,
+ Checkbox,
Form,
Input,
InputNumber,
Popover,
Space,
Steps,
- Tag,
+ Typography,
notification,
} from "antd";
import { useEffect, useRef } from "react";
import { useNavigate, useParams } from "react-router-dom";
import {
+ AppStyle,
BrowserTabSession,
Constants,
FormatDatetime,
@@ -36,7 +38,11 @@ import { useWebSocketContext } from "../../../Contexts/WebSocketContext";
import { useGroupTasksContext } from "../../../Contexts/GroupTasksContext";
import { useAppContext } from "../../../Contexts/AppContext";
import { SentMessagesCommands } from "../../../Handlers/WebSocketMessageHandler";
-import { SelectMachineComponent } from "./GroupTypeSelectionModal";
+import {
+ SelectComponent,
+ SelectMachineComponent,
+} from "./GroupTypeSelectionModal";
+import { MyFormItem, MyFormItemLabel } from ".";
export default function GroupTasksViewModal({ isOpen }) {
const webSocketContext = useWebSocketContext();
@@ -727,6 +733,7 @@ function InputRequiredHandler({
taskLockedByUserId,
}) {
const { t } = useTranslation();
+ const groupTasksContext = useGroupTasksContext();
const globalInputs = JSON.parse(currentGroupTask.GlobalInputs);
const stepInputs = JSON.parse(groupTaskStepInputs);
@@ -753,19 +760,6 @@ function InputRequiredHandler({
return globalInputValue !== undefined ? globalInputValue.value : "";
};
- const getLabel = (displayName, groupTaskParameter) => {
- return groupTaskParameter.global ? (
- <>
- {displayName}
-
- {t("groupTasks.tag.global")}
-
- >
- ) : (
- displayName
- );
- };
-
let lastChange = useRef();
let typingTimer = useRef();
@@ -788,7 +782,7 @@ function InputRequiredHandler({
};
if (inputType === "text") {
- // element is only needed for text inputs for the DOM manipulation
+ // element is only needed for text and checkbox inputs for the DOM manipulation
data.element = `${currentGroupTaskId}-${step}-${groupTaskParameterName}`;
} else {
data.data = notes;
@@ -833,13 +827,11 @@ function InputRequiredHandler({
switch (groupTaskParameter.type) {
case "text":
return (
-
-
+
);
case "number":
return (
-
-
+
);
case "textarea":
return (
-
-
+
);
case "select_machine":
return (
-
-
+
+ );
+ case "checkbox":
+ return (
+ index &&
+ groupTaskParameters[index + 1].type === "checkbox"
+ ? 0
+ : AppStyle.app.margin,
+ }}
+ >
+ {
+ groupTasksContext.setSelectInputs((prevState) => ({
+ ...prevState,
+ [groupTaskParameter.parameterName]: {
+ value: e.target.checked,
+ },
+ }));
+
+ handleInputChange(
+ "checkbox",
+ e.target.checked,
+ currentGroupTask.Id,
+ groupTaskParameter.parameterName
+ );
+ }}
+ >
+ {console.log("checked", groupTaskStepInputs)}
+
+
+
+ );
+ case "select":
+ return (
+
+
+ handleInputChange(
+ "select",
+ value,
+ currentGroupTask.Id,
+ groupTaskParameter.parameterName
+ )
+ }
+ />
+
);
default:
return (
-
+
Type {groupTaskParameter.type} not implemented. Was
- specified in: {groupTaskParameter.displayName}
-
+ specified in: {groupTaskParameter.displayName}
+
+
);
}
})}
diff --git a/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js b/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
index 13948b6..d83a2c6 100644
--- a/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
+++ b/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
@@ -12,7 +12,7 @@ import {
Typography,
notification,
} from "antd";
-import { AppStyle, Constants, GetUuid, myFetch } from "../../../utils";
+import { AppStyle, GetUuid, myFetch } from "../../../utils";
import { InfoCircleOutlined } from "@ant-design/icons";
import TextArea from "antd/es/input/TextArea";
import { useTranslation } from "react-i18next";
@@ -20,7 +20,7 @@ import { useWebSocketContext } from "../../../Contexts/WebSocketContext";
import { useGroupTasksContext } from "../../../Contexts/GroupTasksContext";
import { SentMessagesCommands } from "../../../Handlers/WebSocketMessageHandler";
import { useEffect, useRef, useState } from "react";
-import Paragraph from "antd/es/skeleton/Paragraph";
+import { MyFormItem, MyFormItemLabel } from ".";
export default function GroupTypeSelectionModal({
isOpen,
@@ -260,10 +260,16 @@ export default function GroupTypeSelectionModal({
);
}
-export function SelectComponent({ t, globalInput }) {
+export function SelectComponent({
+ t,
+ options,
+ parameterName,
+ onSelectChange,
+ disabled,
+}) {
const groupTasksContext = useGroupTasksContext();
- if (globalInput.options === null) {
+ if (options === undefined) {
return (
Options for this input not specified in the index.json
@@ -273,23 +279,29 @@ export function SelectComponent({ t, globalInput }) {
return (