Files
ETB/ETB-FrontEnd/node_modules/.cache/babel-loader/683a32c1c46df45991317849bd5d08c733d79f5fc948e2bac527ac10c391ed72.json
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

1 line
61 KiB
JSON

{"ast":null,"code":"var _jsxFileName = \"/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/UserManagement.tsx\",\n _s = $RefreshSig$();\nimport React, { useState } from 'react';\nimport { Grid, Paper, Typography, Box, Button, Chip, IconButton, TextField, InputAdornment, FormControl, InputLabel, Select, MenuItem, Dialog, DialogTitle, DialogContent, DialogActions, Avatar, Alert, Card, CardContent } from '@mui/material';\nimport { Search, Add, Edit, Delete } from '@mui/icons-material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { useAuth } from '../../components/Auth/AuthContext';\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst mockUsers = [{\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null,\n created: '2024-01-01',\n permissions: ['All Permissions']\n}, {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null,\n created: '2024-01-02',\n permissions: ['Incident Management', 'Problem Management', 'Change Management']\n}, {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null,\n created: '2024-01-03',\n permissions: ['Reporting', 'Management', 'Approval']\n}, {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null,\n created: '2024-01-04',\n permissions: ['Incident Management', 'Problem Management']\n}, {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null,\n created: '2024-01-05',\n permissions: ['Self-Service', 'Knowledge Base']\n}, {\n id: 6,\n username: 'auditor1',\n email: 'auditor1@company.com',\n name: 'Audit Specialist',\n role: 'AUDITOR',\n department: 'Compliance',\n lastLogin: '2024-01-14 14:20',\n status: 'active',\n avatar: null,\n created: '2024-01-06',\n permissions: ['Audit', 'Compliance', 'Reporting']\n}];\nconst UserManagement = () => {\n _s();\n var _ROLES6;\n const {\n user: currentUser\n } = useAuth();\n const [users, setUsers] = useState(mockUsers);\n const [searchTerm, setSearchTerm] = useState('');\n const [roleFilter, setRoleFilter] = useState('All');\n const [statusFilter, setStatusFilter] = useState('All');\n const [selectedUser, setSelectedUser] = useState(null);\n const [userDialogOpen, setUserDialogOpen] = useState(false);\n const [tabValue, setTabValue] = useState(0);\n const [newUser, setNewUser] = useState({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n const columns = [{\n field: 'id',\n headerName: 'ID',\n width: 80\n }, {\n field: 'avatar',\n headerName: 'Avatar',\n width: 80,\n renderCell: params => /*#__PURE__*/_jsxDEV(Avatar, {\n sx: {\n width: 32,\n height: 32,\n bgcolor: 'primary.main'\n },\n children: params.row.name.charAt(0)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 140,\n columnNumber: 9\n }, this)\n }, {\n field: 'name',\n headerName: 'Name',\n width: 200\n }, {\n field: 'username',\n headerName: 'Username',\n width: 150\n }, {\n field: 'email',\n headerName: 'Email',\n width: 250\n }, {\n field: 'role',\n headerName: 'Role',\n width: 120,\n renderCell: params => {\n var _ROLES, _ROLES2;\n return /*#__PURE__*/_jsxDEV(Chip, {\n label: ((_ROLES = ROLES[params.row.role]) === null || _ROLES === void 0 ? void 0 : _ROLES.name) || params.row.role,\n size: \"small\",\n sx: {\n bgcolor: ((_ROLES2 = ROLES[params.row.role]) === null || _ROLES2 === void 0 ? void 0 : _ROLES2.color) || 'default',\n color: 'white'\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 153,\n columnNumber: 9\n }, this);\n }\n }, {\n field: 'department',\n headerName: 'Department',\n width: 150\n }, {\n field: 'status',\n headerName: 'Status',\n width: 100,\n renderCell: params => /*#__PURE__*/_jsxDEV(Chip, {\n label: params.row.status,\n size: \"small\",\n color: params.row.status === 'active' ? 'success' : 'error'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 169,\n columnNumber: 9\n }, this)\n }, {\n field: 'lastLogin',\n headerName: 'Last Login',\n width: 150\n }, {\n field: 'actions',\n headerName: 'Actions',\n width: 120,\n renderCell: params => /*#__PURE__*/_jsxDEV(Box, {\n children: [/*#__PURE__*/_jsxDEV(IconButton, {\n size: \"small\",\n onClick: () => handleEditUser(params.row),\n children: /*#__PURE__*/_jsxDEV(Edit, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 184,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(IconButton, {\n size: \"small\",\n onClick: () => handleDeleteUser(params.row.id),\n children: /*#__PURE__*/_jsxDEV(Delete, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 187,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 9\n }, this)\n }];\n const handleEditUser = user => {\n setSelectedUser(user);\n setNewUser(user);\n setUserDialogOpen(true);\n };\n const handleDeleteUser = userId => {\n if (window.confirm('Are you sure you want to delete this user?')) {\n setUsers(users.filter(u => u.id !== userId));\n }\n };\n const handleCreateUser = () => {\n setSelectedUser(null);\n setNewUser({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n setUserDialogOpen(true);\n };\n const handleSaveUser = () => {\n if (selectedUser) {\n // Update existing user\n setUsers(users.map(u => u.id === selectedUser.id ? {\n ...u,\n ...newUser,\n id: selectedUser.id\n } : u));\n } else {\n var _ROLES3;\n // Create new user\n const newId = Math.max(...users.map(u => u.id)) + 1;\n setUsers([...users, {\n ...newUser,\n id: newId,\n lastLogin: 'Never',\n avatar: null,\n created: new Date().toISOString().split('T')[0],\n permissions: ((_ROLES3 = ROLES[newUser.role]) === null || _ROLES3 === void 0 ? void 0 : _ROLES3.permissions) || []\n }]);\n }\n setUserDialogOpen(false);\n };\n const getRoleStats = () => {\n const stats = {};\n Object.keys(ROLES).forEach(role => {\n stats[role] = users.filter(u => u.role === role).length;\n });\n return stats;\n };\n const filteredUsers = users.filter(user => {\n const matchesSearch = user.name.toLowerCase().includes(searchTerm.toLowerCase()) || user.username.toLowerCase().includes(searchTerm.toLowerCase()) || user.email.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesRole = roleFilter === 'All' || user.role === roleFilter;\n const matchesStatus = statusFilter === 'All' || user.status === statusFilter;\n return matchesSearch && matchesRole && matchesStatus;\n });\n const roleStats = getRoleStats();\n return /*#__PURE__*/_jsxDEV(Box, {\n children: [/*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n mb: 3\n },\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h4\",\n gutterBottom: true,\n children: \"User Management\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 264,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n variant: \"contained\",\n startIcon: /*#__PURE__*/_jsxDEV(Add, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 269,\n columnNumber: 22\n }, this),\n onClick: handleCreateUser,\n children: \"Add User\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 267,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 263,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 3,\n sx: {\n mb: 3\n },\n children: Object.entries(roleStats).map(([role, count]) => {\n var _ROLES4, _ROLES5;\n return /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n sm: 6,\n md: 2.4,\n children: /*#__PURE__*/_jsxDEV(Card, {\n children: /*#__PURE__*/_jsxDEV(CardContent, {\n sx: {\n textAlign: 'center'\n },\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"h4\",\n sx: {\n color: (_ROLES4 = ROLES[role]) === null || _ROLES4 === void 0 ? void 0 : _ROLES4.color\n },\n children: count\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 282,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"body2\",\n color: \"text.secondary\",\n children: (_ROLES5 = ROLES[role]) === null || _ROLES5 === void 0 ? void 0 : _ROLES5.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 281,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 280,\n columnNumber: 13\n }, this)\n }, role, false, {\n fileName: _jsxFileName,\n lineNumber: 279,\n columnNumber: 11\n }, this);\n })\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 277,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Paper, {\n sx: {\n p: 2,\n mb: 3\n },\n children: /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 2,\n alignItems: \"center\",\n children: [/*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 4,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n placeholder: \"Search users...\",\n value: searchTerm,\n onChange: e => setSearchTerm(e.target.value),\n InputProps: {\n startAdornment: /*#__PURE__*/_jsxDEV(InputAdornment, {\n position: \"start\",\n children: /*#__PURE__*/_jsxDEV(Search, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 306,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 305,\n columnNumber: 19\n }, this)\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 298,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 297,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 3,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Role\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 314,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: roleFilter,\n label: \"Role\",\n onChange: e => setRoleFilter(e.target.value),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"All\",\n children: \"All Roles\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 320,\n columnNumber: 17\n }, this), Object.entries(ROLES).map(([key, role]) => /*#__PURE__*/_jsxDEV(MenuItem, {\n value: key,\n children: role.name\n }, key, false, {\n fileName: _jsxFileName,\n lineNumber: 322,\n columnNumber: 19\n }, this))]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 315,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 313,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 312,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 3,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 329,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: statusFilter,\n label: \"Status\",\n onChange: e => setStatusFilter(e.target.value),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"All\",\n children: \"All Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 335,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"active\",\n children: \"Active\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 336,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"inactive\",\n children: \"Inactive\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 337,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 330,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 328,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 327,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 296,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 295,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Paper, {\n sx: {\n p: 2\n },\n children: /*#__PURE__*/_jsxDEV(DataGrid, {\n rows: filteredUsers,\n columns: columns,\n pageSize: 10,\n rowsPerPageOptions: [10, 25, 50],\n checkboxSelection: true,\n disableSelectionOnClick: true,\n sx: {\n height: 400\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 346,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 345,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Dialog, {\n open: userDialogOpen,\n onClose: () => setUserDialogOpen(false),\n maxWidth: \"md\",\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(DialogTitle, {\n children: selectedUser ? 'Edit User' : 'Create New User'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 359,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(DialogContent, {\n children: /*#__PURE__*/_jsxDEV(Grid, {\n container: true,\n spacing: 2,\n sx: {\n mt: 1\n },\n children: [/*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Username\",\n value: newUser.username,\n onChange: e => setNewUser(prev => ({\n ...prev,\n username: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 365,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 364,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Email\",\n type: \"email\",\n value: newUser.email,\n onChange: e => setNewUser(prev => ({\n ...prev,\n email: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 374,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 373,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Full Name\",\n value: newUser.name,\n onChange: e => setNewUser(prev => ({\n ...prev,\n name: e.target.value\n })),\n required: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 384,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 383,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(TextField, {\n fullWidth: true,\n label: \"Department\",\n value: newUser.department,\n onChange: e => setNewUser(prev => ({\n ...prev,\n department: e.target.value\n }))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 393,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 392,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n required: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Role\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 402,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: newUser.role,\n label: \"Role\",\n onChange: e => setNewUser(prev => ({\n ...prev,\n role: e.target.value\n })),\n children: Object.entries(ROLES).map(([key, role]) => /*#__PURE__*/_jsxDEV(MenuItem, {\n value: key,\n children: /*#__PURE__*/_jsxDEV(Box, {\n sx: {\n display: 'flex',\n alignItems: 'center'\n },\n children: [/*#__PURE__*/_jsxDEV(Box, {\n sx: {\n width: 12,\n height: 12,\n borderRadius: '50%',\n bgcolor: role.color,\n mr: 1\n }\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 411,\n columnNumber: 25\n }, this), role.name]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 410,\n columnNumber: 23\n }, this)\n }, key, false, {\n fileName: _jsxFileName,\n lineNumber: 409,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 403,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 401,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 400,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n md: 6,\n children: /*#__PURE__*/_jsxDEV(FormControl, {\n fullWidth: true,\n children: [/*#__PURE__*/_jsxDEV(InputLabel, {\n children: \"Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 429,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Select, {\n value: newUser.status,\n label: \"Status\",\n onChange: e => setNewUser(prev => ({\n ...prev,\n status: e.target.value\n })),\n children: [/*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"active\",\n children: \"Active\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 435,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(MenuItem, {\n value: \"inactive\",\n children: \"Inactive\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 436,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 430,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 428,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 427,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(Grid, {\n item: true,\n xs: 12,\n children: /*#__PURE__*/_jsxDEV(Alert, {\n severity: \"info\",\n children: [/*#__PURE__*/_jsxDEV(Typography, {\n variant: \"subtitle2\",\n children: \"Role Permissions:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 442,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(Typography, {\n variant: \"body2\",\n children: ((_ROLES6 = ROLES[newUser.role]) === null || _ROLES6 === void 0 ? void 0 : _ROLES6.permissions.join(', ')) || 'No permissions'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 443,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 441,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 440,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 363,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 362,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(DialogActions, {\n children: [/*#__PURE__*/_jsxDEV(Button, {\n onClick: () => setUserDialogOpen(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 451,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n variant: \"contained\",\n onClick: handleSaveUser,\n children: selectedUser ? 'Update' : 'Create'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 452,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 450,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 358,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 262,\n columnNumber: 5\n }, this);\n};\n_s(UserManagement, \"CcxCdmN7Ar7dXy0nVcsGmImSCBY=\", false, function () {\n return [useAuth];\n});\n_c = UserManagement;\nexport default UserManagement;\nvar _c;\n$RefreshReg$(_c, \"UserManagement\");","map":{"version":3,"names":["React","useState","Grid","Paper","Typography","Box","Button","Chip","IconButton","TextField","InputAdornment","FormControl","InputLabel","Select","MenuItem","Dialog","DialogTitle","DialogContent","DialogActions","Avatar","Alert","Card","CardContent","Search","Add","Edit","Delete","DataGrid","useAuth","jsxDEV","_jsxDEV","mockUsers","id","username","email","name","role","department","lastLogin","status","avatar","created","permissions","UserManagement","_s","_ROLES6","user","currentUser","users","setUsers","searchTerm","setSearchTerm","roleFilter","setRoleFilter","statusFilter","setStatusFilter","selectedUser","setSelectedUser","userDialogOpen","setUserDialogOpen","tabValue","setTabValue","newUser","setNewUser","columns","field","headerName","width","renderCell","params","sx","height","bgcolor","children","row","charAt","fileName","_jsxFileName","lineNumber","columnNumber","_ROLES","_ROLES2","label","ROLES","size","color","onClick","handleEditUser","handleDeleteUser","userId","window","confirm","filter","u","handleCreateUser","handleSaveUser","map","_ROLES3","newId","Math","max","Date","toISOString","split","getRoleStats","stats","Object","keys","forEach","length","filteredUsers","matchesSearch","toLowerCase","includes","matchesRole","matchesStatus","roleStats","display","justifyContent","alignItems","mb","variant","gutterBottom","startIcon","container","spacing","entries","count","_ROLES4","_ROLES5","item","xs","sm","md","textAlign","p","fullWidth","placeholder","value","onChange","e","target","InputProps","startAdornment","position","key","rows","pageSize","rowsPerPageOptions","checkboxSelection","disableSelectionOnClick","open","onClose","maxWidth","mt","prev","required","type","borderRadius","mr","severity","join","_c","$RefreshReg$"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/src/pages/Admin/UserManagement.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n Grid,\n Paper,\n Typography,\n Box,\n Button,\n Chip,\n IconButton,\n TextField,\n InputAdornment,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Avatar,\n Alert,\n Card,\n CardContent,\n} from '@mui/material';\nimport {\n Search,\n Add,\n Edit,\n Delete,\n} from '@mui/icons-material';\nimport { DataGrid } from '@mui/x-data-grid';\nimport { useAuth } from '../../components/Auth/AuthContext';\n\nconst mockUsers = [\n {\n id: 1,\n username: 'admin',\n email: 'admin@company.com',\n name: 'System Administrator',\n role: 'ADMIN',\n department: 'IT',\n lastLogin: '2024-01-15 10:30',\n status: 'active',\n avatar: null,\n created: '2024-01-01',\n permissions: ['All Permissions']\n },\n {\n id: 2,\n username: 'john.smith',\n email: 'john.smith@company.com',\n name: 'John Smith',\n role: 'IT_STAFF',\n department: 'Infrastructure',\n lastLogin: '2024-01-15 09:45',\n status: 'active',\n avatar: null,\n created: '2024-01-02',\n permissions: ['Incident Management', 'Problem Management', 'Change Management']\n },\n {\n id: 3,\n username: 'sarah.johnson',\n email: 'sarah.johnson@company.com',\n name: 'Sarah Johnson',\n role: 'MANAGER',\n department: 'IT Operations',\n lastLogin: '2024-01-15 08:20',\n status: 'active',\n avatar: null,\n created: '2024-01-03',\n permissions: ['Reporting', 'Management', 'Approval']\n },\n {\n id: 4,\n username: 'mike.davis',\n email: 'mike.davis@company.com',\n name: 'Mike Davis',\n role: 'IT_STAFF',\n department: 'Applications',\n lastLogin: '2024-01-14 16:30',\n status: 'active',\n avatar: null,\n created: '2024-01-04',\n permissions: ['Incident Management', 'Problem Management']\n },\n {\n id: 5,\n username: 'lisa.wilson',\n email: 'lisa.wilson@company.com',\n name: 'Lisa Wilson',\n role: 'END_USER',\n department: 'HR',\n lastLogin: '2024-01-15 11:15',\n status: 'active',\n avatar: null,\n created: '2024-01-05',\n permissions: ['Self-Service', 'Knowledge Base']\n },\n {\n id: 6,\n username: 'auditor1',\n email: 'auditor1@company.com',\n name: 'Audit Specialist',\n role: 'AUDITOR',\n department: 'Compliance',\n lastLogin: '2024-01-14 14:20',\n status: 'active',\n avatar: null,\n created: '2024-01-06',\n permissions: ['Audit', 'Compliance', 'Reporting']\n }\n];\n\nconst UserManagement: React.FC = () => {\n const { user: currentUser } = useAuth();\n const [users, setUsers] = useState(mockUsers);\n const [searchTerm, setSearchTerm] = useState('');\n const [roleFilter, setRoleFilter] = useState('All');\n const [statusFilter, setStatusFilter] = useState('All');\n const [selectedUser, setSelectedUser] = useState<any>(null);\n const [userDialogOpen, setUserDialogOpen] = useState<boolean>(false);\n const [tabValue, setTabValue] = useState<number>(0);\n const [newUser, setNewUser] = useState({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n\n const columns = [\n { field: 'id', headerName: 'ID', width: 80 },\n {\n field: 'avatar',\n headerName: 'Avatar',\n width: 80,\n renderCell: (params: any) => (\n <Avatar sx={{ width: 32, height: 32, bgcolor: 'primary.main' }}>\n {params.row.name.charAt(0)}\n </Avatar>\n ),\n },\n { field: 'name', headerName: 'Name', width: 200 },\n { field: 'username', headerName: 'Username', width: 150 },\n { field: 'email', headerName: 'Email', width: 250 },\n {\n field: 'role',\n headerName: 'Role',\n width: 120,\n renderCell: (params: any) => (\n <Chip\n label={ROLES[params.row.role as keyof typeof ROLES]?.name || params.row.role}\n size=\"small\"\n sx={{\n bgcolor: ROLES[params.row.role as keyof typeof ROLES]?.color || 'default',\n color: 'white'\n }}\n />\n ),\n },\n { field: 'department', headerName: 'Department', width: 150 },\n {\n field: 'status',\n headerName: 'Status',\n width: 100,\n renderCell: (params: any) => (\n <Chip\n label={params.row.status}\n size=\"small\"\n color={params.row.status === 'active' ? 'success' : 'error'}\n />\n ),\n },\n { field: 'lastLogin', headerName: 'Last Login', width: 150 },\n {\n field: 'actions',\n headerName: 'Actions',\n width: 120,\n renderCell: (params: any) => (\n <Box>\n <IconButton size=\"small\" onClick={() => handleEditUser(params.row)}>\n <Edit />\n </IconButton>\n <IconButton size=\"small\" onClick={() => handleDeleteUser(params.row.id)}>\n <Delete />\n </IconButton>\n </Box>\n ),\n },\n ];\n\n const handleEditUser = (user: any) => {\n setSelectedUser(user);\n setNewUser(user);\n setUserDialogOpen(true);\n };\n\n const handleDeleteUser = (userId: any) => {\n if (window.confirm('Are you sure you want to delete this user?')) {\n setUsers(users.filter(u => u.id !== userId));\n }\n };\n\n const handleCreateUser = () => {\n setSelectedUser(null);\n setNewUser({\n username: '',\n email: '',\n name: '',\n role: 'END_USER',\n department: '',\n status: 'active'\n });\n setUserDialogOpen(true);\n };\n\n const handleSaveUser = () => {\n if (selectedUser) {\n // Update existing user\n setUsers(users.map(u => u.id === selectedUser.id ? { \n ...u,\n ...newUser, \n id: selectedUser.id \n } : u));\n } else {\n // Create new user\n const newId = Math.max(...users.map(u => u.id)) + 1;\n setUsers([...users, { \n ...newUser, \n id: newId, \n lastLogin: 'Never',\n avatar: null,\n created: new Date().toISOString().split('T')[0],\n permissions: ROLES[newUser.role as keyof typeof ROLES]?.permissions || []\n }]);\n }\n setUserDialogOpen(false);\n };\n\n const getRoleStats = () => {\n const stats: { [key: string]: number } = {};\n Object.keys(ROLES).forEach(role => {\n stats[role] = users.filter(u => u.role === role).length;\n });\n return stats;\n };\n\n const filteredUsers = users.filter(user => {\n const matchesSearch = user.name.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.username.toLowerCase().includes(searchTerm.toLowerCase()) ||\n user.email.toLowerCase().includes(searchTerm.toLowerCase());\n const matchesRole = roleFilter === 'All' || user.role === roleFilter;\n const matchesStatus = statusFilter === 'All' || user.status === statusFilter;\n return matchesSearch && matchesRole && matchesStatus;\n });\n\n const roleStats = getRoleStats();\n\n return (\n <Box>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 3 }}>\n <Typography variant=\"h4\" gutterBottom>\n User Management\n </Typography>\n <Button\n variant=\"contained\"\n startIcon={<Add />}\n onClick={handleCreateUser}\n >\n Add User\n </Button>\n </Box>\n\n {/* Role Statistics */}\n <Grid container spacing={3} sx={{ mb: 3 }}>\n {Object.entries(roleStats).map(([role, count]) => (\n <Grid item xs={12} sm={6} md={2.4} key={role}>\n <Card>\n <CardContent sx={{ textAlign: 'center' }}>\n <Typography variant=\"h4\" sx={{ color: ROLES[role as keyof typeof ROLES]?.color }}>\n {count as number}\n </Typography>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {ROLES[role as keyof typeof ROLES]?.name}\n </Typography>\n </CardContent>\n </Card>\n </Grid>\n ))}\n </Grid>\n\n {/* Filters */}\n <Paper sx={{ p: 2, mb: 3 }}>\n <Grid container spacing={2} alignItems=\"center\">\n <Grid item xs={12} md={4}>\n <TextField\n fullWidth\n placeholder=\"Search users...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search />\n </InputAdornment>\n ),\n }}\n />\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Role</InputLabel>\n <Select\n value={roleFilter}\n label=\"Role\"\n onChange={(e) => setRoleFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Roles</MenuItem>\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>{role.name}</MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={3}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={statusFilter}\n label=\"Status\"\n onChange={(e) => setStatusFilter(e.target.value)}\n >\n <MenuItem value=\"All\">All Status</MenuItem>\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n </Grid>\n </Paper>\n\n {/* Users Table */}\n <Paper sx={{ p: 2 }}>\n <DataGrid\n rows={filteredUsers}\n columns={columns}\n pageSize={10}\n rowsPerPageOptions={[10, 25, 50]}\n checkboxSelection\n disableSelectionOnClick\n sx={{ height: 400 }}\n />\n </Paper>\n\n {/* User Dialog */}\n <Dialog open={userDialogOpen} onClose={() => setUserDialogOpen(false)} maxWidth=\"md\" fullWidth>\n <DialogTitle>\n {selectedUser ? 'Edit User' : 'Create New User'}\n </DialogTitle>\n <DialogContent>\n <Grid container spacing={2} sx={{ mt: 1 }}>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Username\"\n value={newUser.username}\n onChange={(e) => setNewUser(prev => ({ ...prev, username: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Email\"\n type=\"email\"\n value={newUser.email}\n onChange={(e) => setNewUser(prev => ({ ...prev, email: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Full Name\"\n value={newUser.name}\n onChange={(e) => setNewUser(prev => ({ ...prev, name: e.target.value }))}\n required\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <TextField\n fullWidth\n label=\"Department\"\n value={newUser.department}\n onChange={(e) => setNewUser(prev => ({ ...prev, department: e.target.value }))}\n />\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth required>\n <InputLabel>Role</InputLabel>\n <Select\n value={newUser.role}\n label=\"Role\"\n onChange={(e) => setNewUser(prev => ({ ...prev, role: e.target.value }))}\n >\n {Object.entries(ROLES).map(([key, role]) => (\n <MenuItem key={key} value={key}>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Box\n sx={{\n width: 12,\n height: 12,\n borderRadius: '50%',\n bgcolor: role.color,\n mr: 1,\n }}\n />\n {role.name}\n </Box>\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12} md={6}>\n <FormControl fullWidth>\n <InputLabel>Status</InputLabel>\n <Select\n value={newUser.status}\n label=\"Status\"\n onChange={(e) => setNewUser(prev => ({ ...prev, status: e.target.value }))}\n >\n <MenuItem value=\"active\">Active</MenuItem>\n <MenuItem value=\"inactive\">Inactive</MenuItem>\n </Select>\n </FormControl>\n </Grid>\n <Grid item xs={12}>\n <Alert severity=\"info\">\n <Typography variant=\"subtitle2\">Role Permissions:</Typography>\n <Typography variant=\"body2\">\n {ROLES[newUser.role as keyof typeof ROLES]?.permissions.join(', ') || 'No permissions'}\n </Typography>\n </Alert>\n </Grid>\n </Grid>\n </DialogContent>\n <DialogActions>\n <Button onClick={() => setUserDialogOpen(false)}>Cancel</Button>\n <Button variant=\"contained\" onClick={handleSaveUser}>\n {selectedUser ? 'Update' : 'Create'}\n </Button>\n </DialogActions>\n </Dialog>\n </Box>\n );\n}\n\nexport default UserManagement;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}