Implemented signalr in assign team tab in project details
This commit is contained in:
parent
250c1bf2e1
commit
e6a461c2ab
@ -117,7 +117,7 @@ const MapUsers = ({
|
|||||||
<div className="modal-dialog modal-dialog-scrollable mx-sm-auto mx-1 modal-lg modal-simple modal-edit-user">
|
<div className="modal-dialog modal-dialog-scrollable mx-sm-auto mx-1 modal-lg modal-simple modal-edit-user">
|
||||||
<div className="modal-content">
|
<div className="modal-content">
|
||||||
<div className="modal-header text-center">
|
<div className="modal-header text-center">
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
|
<button type="button" className="btn-close" data-bs-dismiss="modal" aria-label="Close">
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<p className="m-0 fw-semibold fs-5">Assign Employee</p>
|
<p className="m-0 fw-semibold fs-5">Assign Employee</p>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useState, useEffect } from "react";
|
import React, { useState, useEffect, useCallback } from "react";
|
||||||
import MapUsers from "./MapUsers";
|
import MapUsers from "./MapUsers";
|
||||||
import { Link, NavLink, useNavigate } from "react-router-dom";
|
import { Link, NavLink, useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
@ -13,6 +13,7 @@ import useMaster from "../../hooks/masterHook/useMaster";
|
|||||||
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
||||||
import { ASSIGN_TO_PROJECT } from "../../utils/constants";
|
import { ASSIGN_TO_PROJECT } from "../../utils/constants";
|
||||||
import ConfirmModal from "../common/ConfirmModal";
|
import ConfirmModal from "../common/ConfirmModal";
|
||||||
|
import eventBus from "../../services/eventBus";
|
||||||
|
|
||||||
const Teams = ({ project }) => {
|
const Teams = ({ project }) => {
|
||||||
const dispatch = useDispatch();
|
const dispatch = useDispatch();
|
||||||
@ -173,6 +174,20 @@ const Teams = ({ project }) => {
|
|||||||
}
|
}
|
||||||
const closeDeleteModal = ()=> setIsDeleteModal(false)
|
const closeDeleteModal = ()=> setIsDeleteModal(false)
|
||||||
|
|
||||||
|
const handler = useCallback(
|
||||||
|
(msg) => {
|
||||||
|
if (msg.projectIds.some((item) => item === project.id)) {
|
||||||
|
fetchEmployees();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
eventBus.on("assign_project_all", handler);
|
||||||
|
return () => eventBus.off("assign_project_all", handler);
|
||||||
|
}, [handler]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
@ -322,10 +337,10 @@ const Teams = ({ project }) => {
|
|||||||
{" "}
|
{" "}
|
||||||
{removingEmployeeId === item.id ? (
|
{removingEmployeeId === item.id ? (
|
||||||
<div
|
<div
|
||||||
class="spinner-border spinner-border-sm text-primary"
|
className="spinner-border spinner-border-sm text-primary"
|
||||||
role="status"
|
role="status"
|
||||||
>
|
>
|
||||||
<span class="visually-hidden">
|
<span className="visually-hidden">
|
||||||
Loading...
|
Loading...
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -125,7 +125,6 @@ const ProjectList = () => {
|
|||||||
indexOfLastItem
|
indexOfLastItem
|
||||||
);
|
);
|
||||||
const totalPages = Math.ceil(filteredProjects.length / itemsPerPage);
|
const totalPages = Math.ceil(filteredProjects.length / itemsPerPage);
|
||||||
console.log("filtter", currentItems);
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const tooltipTriggerList = Array.from(
|
const tooltipTriggerList = Array.from(
|
||||||
document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
document.querySelectorAll('[data-bs-toggle="tooltip"]')
|
||||||
|
@ -28,6 +28,7 @@ export function startSignalR(loggedUser) {
|
|||||||
.split("T")[0];
|
.split("T")[0];
|
||||||
connection.on("NotificationEventHandler", (data) => {
|
connection.on("NotificationEventHandler", (data) => {
|
||||||
// console.log("Notification received:", data);
|
// console.log("Notification received:", data);
|
||||||
|
// if action taken on attendance module
|
||||||
if (data.keyword == "Attendance") {
|
if (data.keyword == "Attendance") {
|
||||||
const checkIn = data.response.checkInTime.substring(0, 10);
|
const checkIn = data.response.checkInTime.substring(0, 10);
|
||||||
if (data.loginUserId != loggedUser?.employeeInfo.id) {
|
if (data.loginUserId != loggedUser?.employeeInfo.id) {
|
||||||
@ -47,10 +48,20 @@ export function startSignalR(loggedUser) {
|
|||||||
eventBus.emit("attendance_log", data);
|
eventBus.emit("attendance_log", data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// if create or update project
|
||||||
if (data.keyword == "Create_Project" || data.keyword == "Update_Project") {
|
if (data.keyword == "Create_Project" || data.keyword == "Update_Project") {
|
||||||
clearCacheKey("projectslist");
|
clearCacheKey("projectslist");
|
||||||
eventBus.emit("project", data);
|
eventBus.emit("project", data);
|
||||||
}
|
}
|
||||||
|
// if assign or deassign employee to any project
|
||||||
|
if (data.keyword == "Assign_Project") {
|
||||||
|
|
||||||
|
if(data.employeeList.some((item) => item === loggedUser?.employeeInfo.id)){
|
||||||
|
console.log("in one employee")
|
||||||
|
eventBus.emit("assign_project_one", data);
|
||||||
|
}
|
||||||
|
eventBus.emit("assign_project_all", data);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
connection
|
connection
|
||||||
|
Loading…
x
Reference in New Issue
Block a user