category group changes

main
alex 2023-07-01 01:49:23 +02:00
parent 0300744d22
commit 42fa527e72
5 changed files with 95 additions and 4 deletions

View File

@ -65,6 +65,9 @@
"groupTasks.groupTasksTableList.button.reload": "Neu laden", "groupTasks.groupTasksTableList.button.reload": "Neu laden",
"groupTasks.groupTasksTableList.popover.title": "Sind Sie sicher, dass Sie die Gruppenkonfigurationen neu laden wollen?", "groupTasks.groupTasksTableList.popover.title": "Sind Sie sicher, dass Sie die Gruppenkonfigurationen neu laden wollen?",
"groupTasks.groupTasksTableList.popover.buttonOk": "Ja", "groupTasks.groupTasksTableList.popover.buttonOk": "Ja",
"groupTasks.button.checkingForCategoryGroupChanges": "Prüfung auf Änderungen der Kategoriegruppen",
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title": "Sind Sie sicher, dass Sie die Kategoriegruppen prüfen wollen? (Während der Prüfung schaut der Server nach neuen Kategoriegruppen und löscht ggf. nicht mehr vorhandene)",
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk": "Prüfen",
"logCard.popover.groupTaskId.title": "Gruppenaufgabe", "logCard.popover.groupTaskId.title": "Gruppenaufgabe",
"logCard.popover.groupTaskStep.title": "Gruppenaufgabe Schritt", "logCard.popover.groupTaskStep.title": "Gruppenaufgabe Schritt",
"logCard.popover.role.title": "Rolle", "logCard.popover.role.title": "Rolle",

View File

@ -65,6 +65,9 @@
"groupTasks.groupTasksTableList.button.reload": "Reload", "groupTasks.groupTasksTableList.button.reload": "Reload",
"groupTasks.groupTasksTableList.popover.title": "Are you sure you want to reload the group configs?", "groupTasks.groupTasksTableList.popover.title": "Are you sure you want to reload the group configs?",
"groupTasks.groupTasksTableList.popover.buttonOk": "Yes", "groupTasks.groupTasksTableList.popover.buttonOk": "Yes",
"groupTasks.button.checkingForCategoryGroupChanges": "Checking for changes to the category groups",
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title": "Are you sure you want to check the category groups? (During the check, the server looks for new category groups and deletes any that no longer exist)",
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk": "Verify",
"logCard.popover.groupTaskId.title": "Group Task", "logCard.popover.groupTaskId.title": "Group Task",
"logCard.popover.groupTaskStep.title": "Group Task Step", "logCard.popover.groupTaskStep.title": "Group Task Step",
"logCard.popover.role.title": "Role", "logCard.popover.role.title": "Role",

View File

@ -901,7 +901,6 @@ function GroupTaskStepLogHandler({ currentGroupTaskId, log, files }) {
{getTag(nonImageFile)} {getTag(nonImageFile)}
</div> </div>
); );
console.log("url", getDownloadUrl(nonImageFile));
} else { } else {
elements.push(getTag(nonImageFile)); elements.push(getTag(nonImageFile));
} }

View File

@ -1,10 +1,17 @@
import { Result } from "antd"; import { Button, Popconfirm, Result } from "antd";
import { useContext, useState } from "react"; import { useContext, useState } from "react";
import GroupTasksViewModal from "./GroupTasksViewModal"; import GroupTasksViewModal from "./GroupTasksViewModal";
import GroupTypeSelectionModal from "./GroupTypeSelectionModal"; import GroupTypeSelectionModal from "./GroupTypeSelectionModal";
import GroupTaskTableList from "./GroupTasksTableList"; import GroupTaskTableList from "./GroupTasksTableList";
import { Constants, WebSocketContext, hasXYPermission } from "../../../utils"; import {
Constants,
SentMessagesCommands,
WebSocketContext,
hasPermission,
hasXYPermission,
} from "../../../utils";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { ReloadOutlined } from "@ant-design/icons";
export default function GroupTasks({ isGroupTasksViewModalOpen }) { export default function GroupTasks({ isGroupTasksViewModalOpen }) {
const [isGroupTypeSelectionModalOpen, setIsGroupTypeSelectionModalOpen] = const [isGroupTypeSelectionModalOpen, setIsGroupTypeSelectionModalOpen] =
@ -30,6 +37,13 @@ export default function GroupTasks({ isGroupTasksViewModalOpen }) {
) )
); );
const onCheckingForCategoryGroupChanges = () => {
webSocketContext.SendSocketMessage(
SentMessagesCommands.GroupTasksCheckingForCategoryGroupChanges,
{}
);
};
return ( return (
<> <>
{webSocketContext.CategoryGroups.length === 0 ? ( {webSocketContext.CategoryGroups.length === 0 ? (
@ -69,6 +83,35 @@ export default function GroupTasks({ isGroupTasksViewModalOpen }) {
/> />
<GroupTasksViewModal isOpen={isGroupTasksViewModalOpen} /> <GroupTasksViewModal isOpen={isGroupTasksViewModalOpen} />
{hasPermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.GROUP_TASKS.CHECKING_FOR_CATEGORY_GROUP_CHANGES
) && (
<div
style={{
display: "flex",
justifyContent: "center",
marginTop: 20,
}}
>
<Popconfirm
placement="top"
okText={t(
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk"
)}
cancelText={t("buttonCancel")}
title={t(
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title"
)}
onConfirm={() => onCheckingForCategoryGroupChanges()}
>
<Button shape="round" icon={<ReloadOutlined />} size="large">
{t("groupTasks.button.checkingForCategoryGroupChanges")}
</Button>
</Popconfirm>
</div>
)}
</> </>
); );
} }

View File

@ -48,6 +48,8 @@ export const Constants = {
XYView: "group_tasks.overview.XY.view", XYView: "group_tasks.overview.XY.view",
}, },
HISTORY: "group_tasks.history", HISTORY: "group_tasks.history",
CHECKING_FOR_CATEGORY_GROUP_CHANGES:
"group_tasks.checking_for_category_group_changes",
}, },
ALL_USERS: { ALL_USERS: {
CREATE_NEW_USER: "all_users.create_new_user", CREATE_NEW_USER: "all_users.create_new_user",
@ -185,6 +187,7 @@ const ReceivedMessagesCommands = {
AllUsersNewUserCreated: 26, AllUsersNewUserCreated: 26,
AllUsersUserDeleted: 27, AllUsersUserDeleted: 27,
AllUsersUserDeactivation: 28, AllUsersUserDeactivation: 28,
GroupTasksCategoryGroupChanges: 29,
}; };
// commands sent to the backend server // commands sent to the backend server
@ -205,6 +208,7 @@ export const SentMessagesCommands = {
AllUsersUserDeactivation: 14, AllUsersUserDeactivation: 14,
ScannersUseScanners: 15, ScannersUseScanners: 15,
ScannersDisconnectScanner: 16, ScannersDisconnectScanner: 16,
GroupTasksCheckingForCategoryGroupChanges: 17,
}; };
export function WebSocketProvider({ export function WebSocketProvider({
@ -341,12 +345,49 @@ export function WebSocketProvider({
}); });
break; break;
case ReceivedMessagesCommands.GroupTasksReloaded: case ReceivedMessagesCommands.GroupTasksReloaded:
if (body.RemovedCategory !== undefined) {
setCategoryGroups((arr) =>
arr.filter((arr1) => arr1.category !== body.RemovedCategory)
);
setUser((user) => {
const updatedUser = { ...user };
updatedUser.Permissions = updatedUser.Permissions.filter(
(arr) => !body.RemovedPermissions.some((a) => a === arr)
);
return updatedUser;
});
setAdminAreaRolesPermissions((arr) => {
const newArr = [...arr];
newArr.forEach((role, i) => {
if (role.Permissions !== null) {
newArr[i].Permissions = role.Permissions.filter(
(b) => !body.RemovedPermissions.some((c) => c === b)
);
}
});
return newArr;
});
notificationApi["info"]({
message: `Category ${body.RemovedCategory} was removed`,
duration: 2,
});
break;
}
setCategoryGroups((arr) => { setCategoryGroups((arr) => {
const newArr = [...arr]; const newArr = [...arr];
newArr[ newArr[
arr.findIndex((arr1) => arr1.category === body.Category) arr.findIndex((arr1) => arr1.category === body.Category)
].groups = body.UpdatedGroups; ].groups = body.CategoryGroups;
return newArr; return newArr;
}); });
@ -826,6 +867,8 @@ export function WebSocketProvider({
return newArr; return newArr;
}); });
break; break;
case ReceivedMessagesCommands.GroupTasksCategoryGroupChanges:
break;
default: default:
console.error("unknown command", cmd); console.error("unknown command", cmd);