(
-
- {description}
-
- ),
- },
- {
- title: "Step",
- dataIndex: "step",
- key: "step",
- },
- {
- title: "Status",
- dataIndex: "status",
- key: "status",
- },
- {
- title: "Started At",
- dataIndex: "startedAt",
- key: "startedAt",
- },
- {
- title: "Ended At",
- dataIndex: "endedAt",
- key: "endedAt",
- },
- {
- title: "Duration",
- dataIndex: "duration",
- key: "duration",
- },
- {
- title: "Action",
- dataIndex: "action",
- key: "action",
- render: (_, record) => (
-
-
- View
-
-
- ),
- },
-];
+import { useTranslation } from "react-i18next";
export default function GroupTaskTableList({
categoryGroup,
@@ -91,19 +29,110 @@ export default function GroupTaskTableList({
groupTasks,
}) {
const webSocketContext = useContext(WebSocketContext);
+ const { t } = useTranslation();
+
+ const getTableColumns = () => {
+ return [
+ {
+ title: t("groupTasks.groupTasksTableList.column.creator"),
+ dataIndex: "creator",
+ key: "creator",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.groupName"),
+ dataIndex: "groupName",
+ key: "groupName",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.description"),
+ dataIndex: "description",
+ key: "description",
+ ellipsis: {
+ showTitle: false,
+ },
+ render: (description) => (
+
+ {description}
+
+ ),
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.step"),
+ dataIndex: "step",
+ key: "step",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.status"),
+ dataIndex: "status",
+ key: "status",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.startedAt"),
+ dataIndex: "startedAt",
+ key: "startedAt",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.endedAt"),
+ dataIndex: "endedAt",
+ key: "endedAt",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.duration"),
+ dataIndex: "duration",
+ key: "duration",
+ },
+ {
+ title: t("groupTasks.groupTasksTableList.column.action"),
+ dataIndex: "action",
+ key: "action",
+ render: (_, record) => (
+
+
+ {t("groupTasks.groupTasksTableList.column.action.view")}
+
+
+ ),
+ },
+ ];
+ };
const getStatusBadge = (status) => {
switch (status) {
case Constants.GROUP_TASKS_STATUS.FINISHED:
- return ;
+ return (
+
+ );
case Constants.GROUP_TASKS_STATUS.RUNNING:
- return ;
+ return (
+
+ );
case Constants.GROUP_TASKS_STATUS.CANCELED:
- return ;
+ return (
+
+ );
case Constants.GROUP_TASKS_STATUS.FAILED:
- return ;
+ return (
+
+ );
case Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED:
- return ;
+ return (
+
+ );
default:
return ;
}
@@ -188,7 +217,7 @@ export default function GroupTaskTableList({
icon={}
onClick={() => showGroupTypeSelectionModal(categoryGroup)}
>
- New task
+ {t("groupTasks.groupTasksTableList.button.newTask")}
)}
@@ -199,17 +228,20 @@ export default function GroupTaskTableList({
) && (
handleOnConfirm(categoryGroup.category)}
>
- }>Reload
+ }>
+ {t("groupTasks.groupTasksTableList.button.reload")}
+
)}
)}
-
+
>
);
}
diff --git a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
index 494df2a..3e81953 100644
--- a/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
+++ b/src/Pages/GroupTasks/Overview/GroupTasksViewModal.js
@@ -33,6 +33,7 @@ import {
} from "@ant-design/icons";
import { StlViewer } from "react-stl-viewer";
import TextArea from "antd/es/input/TextArea";
+import { useTranslation } from "react-i18next";
export default function GroupTasksViewModal({ isOpen }) {
const webSocketContext = useContext(WebSocketContext);
@@ -40,6 +41,7 @@ export default function GroupTasksViewModal({ isOpen }) {
const [notificationApi, notificationContextHolder] =
notification.useNotification();
let { paramGroupTaskId } = useParams();
+ const { t } = useTranslation();
const handleCancel = () => navigate(Constants.ROUTE_PATHS.GROUP_TASKS);
let currentGroupTask;
@@ -60,7 +62,10 @@ export default function GroupTasksViewModal({ isOpen }) {
onCancel={handleCancel}
footer={}
>
- {" "}
+ {" "}
);
}
@@ -85,15 +90,17 @@ export default function GroupTasksViewModal({ isOpen }) {
const getAlertMessage = (status) => {
switch (status) {
case Constants.GROUP_TASKS_STATUS.FINISHED:
- return "Success";
+ return t("groupTasks.groupTasksViewModal.alertMessage.successful");
case Constants.GROUP_TASKS_STATUS.RUNNING:
- return "Task is running";
+ return t("groupTasks.groupTasksViewModal.alertMessage.taskIsRunning");
case Constants.GROUP_TASKS_STATUS.CANCELED:
- return "Task cancelled";
+ return t("groupTasks.groupTasksViewModal.alertMessage.taskCanceled");
case Constants.GROUP_TASKS_STATUS.FAILED:
- return "Task failed";
+ return t("groupTasks.groupTasksViewModal.alertMessage.taskFailed");
case Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED:
- return "Input required";
+ return t(
+ "groupTasks.groupTasksViewModal.alertMessage.taskInputRequired"
+ );
default:
return "Alert message not found";
}
@@ -180,8 +187,12 @@ export default function GroupTasksViewModal({ isOpen }) {
if (!canTaskContinued) {
notificationApi["error"]({
- message: `Inputs cannot be empty`,
- description: `Please fill in all inputs`,
+ message: t(
+ "groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.message"
+ ),
+ description: t(
+ "groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.description"
+ ),
});
return;
}
@@ -211,7 +222,7 @@ export default function GroupTasksViewModal({ isOpen }) {
handleTaskFailedTryAgainRunTaskStep(taskStepId, index + 1)
}
>
- Try again
+ {t("groupTasks.groupTasksViewModal.button.tryAgain")}
);
case Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED:
@@ -221,7 +232,7 @@ export default function GroupTasksViewModal({ isOpen }) {
disabled={taskLocked}
onClick={() => handleTaskContinueTaskStep(taskStepId, index + 1)}
>
- Continue
+ {t("groupTasks.groupTasksViewModal.button.continue")}
);
default:
@@ -241,8 +252,6 @@ export default function GroupTasksViewModal({ isOpen }) {
groupTaskSteps.sort((a, b) => a.Step - b.Step);
- console.log("currentGroupTask", currentGroupTask.NumberOfSteps);
-
webSocketContext.CategoryGroups.forEach((categoryGroup) => {
if (categoryGroup.category === currentGroupTask.Category) {
categoryGroup.groups.forEach((group) => {
@@ -253,8 +262,6 @@ export default function GroupTasksViewModal({ isOpen }) {
}
});
- console.log("groupTasks", groupTasks, groupTaskSteps);
-
const getStepItem = (groupTask, index) => {
return {
key: index,
@@ -276,7 +283,9 @@ export default function GroupTasksViewModal({ isOpen }) {
color: Constants.COLORS.SECONDARY,
}}
>
- Specified Task Inputs
+ {t(
+ "groupTasks.groupTasksViewModal.popover.specifiedTaskInputs"
+ )}
}
content={
@@ -340,17 +349,17 @@ export default function GroupTasksViewModal({ isOpen }) {
groupTaskSteps[index] !== undefined ? (
<>
- Id: {groupTaskSteps[index].Id}
+ ID: {groupTaskSteps[index].Id}
- Started at:{" "}
+ {t("groupTasks.groupTasksViewModal.startedAt")}:{" "}
{FormatDatetime(groupTaskSteps[index].StartedAt)}
- Ended at:{" "}
+ {t("groupTasks.groupTasksViewModal.endedAt")}:{" "}
{groupTaskSteps[index].EndedAt !== "0001-01-01T00:00:00Z"
? FormatDatetime(groupTaskSteps[index].EndedAt)
: Constants.TEXT_EMPTY_PLACEHOLDER}
- Duration:{" "}
+ {t("groupTasks.groupTasksViewModal.duration")}:{" "}
{GetDuration(
groupTaskSteps[index].StartedAt,
groupTaskSteps[index].EndedAt
@@ -456,7 +465,7 @@ export default function GroupTasksViewModal({ isOpen }) {
width="70%"
onCancel={handleCancel}
maskClosable={false}
- footer={}
+ footer={}
>
{notificationContextHolder}
{webSocketContext.GroupTasks.map((groupTask) => {
@@ -482,7 +491,7 @@ export default function GroupTasksViewModal({ isOpen }) {
color: Constants.COLORS.SECONDARY,
}}
>
- Details
+ {t("groupTasks.groupTasksViewModal.popover.details")}
}
content={
@@ -491,22 +500,22 @@ export default function GroupTasksViewModal({ isOpen }) {
ID:{" "}
{paramGroupTaskId}
- Category:
+ {t("groupTasks.groupTasksViewModal.category")}:
{" "}
{currentGroupTask.Category}
- Started at:
+ {t("groupTasks.groupTasksViewModal.startedAt")}:
{" "}
{FormatDatetime(currentGroupTask.StartedAt)}
- Endet at:
+ {t("groupTasks.groupTasksViewModal.endedAt")}:
{" "}
{FormatDatetime(currentGroupTask.EndedAt)}
- Duration:
+ {t("groupTasks.groupTasksViewModal.duration")}:
{" "}
{GetDuration(
currentGroupTask.StartedAt,
@@ -522,7 +531,9 @@ export default function GroupTasksViewModal({ isOpen }) {
color: Constants.COLORS.SECONDARY,
}}
>
- Specified Global Inputs
+ {t(
+ "groupTasks.groupTasksViewModal.popover.specifiedGlobalInputs"
+ )}
@@ -610,6 +621,7 @@ function InputRequiredHandler({
step,
taskLockedByUserId,
}) {
+ const { t } = useTranslation();
const [inputFields, setInputFields] = useState({});
const globalInputs = JSON.parse(currentGroupTask.GlobalInputs);
@@ -642,7 +654,7 @@ function InputRequiredHandler({
<>
{displayName}
- Global
+ {t("groupTasks.tag.global")}
>
) : (
@@ -783,8 +795,16 @@ function InputRequiredHandler({
);
default:
notificationApi["error"]({
- message: `Type ${groupTaskParameter.type} not implemented`,
- description: `Was specified in: ${groupTaskParameter.displayName}`,
+ message: t(
+ "groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.message",
+ { groupTaskParameterType: groupTaskParameter.type }
+ ),
+ description: t(
+ "groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.description",
+ {
+ groupTaskParameterDisplayName: groupTaskParameter.displayName,
+ }
+ ),
});
return (
diff --git a/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js b/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
index 84aa2a6..1f93e03 100644
--- a/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
+++ b/src/Pages/GroupTasks/Overview/GroupTypeSelectionModal.js
@@ -18,6 +18,7 @@ import {
import { useContext } from "react";
import { InfoCircleOutlined } from "@ant-design/icons";
import TextArea from "antd/es/input/TextArea";
+import { useTranslation } from "react-i18next";
export default function GroupTypeSelectionModal({
isOpen,
@@ -29,6 +30,7 @@ export default function GroupTypeSelectionModal({
const [notificationApi, notificationContextHolder] =
notification.useNotification();
const webSocketContext = useContext(WebSocketContext);
+ const { t } = useTranslation();
const handleCancel = () => setIsOpen(false);
const isStartTaskPossible = () => {
@@ -108,8 +110,12 @@ export default function GroupTypeSelectionModal({
if (!canTaskBeStarted) {
notificationApi["error"]({
- message: `Global inputs cannot be empty`,
- description: `Please fill in all global inputs`,
+ message: t(
+ "groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.message"
+ ),
+ description: t(
+ "groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.description"
+ ),
});
return;
}
@@ -144,7 +150,7 @@ export default function GroupTypeSelectionModal({
return (
,
]}
>
{notificationContextHolder}