diff --git a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
index ddffba3f8..2c8de1c33 100644
--- a/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
+++ b/client/src/components/jobs-detail-header-actions/jobs-detail-header-actions.component.jsx
@@ -1,6 +1,6 @@
import {DownCircleFilled} from "@ant-design/icons";
import {useApolloClient, useMutation} from "@apollo/client";
-import {Button, Card, Dropdown, Form, Input, notification, Popconfirm, Popover, Select, Space,} from "antd";
+import {Button, Card, Dropdown, Form, Input, Modal, notification, Popconfirm, Popover, Select, Space,} from "antd";
import React, {useMemo, useState} from "react";
import {useTranslation} from "react-i18next";
import {connect} from "react-redux";
@@ -77,6 +77,7 @@ export function JobsDetailHeaderActions({
const history = useNavigate();
const [form] = Form.useForm();
const [loading, setLoading] = useState(false);
+ const [isCancelScheduleModalVisible, setIsCancelScheduleModalVisible] = useState(false);
const [insertAppointment] = useMutation(INSERT_MANUAL_APPT);
const [deleteJob] = useMutation(DELETE_JOB);
const [insertCsi] = useMutation(INSERT_CSI);
@@ -106,6 +107,17 @@ export function JobsDetailHeaderActions({
);
}, [job.status, bodyshop.md_ro_statuses.post_production_statuses]);
+ // Function to show modal
+ const showCancelScheduleModal = () => {
+ setIsCancelScheduleModalVisible(true);
+ };
+
+
+ // Function to handle Cancel
+ const handleCancelScheduleModalCancel = () => {
+ setIsCancelScheduleModalVisible(false);
+ };
+
const handleDuplicate = () =>
DuplicateJob(
client,
@@ -149,7 +161,6 @@ export function JobsDetailHeaderActions({
message: t("appointments.successes.created"),
});
} catch (error) {
- console.log(error);
} finally {
setLoading(false);
setVisibility(false);
@@ -459,6 +470,13 @@ export function JobsDetailHeaderActions({
});
};
+
+ // Function to handle OK
+ const handleCancelScheduleOK = async () => {
+ await form.submit(); // Assuming 'form' is the Form instance from useForm()
+ setIsCancelScheduleModalVisible(false);
+ };
+
const handleLostSaleFinish = async ({lost_sale_reason}) => {
const jobUpdate = await cancelAllAppointments({
variables: {
@@ -605,49 +623,14 @@ export function JobsDetailHeaderActions({
},
{
key: 'cancelallappointments',
+ onClick: () => {
+ if ( job.status !== bodyshop.md_ro_statuses.default_scheduled) {
+ return;
+ }
+ showCancelScheduleModal()
+ },
disabled: job.status !== bodyshop.md_ro_statuses.default_scheduled,
- label: job.status !== bodyshop.md_ro_statuses.default_scheduled ? (
- t("menus.jobsactions.cancelallappointments")
- ) : (
-
-
-
-
-
- }
- >
- {t("menus.jobsactions.cancelallappointments")}
-
- )
+ label: t("menus.jobsactions.cancelallappointments")
},
{
key: 'intake',
@@ -1004,6 +987,47 @@ export function JobsDetailHeaderActions({
return (
<>
+
+ {t("general.actions.cancel")}
+ ,
+ ,
+ ]}
+ >
+
+
+
+