pramod_Task-#398 : Added Access Permission For 'Manage Buckets' Role #159

Merged
pramod.mahajan merged 4 commits from pramod_Task-#398 into Feature_Directory 2025-05-28 19:47:44 +00:00
3 changed files with 31 additions and 18 deletions

View File

@ -1,25 +1,24 @@
import React,{useState,useEffect} from 'react' import React, { useState, useEffect } from "react";
import {useSortableData} from '../../hooks/useSortableData'; import { useSortableData } from "../../hooks/useSortableData";
const EmployeeList = ( {employees, onChange, assignedEmployee = []} ) => import Avatar from "../common/Avatar";
{ const EmployeeList = ({ employees, onChange, bucket }) => {
const [employeefiltered, setEmployeeFilter] = useState([]); const [employeefiltered, setEmployeeFilter] = useState([]);
const [employeeStatusList, setEmployeeStatusList] = useState([]); const [employeeStatusList, setEmployeeStatusList] = useState([]);
const [searchTerm, setSearchTerm] = useState(""); const [searchTerm, setSearchTerm] = useState("");
// Populate filtered list on load
useEffect(() => { useEffect(() => {
setEmployeeFilter(employees?.filter((emp) => emp.email != null) || []); setEmployeeFilter(employees?.filter((emp) => emp.email != null) || []);
}, [employees]); }, [employees]);
// Initialize checked employees based on assignedEmployee prop // Initialize checked employees based on assignedEmployee prop
useEffect(() => { useEffect(() => {
if (Array.isArray(assignedEmployee)) { if (Array.isArray(bucket?.employeeIds)) {
const initialStatus = assignedEmployee.map((id) => ({ const initialStatus = bucket?.employeeIds?.map((id) => ({
employeeId: id, employeeId: id,
isActive: true, isActive: true,
})); }));
setEmployeeStatusList(initialStatus); setEmployeeStatusList(initialStatus);
} }
}, [assignedEmployee]); }, [bucket]);
// Send updated list to parent // Send updated list to parent
useEffect(() => { useEffect(() => {
@ -66,7 +65,8 @@ const EmployeeList = ( {employees, onChange, assignedEmployee = []} ) =>
}; };
const filteredEmployees = sortedEmployees?.filter((employee) => { const filteredEmployees = sortedEmployees?.filter((employee) => {
const fullName = `${employee?.firstName} ${employee?.lastName}`?.toLowerCase(); const fullName =
`${employee?.firstName} ${employee?.lastName}`?.toLowerCase();
return fullName.includes(searchTerm.toLowerCase()); return fullName.includes(searchTerm.toLowerCase());
}); });
return ( return (
@ -121,18 +121,25 @@ const EmployeeList = ( {employees, onChange, assignedEmployee = []} ) =>
filteredEmployees?.map((employee) => ( filteredEmployees?.map((employee) => (
<tr key={employee.id}> <tr key={employee.id}>
<td> <td>
<div className="d-flex align-items-start text-start"> <div className="d-flex align-items-center text-start">
<input <input
className="form-check-input me-3 mt-1" className="form-check-input me-3 mt-1"
type="checkbox" type="checkbox"
checked={isChecked(employee.id)} checked={isChecked(employee.id)}
onChange={() => handleCheckboxChange(employee.id)} onChange={() => handleCheckboxChange(employee?.id)}
disabled={bucket?.createdBy?.id === employee?.id}
/> />
<div>
<p className="fw-normal mb-0"> <Avatar
{`${employee.firstName} ${employee.lastName}`} size="xs"
</p> classAvatar="m-0"
</div> firstName={employee.firstName}
lastName={employee.lastName}
/>
<span
className="text-truncate mx-0"
style={{ maxWidth: "150px" }}
>{`${employee.firstName} ${employee.lastName}`}</span>
</div> </div>
</td> </td>
<td className="text-start"> <td className="text-start">

View File

@ -12,7 +12,7 @@ const ListViewDirectory = ({IsActive, contact,setSelectedContact,setIsOpenModal,
setOpen_contact(contact); setOpen_contact(contact);
} }
}}> }}>
<div className="d-flex align-items-center gap-2"> <div className="d-flex align-items-center">
<Avatar <Avatar
size="xs" size="xs"
classAvatar="m-0" classAvatar="m-0"

View File

@ -26,3 +26,9 @@ export const MANAGE_TASK = "08752f33-3b29-4816-b76b-ea8a968ed3c5"
export const VIEW_TASK = "9fcc5f87-25e3-4846-90ac-67a71ab92e3c" export const VIEW_TASK = "9fcc5f87-25e3-4846-90ac-67a71ab92e3c"
export const ASSIGN_REPORT_TASK = "6a32379b-8b3f-49a6-8c48-4b7ac1b55dc2" export const ASSIGN_REPORT_TASK = "6a32379b-8b3f-49a6-8c48-4b7ac1b55dc2"
export const DIRECTORY_ADMIN = "4286a13b-bb40-4879-8c6d-18e9e393beda"
export const DIRECTORY_MANAGER = "62668630-13ce-4f52-a0f0-db38af2230c5"
export const DIRECTORY_USER = "0f919170-92d4-4337-abd3-49b66fc871bb"