From 99cf95daf0d672b9bd9b267cbce65b030b8adf57 Mon Sep 17 00:00:00 2001 From: Allan Carr Date: Fri, 23 May 2025 16:45:24 -0700 Subject: [PATCH] IO-3246 Remote Assist Signed-off-by: Allan Carr --- .../components/header/header.component.jsx | 43 +++++++++++++------ client/src/translations/en_us/common.json | 4 +- client/src/translations/es/common.json | 5 ++- client/src/translations/fr/common.json | 5 ++- 4 files changed, 41 insertions(+), 16 deletions(-) diff --git a/client/src/components/header/header.component.jsx b/client/src/components/header/header.component.jsx index a13c258e1..d65f78496 100644 --- a/client/src/components/header/header.component.jsx +++ b/client/src/components/header/header.component.jsx @@ -15,6 +15,7 @@ import { HomeFilled, ImportOutlined, LineChartOutlined, + OneToOneOutlined, PaperClipOutlined, PhoneOutlined, PlusCircleOutlined, @@ -24,6 +25,7 @@ import { TeamOutlined, ToolFilled, UnorderedListOutlined, + UsergroupAddOutlined, UserOutlined } from "@ant-design/icons"; import { useQuery } from "@apollo/client"; @@ -40,6 +42,7 @@ import { RiSurveyLine } from "react-icons/ri"; import { connect } from "react-redux"; import { Link } from "react-router-dom"; import { createStructuredSelector } from "reselect"; +import { useSocket } from "../../contexts/SocketIO/useSocket.js"; import { GET_UNREAD_COUNT } from "../../graphql/notifications.queries.js"; import { selectRecentItems, selectSelectedHeader } from "../../redux/application/application.selectors"; import { setModalContext } from "../../redux/modals/modals.actions"; @@ -47,11 +50,10 @@ import { signOutStart } from "../../redux/user/user.actions"; import { selectBodyshop, selectCurrentUser } from "../../redux/user/user.selectors"; import day from "../../utils/day.js"; import InstanceRenderManager from "../../utils/instanceRenderMgr"; +import { useIsEmployee } from "../../utils/useIsEmployee.js"; import { HasFeatureAccess } from "../feature-wrapper/feature-wrapper.component"; import LockWrapper from "../lock-wrapper/lock-wrapper.component"; import NotificationCenterContainer from "../notification-center/notification-center.container.jsx"; -import { useSocket } from "../../contexts/SocketIO/useSocket.js"; -import { useIsEmployee } from "../../utils/useIsEmployee.js"; // Redux mappings const mapStateToProps = createStructuredSelector({ @@ -642,17 +644,32 @@ function Header({ label: t("menus.header.help"), onClick: () => window.open("https://help.imex.online/", "_blank") }, - ...(InstanceRenderManager({ imex: true, rome: false }) - ? [ - { - key: "rescue", - id: "header-rescue", - icon: , - label: t("menus.header.rescueme"), - onClick: () => window.open("https://imexrescue.com/", "_blank") - } - ] - : []), + { + key: "remoteassist", + id: "header-remote-assist", + icon: , + label: t("menus.header.remoteassist"), + children: [ + ...(InstanceRenderManager({ imex: true, rome: true }) + ? [ + { + key: "rescue", + id: "header-rescue", + icon: , + label: t("menus.header.rescueme"), + onClick: () => window.open("https://imexrescue.com/", "_blank") + } + ] + : []), + { + key: "rescue", + id: "header-rescue-zoho", + icon: , + label: t("menus.header.rescuemezoho"), + onClick: () => window.open("https://join.zoho.com/", "_blank") + } + ] + }, { key: "shiftclock", id: "header-shiftclock", diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 7d580b05e..a5b724154 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -2302,8 +2302,10 @@ "productionlist": "Production Board - List", "readyjobs": "Ready Jobs", "recent": "Recent Items", + "remoteassist": "Remote Assist", "reportcenter": "Report Center", - "rescueme": "Rescue me!", + "rescueme": "Rescue Me!", + "rescuemezoho": "Remote Me In!", "schedule": "Schedule", "scoreboard": "Scoreboard", "search": { diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 909ce1936..7651eae4b 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -2301,8 +2301,10 @@ "productionlist": "", "readyjobs": "", "recent": "", + "remoteassist": "", "reportcenter": "", "rescueme": "", + "rescuemezoho": "", "schedule": "Programar", "scoreboard": "", "search": { @@ -2498,7 +2500,8 @@ }, "tooltips": { "job-watchers": "", - "not-employee": "" + "not-employee": "", + "not-employee-notifications": "" } }, "owner": { diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index 68b8ad43e..316effe11 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -2301,8 +2301,10 @@ "productionlist": "", "readyjobs": "", "recent": "", + "remoteassist": "", "reportcenter": "", "rescueme": "", + "rescuemezoho": "", "schedule": "Programme", "scoreboard": "", "search": { @@ -2498,7 +2500,8 @@ }, "tooltips": { "job-watchers": "", - "not-employee": "" + "not-employee": "", + "not-employee-notifications": "" } }, "owner": {