From 7267e1bc361bfb0be2fce544b7c6428a10a9f648 Mon Sep 17 00:00:00 2001 From: Mohammad Jalali Date: Tue, 24 Sep 2024 06:59:02 +0000 Subject: [PATCH] complete directory structure and adding detail dialog to other pages --- .../RowActions/TaskDetail/DetailDialog.jsx | 75 +++++++++++++++++++ .../zaminGov/RowActions/TaskDetail/index.jsx | 26 +++++++ .../assistant/zaminGov/RowActions/index.jsx | 11 +++ .../assistant/zaminGov/TaskList.jsx | 12 +-- .../zaminGov/RowActions/Refer/index.jsx | 2 +- .../RowActions/TaskDetail/DetailDialog.jsx | 75 +++++++++++++++++++ .../zaminGov/RowActions/TaskDetail/index.jsx | 26 +++++++ .../zaminGov/RowActions/index.jsx | 11 +++ .../generalManager/zaminGov/TaskList.jsx | 12 +-- .../zaminGov/RowActions/Refer/index.jsx | 2 +- .../RowActions/TaskDetail/DetailDialog.jsx | 75 +++++++++++++++++++ .../zaminGov/RowActions/TaskDetail/index.jsx | 26 +++++++ .../zaminGov/RowActions/index.jsx | 9 ++- .../provinceAdmin/zaminGov/TaskList.jsx | 7 +- .../ApplicantRequestDetail/index.jsx | 6 +- 15 files changed, 344 insertions(+), 31 deletions(-) create mode 100644 src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/DetailDialog.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/index.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/DetailDialog.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/index.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx create mode 100644 src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/index.jsx diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/DetailDialog.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/DetailDialog.jsx new file mode 100644 index 0000000..aff1058 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/DetailDialog.jsx @@ -0,0 +1,75 @@ +"use client"; + +import { Dialog, DialogContent } from "@mui/material"; +import { object, string } from "yup"; +import useRequest from "@/lib/hooks/useRequest"; +import { useForm } from "react-hook-form"; +import { yupResolver } from "@hookform/resolvers/yup"; +import StyledForm from "@/core/components/StyledForm"; +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 DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => { + const requestServer = useRequest({ auth: true }); + const defaultValues = { + description: "", + }; + const handleClose = () => { + setTaskModal(false); + }; + + const { + register, + handleSubmit, + formState: { isSubmitting, errors, touchedFields }, + } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" }); + + const onSubmit = async (data) => { + const formData = new FormData(); + formData.append("description", data.description); + requestServer(`api-for-send-to-harim/${rowId}`, "post", { + data: formData, + }) + .then(() => { + handleClose(); + mutate(); + }) + .catch(() => {}); + }; + return ( + + + + + + + + ); +}; +export default DetailDialog; diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/index.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/index.jsx new file mode 100644 index 0000000..24f6b31 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/TaskDetail/index.jsx @@ -0,0 +1,26 @@ +"use client"; + +import { IconButton, Tooltip } from "@mui/material"; +import AssignmentIcon from "@mui/icons-material/Assignment"; +import DetailDialog from "./DetailDialog"; +import { useState } from "react"; + +const TaskDetail = ({ rowId, mutate }) => { + const [taskModal, setTaskModal] = useState(false); + + const openDetailDialog = () => { + setTaskModal(true); + }; + + return ( + <> + + + + + + + + ); +}; +export default TaskDetail; diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx new file mode 100644 index 0000000..c2b1970 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/RowActions/index.jsx @@ -0,0 +1,11 @@ +import TaskDetail from "./TaskDetail"; +import { Box } from "@mui/material"; + +const RowActions = ({ row, mutate }) => { + return ( + + + + ); +}; +export default RowActions; diff --git a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx index cff837e..82a4786 100644 --- a/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx +++ b/src/components/dashboard/inquiryPrivacy/assistant/zaminGov/TaskList.jsx @@ -1,9 +1,9 @@ "use client"; import { useMemo } from "react"; -import { Box, IconButton, Tooltip } from "@mui/material"; +import { Box } from "@mui/material"; import DataTableWithAuth from "@/core/components/DataTableWithAuth"; -import AssignmentIcon from "@mui/icons-material/Assignment"; +import RowActions from "./RowActions"; const TaskList = () => { const columns = useMemo( @@ -112,13 +112,7 @@ const TaskList = () => { table_name={"assistantZaminGovList"} enableRowActions positionActionsColumn={"last"} - renderRowActions={({ row, table }) => ( - - console.log("next part")}> - - - - )} + renderRowActions={({ row }) => } /> diff --git a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/index.jsx b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/index.jsx index 608d944..8e77435 100644 --- a/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/index.jsx @@ -1,7 +1,7 @@ import { Dialog, DialogTitle, IconButton, Stack, Tooltip } from "@mui/material"; import ReplyIcon from "@mui/icons-material/Reply"; import DialogTransition from "@/core/components/DialogTransition"; -import ReferFormContext from "@/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov/RowActions/Refer/ReferFormContext"; +import ReferFormContext from "./ReferFormContext"; import { useState } from "react"; const ReferForm = ({ rowId, mutate }) => { diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/DetailDialog.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/DetailDialog.jsx new file mode 100644 index 0000000..aff1058 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/DetailDialog.jsx @@ -0,0 +1,75 @@ +"use client"; + +import { Dialog, DialogContent } from "@mui/material"; +import { object, string } from "yup"; +import useRequest from "@/lib/hooks/useRequest"; +import { useForm } from "react-hook-form"; +import { yupResolver } from "@hookform/resolvers/yup"; +import StyledForm from "@/core/components/StyledForm"; +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 DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => { + const requestServer = useRequest({ auth: true }); + const defaultValues = { + description: "", + }; + const handleClose = () => { + setTaskModal(false); + }; + + const { + register, + handleSubmit, + formState: { isSubmitting, errors, touchedFields }, + } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" }); + + const onSubmit = async (data) => { + const formData = new FormData(); + formData.append("description", data.description); + requestServer(`api-for-send-to-harim/${rowId}`, "post", { + data: formData, + }) + .then(() => { + handleClose(); + mutate(); + }) + .catch(() => {}); + }; + return ( + + + + + + + + ); +}; +export default DetailDialog; diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/index.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/index.jsx new file mode 100644 index 0000000..24f6b31 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/TaskDetail/index.jsx @@ -0,0 +1,26 @@ +"use client"; + +import { IconButton, Tooltip } from "@mui/material"; +import AssignmentIcon from "@mui/icons-material/Assignment"; +import DetailDialog from "./DetailDialog"; +import { useState } from "react"; + +const TaskDetail = ({ rowId, mutate }) => { + const [taskModal, setTaskModal] = useState(false); + + const openDetailDialog = () => { + setTaskModal(true); + }; + + return ( + <> + + + + + + + + ); +}; +export default TaskDetail; diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx new file mode 100644 index 0000000..c2b1970 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/RowActions/index.jsx @@ -0,0 +1,11 @@ +import TaskDetail from "./TaskDetail"; +import { Box } from "@mui/material"; + +const RowActions = ({ row, mutate }) => { + return ( + + + + ); +}; +export default RowActions; diff --git a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx index c52ff33..396cffc 100644 --- a/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx +++ b/src/components/dashboard/inquiryPrivacy/generalManager/zaminGov/TaskList.jsx @@ -1,9 +1,9 @@ "use client"; import { useMemo } from "react"; -import { Box, IconButton, Tooltip } from "@mui/material"; +import { Box } from "@mui/material"; import DataTableWithAuth from "@/core/components/DataTableWithAuth"; -import AssignmentIcon from "@mui/icons-material/Assignment"; +import RowActions from "./RowActions"; const TaskList = () => { const columns = useMemo( @@ -112,13 +112,7 @@ const TaskList = () => { table_name={"generalManagerZaminGovList"} enableRowActions positionActionsColumn={"last"} - renderRowActions={({ row, table }) => ( - - console.log("next part")}> - - - - )} + renderRowActions={({ row }) => } /> diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/index.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/index.jsx index cee580a..c3a3012 100644 --- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/index.jsx @@ -2,7 +2,7 @@ import { Dialog, DialogTitle, IconButton, Stack, Tooltip } from "@mui/material"; import ReplyIcon from "@mui/icons-material/Reply"; import DialogTransition from "@/core/components/DialogTransition"; import { useState } from "react"; -import ReferFormContext from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer/ReferFormContext"; +import ReferFormContext from "./ReferFormContext"; const ReferForm = ({ rowId, mutate }) => { const [openReferDialog, setOpenReferDialog] = useState(false); diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx new file mode 100644 index 0000000..aff1058 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/DetailDialog.jsx @@ -0,0 +1,75 @@ +"use client"; + +import { Dialog, DialogContent } from "@mui/material"; +import { object, string } from "yup"; +import useRequest from "@/lib/hooks/useRequest"; +import { useForm } from "react-hook-form"; +import { yupResolver } from "@hookform/resolvers/yup"; +import StyledForm from "@/core/components/StyledForm"; +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 DetailDialog = ({ taskModal, setTaskModal, rowId, mutate }) => { + const requestServer = useRequest({ auth: true }); + const defaultValues = { + description: "", + }; + const handleClose = () => { + setTaskModal(false); + }; + + const { + register, + handleSubmit, + formState: { isSubmitting, errors, touchedFields }, + } = useForm({ defaultValues, resolver: yupResolver(validationSchema), mode: "onBlur" }); + + const onSubmit = async (data) => { + const formData = new FormData(); + formData.append("description", data.description); + requestServer(`api-for-send-to-harim/${rowId}`, "post", { + data: formData, + }) + .then(() => { + handleClose(); + mutate(); + }) + .catch(() => {}); + }; + return ( + + + + + + + + ); +}; +export default DetailDialog; diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/index.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/index.jsx new file mode 100644 index 0000000..24f6b31 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/TaskDetail/index.jsx @@ -0,0 +1,26 @@ +"use client"; + +import { IconButton, Tooltip } from "@mui/material"; +import AssignmentIcon from "@mui/icons-material/Assignment"; +import DetailDialog from "./DetailDialog"; +import { useState } from "react"; + +const TaskDetail = ({ rowId, mutate }) => { + const [taskModal, setTaskModal] = useState(false); + + const openDetailDialog = () => { + setTaskModal(true); + }; + + return ( + <> + + + + + + + + ); +}; +export default TaskDetail; diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx index 4e64b09..cd07b61 100644 --- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/index.jsx @@ -1,8 +1,13 @@ -import ReferForm from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions/Refer"; +import ReferForm from "./Refer"; +import TaskDetail from "./TaskDetail"; +import { Box } from "@mui/material"; const RowActions = ({ row, mutate }) => { return ( - //rowId should pass + + + + ); }; export default RowActions; diff --git a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx index f057708..2a7e7ec 100644 --- a/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx +++ b/src/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/TaskList.jsx @@ -1,10 +1,9 @@ "use client"; import { useMemo } from "react"; -import { Box, IconButton, Tooltip } from "@mui/material"; +import { Box } from "@mui/material"; import DataTableWithAuth from "@/core/components/DataTableWithAuth"; -import AssignmentIcon from "@mui/icons-material/Assignment"; -import RowActions from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov/RowActions"; +import RowActions from "./RowActions"; const TaskList = () => { const columns = useMemo( @@ -121,7 +120,7 @@ const TaskList = () => { table_name={"provinceAdminZaminGovList"} enableRowActions positionActionsColumn={"last"} - renderRowActions={({ row, table }) => } + renderRowActions={({ row }) => } /> diff --git a/src/core/components/ApplicantRequestDetail/index.jsx b/src/core/components/ApplicantRequestDetail/index.jsx index b97279a..bfdbf35 100644 --- a/src/core/components/ApplicantRequestDetail/index.jsx +++ b/src/core/components/ApplicantRequestDetail/index.jsx @@ -11,11 +11,7 @@ const ApplicantRequestDetail = ({ data }) => { return ( <> - + {Object.entries(data).map(([key, value]) => (