This commit is contained in:
@@ -335,6 +335,7 @@ exports.getExternalEmployeesList = async (req, res) => {
|
|||||||
httpsAgent: HR_INSECURE_HTTPS_AGENT
|
httpsAgent: HR_INSECURE_HTTPS_AGENT
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
console.log("[HR Integration] /employees/list response:", response?.data);
|
||||||
const list = Array.isArray(response?.data) ? response.data : [];
|
const list = Array.isArray(response?.data) ? response.data : [];
|
||||||
res.send(list);
|
res.send(list);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|||||||
@@ -178,7 +178,6 @@ const EmployeeList = () => {
|
|||||||
<div className="col-md-12 text-primary">
|
<div className="col-md-12 text-primary">
|
||||||
<h5>
|
<h5>
|
||||||
All Employees
|
All Employees
|
||||||
<button className="btn btn-link btn-sm" onClick={() => {redirectToAdmin()}}>Back</button>
|
|
||||||
{AuthService.canAddOrEditEmployees() && (
|
{AuthService.canAddOrEditEmployees() && (
|
||||||
<button className="btn btn-primary btn-sm ms-2" onClick={() => goToCreate()}>
|
<button className="btn btn-primary btn-sm ms-2" onClick={() => goToCreate()}>
|
||||||
Add New Employee
|
Add New Employee
|
||||||
|
|||||||
@@ -11,11 +11,12 @@ const ExternalEmployeesImport = () => {
|
|||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [saving, setSaving] = useState(false);
|
const [saving, setSaving] = useState(false);
|
||||||
const [employees, setEmployees] = useState([]);
|
const [employees, setEmployees] = useState([]);
|
||||||
const [siteFilter, setSiteFilter] = useState(EventsService.site || 3);
|
const [siteFilter, setSiteFilter] = useState('all');
|
||||||
const [keyword, setKeyword] = useState("");
|
const [keyword, setKeyword] = useState("");
|
||||||
const [showPermissionModal, setShowPermissionModal] = useState(false);
|
const [showPermissionModal, setShowPermissionModal] = useState(false);
|
||||||
const [selectedEmployee, setSelectedEmployee] = useState(undefined);
|
const [selectedEmployee, setSelectedEmployee] = useState(undefined);
|
||||||
const [selectedPermissions, setSelectedPermissions] = useState([SYSTEM_ACCESS_PERMISSION]);
|
const [selectedPermissions, setSelectedPermissions] = useState([SYSTEM_ACCESS_PERMISSION]);
|
||||||
|
const [selectedAllowSite, setSelectedAllowSite] = useState(EventsService.site || 3);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!AuthService.canAddOrEditEmployees()) {
|
if (!AuthService.canAddOrEditEmployees()) {
|
||||||
@@ -42,9 +43,8 @@ const ExternalEmployeesImport = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const filteredEmployees = useMemo(() => {
|
const filteredEmployees = useMemo(() => {
|
||||||
const siteNumber = Number(siteFilter);
|
|
||||||
return (employees || [])
|
return (employees || [])
|
||||||
.filter((item) => Number(item?.site) === siteNumber)
|
.filter((item) => siteFilter === 'all' || Number(item?.site) === Number(siteFilter))
|
||||||
.filter((item) => {
|
.filter((item) => {
|
||||||
if (!keyword) return true;
|
if (!keyword) return true;
|
||||||
const key = keyword.toLowerCase();
|
const key = keyword.toLowerCase();
|
||||||
@@ -57,8 +57,11 @@ const ExternalEmployeesImport = () => {
|
|||||||
}, [employees, siteFilter, keyword]);
|
}, [employees, siteFilter, keyword]);
|
||||||
|
|
||||||
const openPermissionModal = (employee) => {
|
const openPermissionModal = (employee) => {
|
||||||
const allowSite = Number(siteFilter);
|
const allowSite = siteFilter === 'all'
|
||||||
|
? (Number(employee?.site) || EventsService.site || 3)
|
||||||
|
: Number(siteFilter);
|
||||||
setSelectedEmployee(employee);
|
setSelectedEmployee(employee);
|
||||||
|
setSelectedAllowSite(allowSite);
|
||||||
setSelectedPermissions([SYSTEM_ACCESS_PERMISSION]);
|
setSelectedPermissions([SYSTEM_ACCESS_PERMISSION]);
|
||||||
setShowPermissionModal(true);
|
setShowPermissionModal(true);
|
||||||
EmployeeService.getExternalUserPermission(employee?.employee_id, allowSite)
|
EmployeeService.getExternalUserPermission(employee?.employee_id, allowSite)
|
||||||
@@ -77,6 +80,7 @@ const ExternalEmployeesImport = () => {
|
|||||||
setShowPermissionModal(false);
|
setShowPermissionModal(false);
|
||||||
setSelectedEmployee(undefined);
|
setSelectedEmployee(undefined);
|
||||||
setSelectedPermissions([SYSTEM_ACCESS_PERMISSION]);
|
setSelectedPermissions([SYSTEM_ACCESS_PERMISSION]);
|
||||||
|
setSelectedAllowSite(EventsService.site || 3);
|
||||||
};
|
};
|
||||||
|
|
||||||
const togglePermission = (permissionKey) => {
|
const togglePermission = (permissionKey) => {
|
||||||
@@ -97,7 +101,7 @@ const ExternalEmployeesImport = () => {
|
|||||||
username: selectedEmployee.username || "",
|
username: selectedEmployee.username || "",
|
||||||
name: selectedEmployee.name || "",
|
name: selectedEmployee.name || "",
|
||||||
email: selectedEmployee.email || "",
|
email: selectedEmployee.email || "",
|
||||||
allow_site: Number(siteFilter),
|
allow_site: Number(selectedAllowSite),
|
||||||
permissions: selectedPermissions
|
permissions: selectedPermissions
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
@@ -130,8 +134,9 @@ const ExternalEmployeesImport = () => {
|
|||||||
<select
|
<select
|
||||||
className="ms-2"
|
className="ms-2"
|
||||||
value={siteFilter}
|
value={siteFilter}
|
||||||
onChange={(e) => setSiteFilter(Number(e.currentTarget.value))}
|
onChange={(e) => setSiteFilter(e.currentTarget.value)}
|
||||||
>
|
>
|
||||||
|
<option value="all">All Sites</option>
|
||||||
<option value={1}>Site 1</option>
|
<option value={1}>Site 1</option>
|
||||||
<option value={2}>Site 2</option>
|
<option value={2}>Site 2</option>
|
||||||
<option value={3}>Site 3</option>
|
<option value={3}>Site 3</option>
|
||||||
@@ -198,7 +203,7 @@ const ExternalEmployeesImport = () => {
|
|||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body>
|
<Modal.Body>
|
||||||
<div className="mb-3">
|
<div className="mb-3">
|
||||||
<strong>Allow Site:</strong> {siteFilter}
|
<strong>Allow Site:</strong> {selectedAllowSite}
|
||||||
</div>
|
</div>
|
||||||
{Object.entries(EMPLOYEE_PERMISSION_GROUPS).map(([groupName, permissionItems]) => (
|
{Object.entries(EMPLOYEE_PERMISSION_GROUPS).map(([groupName, permissionItems]) => (
|
||||||
<div key={groupName} className="mb-3">
|
<div key={groupName} className="mb-3">
|
||||||
|
|||||||
Reference in New Issue
Block a user