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