diff --git a/src/app/api/fake-prev-state-opinion/route.js b/src/app/api/fake-prev-state-opinion/route.js
new file mode 100644
index 0000000..abd03e4
--- /dev/null
+++ b/src/app/api/fake-prev-state-opinion/route.js
@@ -0,0 +1,9 @@
+export async function GET() {
+ return Response.json({
+ message:
+ "به موجب این نامه، به استحضار جنابعالی می رساند، این جانب ……… از تاریخ ……… افتخار همکاری\n" +
+ "با مجموعه ……… را دارم. اما متاسفانه، به علت ………، تقاضای استعفای خود را از تاریخ ………\n" +
+ "اعلام میدارم. ضمن تشکر پیشاپیش از همکاری شما خواهشمند است، دستور اقدامات لازم در این\n" +
+ "زمینه را صادر فرمایید.",
+ });
+}
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
new file mode 100644
index 0000000..49ffa3c
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
@@ -0,0 +1,29 @@
+import { FormControl, FormHelperText, InputLabel, OutlinedInput, Stack } from "@mui/material";
+
+const DescriptionForm = ({ errors, register }) => {
+ return (
+
+
+
+ توضیحات
+
+
+
+ {errors.description ? errors.description.message : null}
+
+
+
+ );
+};
+export default DescriptionForm;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx
new file mode 100644
index 0000000..a515950
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx
@@ -0,0 +1,15 @@
+import { Button } from "@mui/material";
+
+const ManagerOrAssistantSubmit = ({ isSubmitting }) => {
+ return (
+ <>
+
+
+ >
+ );
+};
+export default ManagerOrAssistantSubmit;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
new file mode 100644
index 0000000..6197267
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
@@ -0,0 +1,25 @@
+import { Card, CardContent, CardHeader, CircularProgress, Divider, Stack, Typography } from "@mui/material";
+
+const PrevCartableOpinion = ({ message, loadingMessage, errorMessage }) => {
+ return (
+
+
+
+
+ {errorMessage ? (
+ خطا در دریافت اطلاعات !!!
+ ) : loadingMessage ? (
+
+
+ درحال دریافت اطلاعات
+
+ ) : (
+ {message}
+ )}
+
+
+
+
+ );
+};
+export default PrevCartableOpinion;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
new file mode 100644
index 0000000..f0be54c
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
@@ -0,0 +1,35 @@
+import {Card, CardContent, FormControl, FormLabel, Stack, Typography} from "@mui/material";
+
+const QuestionSafetyForm = () => {
+ return (
+
+
+
+
+
+
+ آیا ایمنی راه این طرح مورد تایید است ؟
+
+
+
+
+ دفتر حریم راه :{" "}
+
+
+ بله
+
+
+
+
+
+
+ );
+};
+export default QuestionSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx
new file mode 100644
index 0000000..64fbdb9
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx
@@ -0,0 +1,82 @@
+import { DialogActions, DialogContent, Stack } from "@mui/material";
+import StyledForm from "@/core/components/StyledForm";
+import useRequest from "@/lib/hooks/useRequest";
+import { useForm } from "react-hook-form";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { object, string } from "yup";
+import { SUBMIT_ROAD_SAFETY_FORM } from "@/core/utils/routes";
+import usePrevStateOpinion from "@/lib/hooks/usePrevStateopinion";
+import QuestionSafetyForm from "./QuestionSafetyForm";
+import PrevCartableOpinion from "./PrevCartableOpinion";
+import DescriptionForm from "./DescriptionForm";
+import ManagerOrAssistantSubmit from "./ManagerOrAssistantSubmit";
+import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
+const fakeData = {
+ id: 1,
+ shomareh_darkhast: "2124",
+ ostan: "ostan",
+ shahr: "shahr",
+ shahrestan: "shahrestan",
+ bakhsh: "bakhsh",
+ roosta: "roosta",
+ tarikh_darkhast: "tarikh_darkhast",
+ sazman: "sazman",
+ masahat_zamin: "masahat_zamin",
+ masahat_tarh: "masahat_tarh",
+ gorooh_tarh: "gorooh_tarh",
+ onvane_tarh: "onvane_tarh",
+ address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
+ file_mosavab: "file",
+ polygon: [
+ [51.515, -0.09],
+ [51.52, -0.1],
+ [51.52, -0.12],
+ ],
+};
+const validationSchema = object({
+ description: string().required("وارد کردن توضیحات الزامیست!"),
+});
+const RoadSafetyFormContext = ({ rowId, mutate, setOpenRoadSafetyForm }) => {
+ const defaultValues = {
+ description: "",
+ };
+ const requestServer = useRequest({ notification : {success : true, show : true} });
+ const { message, loadingMessage, errorMessage } = usePrevStateOpinion();
+ const {
+ register,
+ handleSubmit,
+ formState: { isSubmitting, errors },
+ } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
+ const onSubmit = async (data) => {
+ const formData = new FormData();
+ formData.append("description", data.description);
+ requestServer(`${SUBMIT_ROAD_SAFETY_FORM}/${rowId}`, "post", {
+ data: formData,
+ })
+ .then(() => {
+ setOpenRoadSafetyForm(false);
+ mutate();
+ })
+ .catch(() => {});
+ };
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+export default RoadSafetyFormContext;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/index.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/index.jsx
new file mode 100644
index 0000000..9c57473
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/RoadSafetyForm/index.jsx
@@ -0,0 +1,52 @@
+import { Dialog, IconButton, Stack, Tooltip } from "@mui/material";
+import EngineeringIcon from "@mui/icons-material/Engineering";
+import DialogTransition from "@/core/components/DialogTransition";
+import { useState } from "react";
+import { Close } from "@mui/icons-material";
+import RoadSafetyFormContext from "./RoadSafetyFormContext";
+
+const RoadSafetyForm = ({ rowId, mutate }) => {
+ const [openRoadSafetyForm, setOpenRoadSafetyForm] = useState(false);
+ return (
+
+
+ {
+ setOpenRoadSafetyForm(true);
+ }}
+ >
+
+
+
+
+
+ );
+};
+export default RoadSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx
index c2b1970..b7434f8 100644
--- a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx
@@ -1,10 +1,12 @@
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
+import RoadSafetyForm from "./RoadSafetyForm";
const RowActions = ({ row, mutate }) => {
return (
+
);
};
diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
index 82a4786..8f158d9 100644
--- a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx
@@ -8,6 +8,14 @@ import RowActions from "./RowActions";
const TaskList = () => {
const columns = useMemo(
() => [
+ {
+ accessorKey: "id",
+ header: "کد یکتا",
+ id: "id",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "notEquals",
+ },
{
accessorKey: "aplication_number",
header: "شماره درخواست",
@@ -32,6 +40,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "township",
+ header: "شهرستان",
+ id: "township",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
{
accessorKey: "city",
header: "شهر",
@@ -96,6 +112,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "state",
+ header: "وضعیت درخواست",
+ id: "state",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
],
[]
);
@@ -112,7 +136,7 @@ const TaskList = () => {
table_name={"assistantZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
- renderRowActions={({ row }) => }
+ RowActions={RowActions}
/>
>
diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
index eea9c34..7c1b0aa 100644
--- a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
@@ -31,7 +31,7 @@ const ReferFormContext = ({ setOpenReferDialog, rowId, mutate }) => {
city: "",
};
const { cities, loadingCities, errorCities } = useCities();
- const requestServer = useRequest({ auth: true });
+ const requestServer = useRequest({notification : {show : true, success : true}});
const {
control,
register,
diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
index fbb62cd..83e2f6c 100644
--- a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/TaskList.jsx
@@ -40,6 +40,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "township",
+ header: "شهرستان",
+ id: "township",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
{
accessorKey: "city",
header: "شهر",
@@ -104,6 +112,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "state",
+ header: "وضعیت درخواست",
+ id: "state",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
],
[]
);
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
new file mode 100644
index 0000000..49ffa3c
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
@@ -0,0 +1,29 @@
+import { FormControl, FormHelperText, InputLabel, OutlinedInput, Stack } from "@mui/material";
+
+const DescriptionForm = ({ errors, register }) => {
+ return (
+
+
+
+ توضیحات
+
+
+
+ {errors.description ? errors.description.message : null}
+
+
+
+ );
+};
+export default DescriptionForm;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx
new file mode 100644
index 0000000..a515950
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/ManagerOrAssistantSubmit.jsx
@@ -0,0 +1,15 @@
+import { Button } from "@mui/material";
+
+const ManagerOrAssistantSubmit = ({ isSubmitting }) => {
+ return (
+ <>
+
+
+ >
+ );
+};
+export default ManagerOrAssistantSubmit;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
new file mode 100644
index 0000000..d2587c5
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
@@ -0,0 +1,26 @@
+import { Card, CardContent, CardHeader, CircularProgress, Divider, Stack, Typography } from "@mui/material";
+import usePrevStateOpinion from "@/lib/hooks/usePrevStateopinion";
+
+const PrevCartableOpinion = ({ message, loadingMessage, errorMessage }) => {
+ return (
+
+
+
+
+ {errorMessage ? (
+ خطا در دریافت اطلاعات !!!
+ ) : loadingMessage ? (
+
+
+ درحال دریافت اطلاعات
+
+ ) : (
+ {message}
+ )}
+
+
+
+
+ );
+};
+export default PrevCartableOpinion;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
new file mode 100644
index 0000000..f0be54c
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
@@ -0,0 +1,35 @@
+import {Card, CardContent, FormControl, FormLabel, Stack, Typography} from "@mui/material";
+
+const QuestionSafetyForm = () => {
+ return (
+
+
+
+
+
+
+ آیا ایمنی راه این طرح مورد تایید است ؟
+
+
+
+
+ دفتر حریم راه :{" "}
+
+
+ بله
+
+
+
+
+
+
+ );
+};
+export default QuestionSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx
new file mode 100644
index 0000000..ba31373
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/RoadSafetyFormContext.jsx
@@ -0,0 +1,82 @@
+import { DialogActions, DialogContent, Stack } from "@mui/material";
+import StyledForm from "@/core/components/StyledForm";
+import useRequest from "@/lib/hooks/useRequest";
+import { useForm } from "react-hook-form";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { object, string } from "yup";
+import { SUBMIT_ROAD_SAFETY_FORM } from "@/core/utils/routes";
+import QuestionSafetyForm from "./QuestionSafetyForm";
+import PrevCartableOpinion from "./PrevCartableOpinion";
+import DescriptionForm from "./DescriptionForm";
+import ManagerOrAssistantSubmit from "./ManagerOrAssistantSubmit";
+import usePrevStateOpinion from "@/lib/hooks/usePrevStateopinion";
+import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
+const fakeData = {
+ id: 1,
+ shomareh_darkhast: "2124",
+ ostan: "ostan",
+ shahr: "shahr",
+ shahrestan: "shahrestan",
+ bakhsh: "bakhsh",
+ roosta: "roosta",
+ tarikh_darkhast: "tarikh_darkhast",
+ sazman: "sazman",
+ masahat_zamin: "masahat_zamin",
+ masahat_tarh: "masahat_tarh",
+ gorooh_tarh: "gorooh_tarh",
+ onvane_tarh: "onvane_tarh",
+ address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
+ file_mosavab: "file",
+ polygon: [
+ [51.515, -0.09],
+ [51.52, -0.1],
+ [51.52, -0.12],
+ ],
+};
+const validationSchema = object({
+ description: string().required("وارد کردن توضیحات الزامیست!"),
+});
+const RoadSafetyFormContext = ({ rowId, mutate, setOpenRoadSafetyForm }) => {
+ const defaultValues = {
+ description: "",
+ };
+ const requestServer = useRequest({ notification : {success : true, show : true} });
+ const { message, loadingMessage, errorMessage } = usePrevStateOpinion();
+ const {
+ register,
+ handleSubmit,
+ formState: { isSubmitting, errors },
+ } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
+ const onSubmit = async (data) => {
+ const formData = new FormData();
+ formData.append("description", data.description);
+ requestServer(`${SUBMIT_ROAD_SAFETY_FORM}/${rowId}`, "post", {
+ data: formData,
+ })
+ .then(() => {
+ setOpenRoadSafetyForm(false);
+ mutate();
+ })
+ .catch(() => {});
+ };
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+export default RoadSafetyFormContext;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/index.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/index.jsx
new file mode 100644
index 0000000..9c57473
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/RoadSafetyForm/index.jsx
@@ -0,0 +1,52 @@
+import { Dialog, IconButton, Stack, Tooltip } from "@mui/material";
+import EngineeringIcon from "@mui/icons-material/Engineering";
+import DialogTransition from "@/core/components/DialogTransition";
+import { useState } from "react";
+import { Close } from "@mui/icons-material";
+import RoadSafetyFormContext from "./RoadSafetyFormContext";
+
+const RoadSafetyForm = ({ rowId, mutate }) => {
+ const [openRoadSafetyForm, setOpenRoadSafetyForm] = useState(false);
+ return (
+
+
+ {
+ setOpenRoadSafetyForm(true);
+ }}
+ >
+
+
+
+
+
+ );
+};
+export default RoadSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx
index c2b1970..b7434f8 100644
--- a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx
@@ -1,10 +1,12 @@
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
+import RoadSafetyForm from "./RoadSafetyForm";
const RowActions = ({ row, mutate }) => {
return (
+
);
};
diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
index 396cffc..92f500b 100644
--- a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx
@@ -8,6 +8,14 @@ import RowActions from "./RowActions";
const TaskList = () => {
const columns = useMemo(
() => [
+ {
+ accessorKey: "id",
+ header: "کد یکتا",
+ id: "id",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "notEquals",
+ },
{
accessorKey: "aplication_number",
header: "شماره درخواست",
@@ -32,6 +40,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "township",
+ header: "شهرستان",
+ id: "township",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
{
accessorKey: "city",
header: "شهر",
@@ -96,6 +112,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "state",
+ header: "وضعیت درخواست",
+ id: "state",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
],
[]
);
@@ -112,7 +136,7 @@ const TaskList = () => {
table_name={"generalManagerZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
- renderRowActions={({ row }) => }
+ RowActions={RowActions}
/>
>
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
index df3ccaf..fdf9278 100644
--- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext.jsx
@@ -31,7 +31,7 @@ const ReferFormContext = ({ setOpenReferDialog, rowId, mutate }) => {
province: "",
};
const { provinces, loadingProvinces, errorProvinces } = useProvinces();
- const requestServer = useRequest({ auth: true });
+ const requestServer = useRequest({notification : {show : true, success : true}});
const {
control,
register,
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
new file mode 100644
index 0000000..49ffa3c
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/DescriptionForm.jsx
@@ -0,0 +1,29 @@
+import { FormControl, FormHelperText, InputLabel, OutlinedInput, Stack } from "@mui/material";
+
+const DescriptionForm = ({ errors, register }) => {
+ return (
+
+
+
+ توضیحات
+
+
+
+ {errors.description ? errors.description.message : null}
+
+
+
+ );
+};
+export default DescriptionForm;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
new file mode 100644
index 0000000..8d14fd0
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/PrevCartableOpinion.jsx
@@ -0,0 +1,27 @@
+import { Card, CardContent, CardHeader, CircularProgress, Divider, Stack, Typography } from "@mui/material";
+import usePrevStateOpinion from "@/lib/hooks/usePrevStateopinion";
+
+const PrevCartableOpinion = () => {
+ const { message, loadingMessage, errorMessage } = usePrevStateOpinion();
+ return (
+
+
+
+
+ {errorMessage ? (
+ خطا در دریافت اطلاعات !!!
+ ) : loadingMessage ? (
+
+
+ درحال دریافت اطلاعات
+
+ ) : (
+ {message}
+ )}
+
+
+
+
+ );
+};
+export default PrevCartableOpinion;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
new file mode 100644
index 0000000..4c5faae
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/QuestionSafetyForm.jsx
@@ -0,0 +1,57 @@
+import {
+ Card,
+ CardContent,
+ FormControl,
+ FormControlLabel,
+ FormLabel,
+ RadioGroup,
+ Stack,
+ Typography,
+} from "@mui/material";
+import Radio from "@mui/material/Radio";
+
+const QuestionSafetyForm = ({ register, errors }) => {
+ return (
+
+
+
+
+
+
+ آیا ایمنی راه این طرح مورد تایید است ؟
+
+
+
+
+ }
+ label="بله"
+ {...register("RadioGroup")}
+ />
+ }
+ label="خیر"
+ {...register("RadioGroup")}
+ />
+
+
+ {errors.RadioGroup && (
+
+ {errors.RadioGroup.message}
+
+ )}
+
+
+
+
+ );
+};
+export default QuestionSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/RoadSaftyFormContext.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/RoadSaftyFormContext.jsx
new file mode 100644
index 0000000..64ab7c7
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/RoadSaftyFormContext.jsx
@@ -0,0 +1,80 @@
+import { DialogActions, DialogContent, Stack } from "@mui/material";
+import StyledForm from "@/core/components/StyledForm";
+import useRequest from "@/lib/hooks/useRequest";
+import { useForm } from "react-hook-form";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { object, string } from "yup";
+import QuestionSafetyForm from "./QuestionSafetyForm";
+import PrevCartableOpinion from "./PrevCartableOpinion";
+import DescriptionForm from "./DescriptionForm";
+import SubmitButtonsAdmin from "./SubmitButtonsAdmin";
+import { SUBMIT_ROAD_SAFETY_FORM } from "@/core/utils/routes";
+import ApplicantRequestDetail from "@/core/components/ApplicantRequestDetail";
+const fakeData = {
+ id: 1,
+ shomareh_darkhast: "2124",
+ ostan: "ostan",
+ shahr: "shahr",
+ shahrestan: "shahrestan",
+ bakhsh: "bakhsh",
+ roosta: "roosta",
+ tarikh_darkhast: "tarikh_darkhast",
+ sazman: "sazman",
+ masahat_zamin: "masahat_zamin",
+ masahat_tarh: "masahat_tarh",
+ gorooh_tarh: "gorooh_tarh",
+ onvane_tarh: "onvane_tarh",
+ address: "کرج - فلان جا - جنب پاساژ - نزدیک اونجا - اونور خیابون - زیر رو گذر - روی زیر گذر",
+ file_mosavab: "file",
+ polygon: [
+ [51.515, -0.09],
+ [51.52, -0.1],
+ [51.52, -0.12],
+ ],
+};
+const validationSchema = object({
+ description: string().required("وارد کردن توضیحات الزامیست!"),
+ RadioGroup: string().required("تاییدیه ایمنی راه ضروریست!"),
+});
+const RoadSafetyFormContext = ({ rowId, mutate, setOpenRoadSafetyForm }) => {
+ const defaultValues = {
+ description: "",
+ RadioGroup: "",
+ };
+ const requestServer = useRequest({ notification : {success : true, show : true} });
+ const {
+ register,
+ handleSubmit,
+ formState: { isSubmitting, errors },
+ } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" });
+ const onSubmit = async (data) => {
+ const formData = new FormData();
+ formData.append("description", data.description);
+ formData.append("provinceId", data.RadioGroup);
+
+ requestServer(`${SUBMIT_ROAD_SAFETY_FORM}/${rowId}`, "post", {
+ data: formData,
+ })
+ .then(() => {
+ setOpenRoadSafetyForm(false);
+ mutate();
+ })
+ .catch(() => {});
+ };
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+export default RoadSafetyFormContext;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/SubmitButtonsAdmin.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/SubmitButtonsAdmin.jsx
new file mode 100644
index 0000000..6b46447
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/SubmitButtonsAdmin.jsx
@@ -0,0 +1,21 @@
+import { Button } from "@mui/material";
+
+const SubmitButtonsAdmin = ({ setOpenRoadSafetyForm, isSubmitting }) => {
+ return (
+ <>
+
+
+ >
+ );
+};
+export default SubmitButtonsAdmin;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/index.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/index.jsx
new file mode 100644
index 0000000..652e809
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/RoadSafetyForm/index.jsx
@@ -0,0 +1,52 @@
+import { Dialog, IconButton, Stack, Tooltip } from "@mui/material";
+import EngineeringIcon from "@mui/icons-material/Engineering";
+import DialogTransition from "@/core/components/DialogTransition";
+import { useState } from "react";
+import RoadSafetyFormContext from "./RoadSaftyFormContext";
+import { Close } from "@mui/icons-material";
+
+const RoadSafetyForm = ({ rowId, mutate }) => {
+ const [openRoadSafetyForm, setOpenRoadSafetyForm] = useState(false);
+ return (
+
+
+ {
+ setOpenRoadSafetyForm(true);
+ }}
+ >
+
+
+
+
+
+ );
+};
+export default RoadSafetyForm;
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx
index cd07b61..8da978b 100644
--- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx
@@ -1,12 +1,14 @@
import ReferForm from "./Refer";
import TaskDetail from "./TaskDetail";
import { Box } from "@mui/material";
+import RoadSafetyForm from "./RoadSafetyForm";
const RowActions = ({ row, mutate }) => {
return (
+
);
};
diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
index 2a7e7ec..550e152 100644
--- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx
@@ -40,6 +40,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "township",
+ header: "شهرستان",
+ id: "township",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
{
accessorKey: "city",
header: "شهر",
@@ -104,6 +112,14 @@ const TaskList = () => {
datatype: "text",
filterFn: "equals",
},
+ {
+ accessorKey: "state",
+ header: "وضعیت درخواست",
+ id: "state",
+ enableColumnFilter: false,
+ datatype: "text",
+ filterFn: "equals",
+ },
],
[]
);
@@ -120,7 +136,7 @@ const TaskList = () => {
table_name={"provinceAdminZaminGovList"}
enableRowActions
positionActionsColumn={"last"}
- renderRowActions={({ row }) => }
+ RowActions={RowActions}
/>
>
diff --git a/src/core/components/Toasts/success.jsx b/src/core/components/Toasts/success.jsx
index 36023c6..fc11759 100644
--- a/src/core/components/Toasts/success.jsx
+++ b/src/core/components/Toasts/success.jsx
@@ -16,7 +16,7 @@ export const successToast = (toastContainer) =>
- {"Your operation was successful"}
+ {"عملیات با موفقیت انجام شد"}
diff --git a/src/core/utils/routes.js b/src/core/utils/routes.js
index a980707..14bf801 100644
--- a/src/core/utils/routes.js
+++ b/src/core/utils/routes.js
@@ -10,3 +10,5 @@ export const REFER_ADMIN_PROVINCE = "/v3/api/fake-submit";
export const REFER_ADMIN_CITY = "/v3/api/fake-submit";
export const GET_CITY_LISTS = "/v3/api/fake-cities";
export const GET_PROVINCE_LISTS = "/v3/api/fake-provinces";
+export const GET_PREV_STATE_OPINION = "/v3/api/fake-prev-state-opinion";
+export const SUBMIT_ROAD_SAFETY_FORM = "/v3/api/fake-submit";
diff --git a/src/lib/hooks/useCities.js b/src/lib/hooks/useCities.js
index e4012b7..47bf99b 100644
--- a/src/lib/hooks/useCities.js
+++ b/src/lib/hooks/useCities.js
@@ -1,8 +1,10 @@
import { useState, useEffect } from "react";
import axios from "axios";
import { GET_CITY_LISTS } from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
const useCities = () => {
+ const requestServer = useRequest()
const [cities, setCities] = useState([]);
const [loadingCities, setLoadingCities] = useState(true);
const [errorCities, setErrorCities] = useState(null);
@@ -10,7 +12,7 @@ const useCities = () => {
useEffect(() => {
const fetchCities = async () => {
try {
- const response = await axios.get(`${GET_CITY_LISTS}`);
+ const response = await requestServer(`${GET_CITY_LISTS}`);
setCities(response.data.data);
setLoadingCities(false);
} catch (e) {
diff --git a/src/lib/hooks/usePrevStateopinion.js b/src/lib/hooks/usePrevStateopinion.js
new file mode 100644
index 0000000..f7c0d47
--- /dev/null
+++ b/src/lib/hooks/usePrevStateopinion.js
@@ -0,0 +1,31 @@
+import { useState, useEffect } from "react";
+import axios from "axios";
+import { GET_PREV_STATE_OPINION } from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
+
+const usePrevStateOpinion = () => {
+ const requestServer = useRequest()
+ const [message, setMessage] = useState([]);
+ const [loadingMessage, setLoadingMessage] = useState(true);
+ const [errorMessage, setErrorMessage] = useState(null);
+
+ useEffect(() => {
+ const fetchCities = async () => {
+ try {
+ const response = await requestServer(`${GET_PREV_STATE_OPINION}`);
+ setMessage(response.data.message);
+ setLoadingMessage(false);
+ } catch (e) {
+ console.error("Error fetching cities:", e);
+ setErrorMessage(e);
+ setLoadingMessage(false);
+ }
+ };
+
+ fetchCities();
+ }, []);
+
+ return { message, loadingMessage, errorMessage };
+};
+
+export default usePrevStateOpinion;
diff --git a/src/lib/hooks/useProvince.js b/src/lib/hooks/useProvince.js
index 699b462..b0a7dc9 100644
--- a/src/lib/hooks/useProvince.js
+++ b/src/lib/hooks/useProvince.js
@@ -1,8 +1,10 @@
import { useState, useEffect } from "react";
import axios from "axios";
import { GET_PROVINCE_LISTS } from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
const useProvinces = () => {
+ const requestServer = useRequest()
const [provinces, setProvinces] = useState([]);
const [loadingProvinces, setLoadingProvinces] = useState(true);
const [errorProvinces, setErrorProvinces] = useState(null);
@@ -10,7 +12,7 @@ const useProvinces = () => {
useEffect(() => {
const fetchCities = async () => {
try {
- const response = await axios.get(`${GET_PROVINCE_LISTS}`); // Fetch the cities from the API
+ const response = await requestServer(`${GET_PROVINCE_LISTS}`); // Fetch the cities from the API
setProvinces(response.data.data); // Set the cities data
setLoadingProvinces(false); // Set loading to false after successful fetch
} catch (e) {