categories

main
alex 2023-08-29 07:31:18 +02:00
parent dcad1eab9e
commit a3601906c8
8 changed files with 54 additions and 31 deletions

View File

@ -29,7 +29,7 @@
"equipmentDocumentation": "Gerätedokumentation", "equipmentDocumentation": "Gerätedokumentation",
"groupTasks": { "groupTasks": {
"menuCategory": "Gruppenaufgaben", "menuCategory": "Gruppenaufgaben",
"overview": "Gruppenaufgaben", "overview": "Kategorien",
"history": "Verlauf" "history": "Verlauf"
}, },
"adminArea": { "adminArea": {

View File

@ -29,7 +29,7 @@
"equipmentDocumentation": "Equipment Documentation", "equipmentDocumentation": "Equipment Documentation",
"groupTasks": { "groupTasks": {
"menuCategory": "Group Tasks", "menuCategory": "Group Tasks",
"overview": "Group Tasks", "overview": "Categories",
"history": "History" "history": "History"
}, },
"adminArea": { "adminArea": {

View File

@ -48,6 +48,17 @@ function SuspenseFallback({ children }) {
export default function AppRoutes() { export default function AppRoutes() {
const appContext = useAppContext(); const appContext = useAppContext();
/*
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS_VIEW + ":paramGroupTaskId"}
element={
<SuspenseFallback>
<GroupTasks isGroupTasksViewModalOpen={true} />
</SuspenseFallback>
}
/>
*/
console.info("appRoutes"); console.info("appRoutes");
return ( return (
@ -122,7 +133,7 @@ export default function AppRoutes() {
)} )}
<Route <Route
path={Constants.ROUTE_PATHS.GROUP_TASKS} path={`${Constants.ROUTE_PATHS.GROUP_TASKS_VIEW}:paramCategory`}
element={ element={
<SuspenseFallback> <SuspenseFallback>
<GroupTasks isGroupTasksViewModalOpen={false} /> <GroupTasks isGroupTasksViewModalOpen={false} />
@ -130,15 +141,6 @@ export default function AppRoutes() {
} }
/> />
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS_VIEW + ":paramGroupTaskId"}
element={
<SuspenseFallback>
<GroupTasks isGroupTasksViewModalOpen={true} />
</SuspenseFallback>
}
/>
{hasPermission( {hasPermission(
appContext.userPermissions, appContext.userPermissions,
Constants.PERMISSIONS.GROUP_TASKS.HISTORY Constants.PERMISSIONS.GROUP_TASKS.HISTORY

View File

@ -51,6 +51,7 @@ export default function SideMenu({
}; };
const getFirstMenuItems = () => { const getFirstMenuItems = () => {
// dashboard
let items = [ let items = [
{ {
label: t("sideMenu.dashboard"), label: t("sideMenu.dashboard"),
@ -59,6 +60,7 @@ export default function SideMenu({
}, },
]; ];
// equipment documentation
if ( if (
hasPermission( hasPermission(
appContext.userPermissions, appContext.userPermissions,
@ -72,37 +74,52 @@ export default function SideMenu({
}); });
} }
let groupTasks = { // group tasks
let groupTasksGroup = {
label: t("sideMenu.groupTasks.menuCategory"), label: t("sideMenu.groupTasks.menuCategory"),
type: "group", type: "group",
children: [ icon: <SnippetsOutlined />,
{ key: "/group-tasks",
label: t("sideMenu.groupTasks.overview"), children: [],
icon: <SnippetsOutlined />,
key: "/group-tasks",
},
],
}; };
let groupTasks = {
label: t("sideMenu.groupTasks.overview"),
icon: <SnippetsOutlined />,
children: [],
};
for (let i = 0; i < sideBarContext.availableCategoryGroups.length; i++) {
groupTasks.children.push({
label: sideBarContext.availableCategoryGroups[i],
icon: <SnippetsOutlined />,
key: `/group-tasks/${sideBarContext.availableCategoryGroups[i]}`,
});
}
groupTasksGroup.children.push(groupTasks);
if ( if (
hasPermission( hasPermission(
appContext.userPermissions, appContext.userPermissions,
Constants.PERMISSIONS.GROUP_TASKS.HISTORY Constants.PERMISSIONS.GROUP_TASKS.HISTORY
) )
) { ) {
groupTasks.children.push({ groupTasksGroup.children.push({
label: t("sideMenu.groupTasks.history"), label: t("sideMenu.groupTasks.history"),
icon: <HistoryOutlined />, icon: <HistoryOutlined />,
key: "/group-tasks-history", key: "/group-tasks-history",
}); });
} }
items.push(groupTasks); items.push(groupTasksGroup);
// divider
items.push({ items.push({
type: "divider", type: "divider",
}); });
// admin area
if ( if (
hasOnePermission( hasOnePermission(
appContext.userPermissions, appContext.userPermissions,
@ -158,6 +175,7 @@ export default function SideMenu({
const getSecondMenuItems = () => { const getSecondMenuItems = () => {
let items = []; let items = [];
// scanner
if ( if (
hasPermission( hasPermission(
appContext.userPermissions, appContext.userPermissions,
@ -171,6 +189,7 @@ export default function SideMenu({
}); });
} }
// connection status, userprofile, logout
items.push( items.push(
{ {
icon: ( icon: (
@ -266,7 +285,8 @@ export default function SideMenu({
<Divider /> <Divider />
<Menu <Menu
selectable={false} selectable={true}
selectedKeys={[selectedKeys]}
mode="vertical" mode="vertical"
onClick={(item) => navigate(item.key)} onClick={(item) => navigate(item.key)}
items={getSecondMenuItems()} items={getSecondMenuItems()}

View File

@ -7,7 +7,7 @@ const preview = {
selectedScanner: "", selectedScanner: "",
username: "", username: "",
avatar: "", avatar: "",
availableGroupTasks: [], availableCategoryGroups: [],
}; };
const SideBarContext = createContext(preview); const SideBarContext = createContext(preview);
@ -20,7 +20,7 @@ export default function SideBarProvider({ children }) {
const [selectedScanner, setSelectedScanner] = useState(""); const [selectedScanner, setSelectedScanner] = useState("");
const [username, setUsername] = useState(Constants.LOADING); // const [username, setUsername] = useState(Constants.LOADING); //
const [avatar, setAvatar] = useState(""); const [avatar, setAvatar] = useState("");
const [availableGroupTasks, setAvailableGroupTasks] = useState([]); const [availableCategoryGroups, setAvailableCategoryGroups] = useState([]);
return ( return (
<SideBarContext.Provider <SideBarContext.Provider
@ -35,8 +35,8 @@ export default function SideBarProvider({ children }) {
setUsername, setUsername,
avatar, avatar,
setAvatar, setAvatar,
availableGroupTasks, availableCategoryGroups,
setAvailableGroupTasks, setAvailableCategoryGroups,
}} }}
> >
{children} {children}

View File

@ -47,7 +47,7 @@ export default function WebSocketProvider({
appContext.setUsers(data.Users); appContext.setUsers(data.Users);
sideBarContext.setUsername(data.Username); sideBarContext.setUsername(data.Username);
sideBarContext.setAvatar(data.Avatar); sideBarContext.setAvatar(data.Avatar);
sideBarContext.setAvailableGroupTasks(data.AvailableGroupTasks); sideBarContext.setAvailableCategoryGroups(data.AvailableCategoryGroups);
}); });
}; };

View File

@ -15,11 +15,13 @@ import { ReloadOutlined } from "@ant-design/icons";
import { useGroupTasksContext } from "../../../Contexts/GroupTasksContext"; import { useGroupTasksContext } from "../../../Contexts/GroupTasksContext";
import { useAppContext } from "../../../Contexts/AppContext"; import { useAppContext } from "../../../Contexts/AppContext";
import { useWebSocketContext } from "../../../Contexts/WebSocketContext"; import { useWebSocketContext } from "../../../Contexts/WebSocketContext";
import { useParams } from "react-router-dom";
export default function GroupTasks({ isGroupTasksViewModalOpen }) { export default function GroupTasks({ isGroupTasksViewModalOpen }) {
const webSocketContext = useWebSocketContext(); const webSocketContext = useWebSocketContext();
const appContext = useAppContext(); const appContext = useAppContext();
const groupTasksContext = useGroupTasksContext(); const groupTasksContext = useGroupTasksContext();
const { paramCategory } = useParams();
const [isGroupTypeSelectionModalOpen, setIsGroupTypeSelectionModalOpen] = const [isGroupTypeSelectionModalOpen, setIsGroupTypeSelectionModalOpen] =
useState(false); useState(false);
@ -58,14 +60,14 @@ export default function GroupTasks({ isGroupTasksViewModalOpen }) {
}; };
useEffect(() => { useEffect(() => {
myFetch("/grouptasks", "GET").then((data) => { myFetch(`/grouptasks/${paramCategory}`, "GET").then((data) => {
console.log("group tasks", data); console.log("group tasks", data);
groupTasksContext.setCategoryGroups(data.CategoryGroups); groupTasksContext.setCategoryGroups(data.CategoryGroups);
groupTasksContext.setGroupTasks(data.GroupTasks); groupTasksContext.setGroupTasks(data.GroupTasks);
groupTasksContext.setGroupTasksSteps(data.GroupTasksSteps); groupTasksContext.setGroupTasksSteps(data.GroupTasksSteps);
}); });
}, []); }, [paramCategory]);
return ( return (
<> <>

View File

@ -47,7 +47,6 @@ export const Constants = {
ROUTE_PATHS: { ROUTE_PATHS: {
EQUIPMENT_DOCUMENTATION: "/equipment-documentation", EQUIPMENT_DOCUMENTATION: "/equipment-documentation",
EQUIPMENT_DOCUMENTATION_VIEW: "/equipment-documentation/", EQUIPMENT_DOCUMENTATION_VIEW: "/equipment-documentation/",
EQUIPMENT_DOCUMENTATION_CREATE: "/equipment-documentation/create/",
GROUP_TASKS: "/group-tasks", GROUP_TASKS: "/group-tasks",
GROUP_TASKS_VIEW: "/group-tasks/", GROUP_TASKS_VIEW: "/group-tasks/",
}, },