diff --git a/src/Layout/Dashboard/Table/DataTable.tsx b/src/Layout/Dashboard/Table/DataTable.tsx index b8de0a3..a3c3c3c 100644 --- a/src/Layout/Dashboard/Table/DataTable.tsx +++ b/src/Layout/Dashboard/Table/DataTable.tsx @@ -15,6 +15,7 @@ const DataTable: React.FC = ({ ...props }) => { const data: any[] = response?.data?.data || []; + const columns = useColumns(); const { pagination, handlePageChange } = usePagination(response?.data); const [t] = useTranslation(); diff --git a/src/Pages/Admin/Manager/Add/Page.tsx b/src/Pages/Admin/Manager/Add/Page.tsx index eb4ba8d..595b81a 100644 --- a/src/Pages/Admin/Manager/Add/Page.tsx +++ b/src/Pages/Admin/Manager/Add/Page.tsx @@ -1,10 +1,8 @@ import { useTranslation } from "react-i18next"; -import useSetPageTitle from "../../../../Hooks/useSetPageTitle"; import PageHeader from "../../../../Layout/Dashboard/PageHeader"; -import { Suspense } from "react"; +import { Suspense, useEffect } from "react"; import { Spin } from "antd"; import { ModalEnum } from "../../../../enums/Model"; -import { canAddReSeller } from "../../../../utils/hasAbilityFn"; import PersonalDetailsForm from "../Form/PersonalDetailsForm"; import { Formik, Form } from "formik"; import { getInitialValues, getValidationSchema } from "../Form/formUtils"; @@ -12,15 +10,27 @@ import TitleDetailsForm from "../Form/TitleDetailsForm"; import AttachmentForm from "../Form/AttachmentForm"; import { useAddManager } from "../../../../api/manager"; import { QueryStatusEnum } from "../../../../enums/QueryStatus"; +import { useNavigate } from "react-router-dom"; const TableHeader = () => { const [t] = useTranslation(); - useSetPageTitle(t(`page_header.add_reseller`)); + const Navigate = useNavigate(); const {mutate,status } = useAddManager(); const handelSubmit = (values: any) => { console.log(values, "values"); mutate({...values}); }; + const handleCancel = () => { + Navigate(-1); + }; + console.log(status); + + useEffect(() => { + if(status === QueryStatusEnum.SUCCESS){ + handleCancel(); + } + }, [status]) + return (
}> @@ -40,7 +50,7 @@ const TableHeader = () => {
- + +
diff --git a/src/Pages/Admin/Manager/Form/PersonalDetailsForm.tsx b/src/Pages/Admin/Manager/Form/PersonalDetailsForm.tsx index a853aef..f43dbc6 100644 --- a/src/Pages/Admin/Manager/Form/PersonalDetailsForm.tsx +++ b/src/Pages/Admin/Manager/Form/PersonalDetailsForm.tsx @@ -7,11 +7,11 @@ import { userTypeOptions } from "../../../../config/userTypeOptions"; import { statusType } from "../../../../config/statusType"; import { useGetRole } from "../../../../api/role"; -const PersonalDetailsForm = () => { +const PersonalDetailsForm = ({isEdit= false}:{isEdit?:boolean}) => { const [t] = useTranslation(); const {data} = useGetRole(); const RoleData = data?.data - console.log(RoleData); + const sex = [ { name: "male", id: "male" }, { name: "female", id: "female" }, @@ -24,56 +24,28 @@ const PersonalDetailsForm = () => {
+ label={"name"} + /> - + {!isEdit && ( - - - - - + )} ) => { + console.log(objectToEdit); + return { id: objectToEdit?.id ?? null, name: objectToEdit?.name ?? null, + username: objectToEdit?.user?.username ?? null, + contact_number: objectToEdit?.contact_number ?? null, + role_id: objectToEdit?.role_id ?? null, + password: objectToEdit?.password ?? null, + }; }; export const getValidationSchema = () => { // validate input - return Yup.object().shape({}); + return Yup.object().shape({ + // name: Yup.string().required("validation.required"), + // username: Yup.string().required("validation.required"), + // contact_number: Yup.mixed().required("validation.required"), + // role_id: Yup.mixed().required("validation.required"), + }); }; diff --git a/src/Pages/Admin/Manager/Page.tsx b/src/Pages/Admin/Manager/Page.tsx index cc2a683..84a52df 100644 --- a/src/Pages/Admin/Manager/Page.tsx +++ b/src/Pages/Admin/Manager/Page.tsx @@ -10,8 +10,6 @@ import FilterForm from "./Model/FilterForm"; import { useDeleteManager } from "../../../api/manager"; const Table = lazy(() => import("./Table")); -const AddModalForm = lazy(() => import("./Model/AddModel")); -const EditModalForm = lazy(() => import("./Model/EditModel")); const DeleteModalForm = lazy( () => import("../../../Layout/Dashboard/DeleteModels"), ); @@ -40,8 +38,6 @@ const TableHeader = () => { filterTitle="table.managers_list" /> - - { pagination: true, ...filterState, }); + return ; }; diff --git a/src/Pages/Admin/Manager/useTableColumns.tsx b/src/Pages/Admin/Manager/useTableColumns.tsx index fe78e63..c5c64d8 100644 --- a/src/Pages/Admin/Manager/useTableColumns.tsx +++ b/src/Pages/Admin/Manager/useTableColumns.tsx @@ -15,6 +15,7 @@ import { } from "../../../utils/hasAbilityFn"; import ActionButtons from "../../../Components/Table/ActionButtons"; import { Manager } from "../../../types/Manager"; +import { ABILITIES_ENUM } from "../../../enums/abilities"; export const useColumns = () => { const { handel_open_model } = useModalHandler(); @@ -23,7 +24,7 @@ export const useColumns = () => { const navigate = useNavigate(); const handelShow = (record: Manager) => { - navigate(`${record?.user_id}`); + navigate(`${record?.id}`); }; const handelDelete = (data: Manager) => { @@ -31,9 +32,10 @@ export const useColumns = () => { handel_open_model(ModalEnum?.MANAGER_DELETE); }; - const handleEdit = (record: Student) => { + const handleEdit = (record: Manager) => { setObjectToEdit(record); - handel_open_model(ModalEnum?.MANAGER_EDIT); + navigate(`/${ABILITIES_ENUM?.MANAGERS}/${record?.id}/edit`) + }; const [t] = useTranslation(); @@ -43,28 +45,28 @@ export const useColumns = () => { dataIndex: "id", key: "id", align: "center", - render: (_text, record) => record?.user_id, + render: (_text, record) => record?.id, }, { - title: `${t("columns.first_name")}`, - dataIndex: "first_name", - key: "first_name", + title: `${t("columns.name")}`, + dataIndex: "name", + key: "name", align: "center", - render: (_text, record) => record?.first_name, + render: (_text, record) => record?.name, }, { - title: `${t("columns.last_name")}`, - dataIndex: "last_name", - key: "last_name", + title: `${t("columns.username")}`, + dataIndex: "username", + key: "username", align: "center", - render: (_text, record) => record?.last_name, + render: (_text, record) => record?.user.username , }, { - title: `${t("columns.sex")}`, - dataIndex: "sex", - key: "sex", + title: `${t("columns.phone_number")}`, + dataIndex: "contact_number", + key: "contact_number", align: "center", - render: (_text, record) => record?.sex, + render: (_text, record) => record?.contact_number, }, { @@ -77,7 +79,7 @@ export const useColumns = () => { handelDelete(record)} onEdit={() => handleEdit(record)} diff --git a/src/Pages/Admin/Roles/Permissions/FN/formatAbilityData.ts b/src/Pages/Admin/Roles/Permissions/FN/formatAbilityData.ts index ff3f102..2d8a424 100644 --- a/src/Pages/Admin/Roles/Permissions/FN/formatAbilityData.ts +++ b/src/Pages/Admin/Roles/Permissions/FN/formatAbilityData.ts @@ -1,9 +1,8 @@ export const formatAbilityData = (Data: any[]) => { const newArray: Array<{ name: any; [key: string]: boolean }> = []; - console.log(Data, "Data"); + for (let i = 0; i < Data.length; i++) { const currentObject = Data?.[i]; - console.log(currentObject); const newObjectShape = { name: currentObject?.name, delete: typeof currentObject?.delete === "boolean" ? false : "disabled", @@ -12,10 +11,9 @@ export const formatAbilityData = (Data: any[]) => { store: typeof currentObject?.store === "boolean" ? false : "disabled", update: typeof currentObject?.update === "boolean" ? false : "disabled", } as any; - console.log(newObjectShape); newArray.push(newObjectShape); } return newArray; - }; \ No newline at end of file + }; diff --git a/src/Pages/Admin/Roles/Permissions/FN/transformPermissions.ts b/src/Pages/Admin/Roles/Permissions/FN/transformPermissions.ts index d5052a6..339fb7a 100644 --- a/src/Pages/Admin/Roles/Permissions/FN/transformPermissions.ts +++ b/src/Pages/Admin/Roles/Permissions/FN/transformPermissions.ts @@ -1,11 +1,12 @@ export const transformPermissions = (Data: string[]) => { const newArray: Array<{ name: any; [key: string]: boolean }> = []; const hashMap = new Map(); - + for (let i = 0; i < Data.length; i++) { - const [permission, value] = Data[i].split("::"); + const [permission, value] = Data[i].split("::"); const existingIndex = hashMap.get(permission); - + // console.log(hashMap); + if (existingIndex !== undefined) { if (value) { newArray[existingIndex][value] = true; diff --git a/src/Pages/Admin/Roles/Permissions/Page.tsx b/src/Pages/Admin/Roles/Permissions/Page.tsx index f7d11f9..d2a1683 100644 --- a/src/Pages/Admin/Roles/Permissions/Page.tsx +++ b/src/Pages/Admin/Roles/Permissions/Page.tsx @@ -3,7 +3,6 @@ import { lazy, Suspense } from "react"; import { Spin } from "antd"; import useSetPageTitle from "../../../../Hooks/useSetPageTitle"; import PageHeader from "../../../../Layout/Dashboard/PageHeader"; -import FilterLayout from "../../../../Layout/Dashboard/FilterLayout"; const Table = lazy(() => import("./Table")); const TableHeader = () => { @@ -22,12 +21,6 @@ const TableHeader = () => { pageTitle="role" addModal={false} /> - {/* */} -
diff --git a/src/Pages/Admin/Roles/Permissions/Table.tsx b/src/Pages/Admin/Roles/Permissions/Table.tsx index c711fc9..e58f42d 100644 --- a/src/Pages/Admin/Roles/Permissions/Table.tsx +++ b/src/Pages/Admin/Roles/Permissions/Table.tsx @@ -31,6 +31,7 @@ const App: React.FC = () => { }); const { data, isLoading } = useGetAllAbility(); const AllAbilityData = data?.data ?? []; + const currentData = response?.data?.data?.abilities ?? []; diff --git a/src/Pages/Admin/Roles/Permissions/useTableColumns.tsx b/src/Pages/Admin/Roles/Permissions/useTableColumns.tsx index 81ea659..ffbd8ec 100644 --- a/src/Pages/Admin/Roles/Permissions/useTableColumns.tsx +++ b/src/Pages/Admin/Roles/Permissions/useTableColumns.tsx @@ -6,9 +6,12 @@ import { useFormikContext } from "formik"; export const useColumns = () => { const [t] = useTranslation(); const {values,setValues} = useFormikContext() + console.log(values); const onChange = (type:any,index:any) => { const cloneValue = JSON.parse(JSON.stringify(values)) + console.log(cloneValue); + if (!cloneValue[index]) { cloneValue[index] = {}; } diff --git a/src/Routes.tsx b/src/Routes.tsx index 8119531..e0975da 100644 --- a/src/Routes.tsx +++ b/src/Routes.tsx @@ -375,7 +375,7 @@ export const CrudRoute: TCrudRoute[] = [ { header: "page_header.edit_manager", element: , - path: `/${ABILITIES_ENUM?.MANAGERS}/edit`, + path: `/${ABILITIES_ENUM?.MANAGERS}/:${ParamsEnum?.Manager_ID}/edit`, abilities: ABILITIES_ENUM?.MANAGERS, abilities_value: ABILITIES_VALUES_ENUM.INDEX, prevPath: 0, diff --git a/src/api/manager.ts b/src/api/manager.ts index 37351bb..49c80a6 100644 --- a/src/api/manager.ts +++ b/src/api/manager.ts @@ -4,15 +4,13 @@ import useGetQuery from "./helper/useGetQuery"; import useUpdateMutation from "./helper/useUpdateMutation"; const API = { - GET: "/manager", - ADD: "/manager", - DELETE: "/manager", - UPDATE: "/manager", - MOVE: "/manager/moveManagers", - IMPORT: "/manager/importManagers", + GET: "/admin", + ADD: "/admin", + DELETE: "/admin", + UPDATE: "/admin", }; -const KEY = "manager"; +const KEY = "ADMIN"; export const useGetAllManager = (params?: any, options?: any) => useGetQuery(KEY, API.GET, params); @@ -26,6 +24,3 @@ export const useUpdateManager = (params?: any) => export const useDeleteManager = (params?: any) => useDeleteMutation(KEY, API.DELETE); - -export const useMoveManager = () => useAddMutation(KEY, API.MOVE); -export const useImportManager = () => useAddMutation(KEY, API.IMPORT); diff --git a/src/enums/params.ts b/src/enums/params.ts index 9fc54ac..3312230 100644 --- a/src/enums/params.ts +++ b/src/enums/params.ts @@ -14,5 +14,8 @@ export enum ParamsEnum { RE_SELLER_ID = "re_seller_id", ROLE_ID = "role_id", CITY_ID = "city_id", - Collection_ID = "collection_id" + Collection_ID = "collection_id", + Manager_ID = "manager_id", + + } diff --git a/src/translate/ar.json b/src/translate/ar.json index 5a5071a..6d5c734 100644 --- a/src/translate/ar.json +++ b/src/translate/ar.json @@ -563,7 +563,8 @@ "reseller":"البائعين", "activation_date":"تاريخ التنشيط", "expiration_date":"تاريخ الالغاء", - "package":"حزمة" + "package":"حزمة", + "contact_number":"رقم الهاتف" }, "select": { "enums": { diff --git a/src/types/Manager.ts b/src/types/Manager.ts index 8154688..e791350 100644 --- a/src/types/Manager.ts +++ b/src/types/Manager.ts @@ -1,7 +1,7 @@ import { DateType } from "./App"; export interface Manager { - first_name: string; // The first name of the user + name: string; // The first name of the user last_name: string; // The last name of the user city: string | null; // The city of the user, can be null sex: string; // The sex of the user, using a union type for possible values @@ -10,5 +10,5 @@ export interface Manager { card: string | null; // The card information, can be null birthday: DateType; // The birthday of the user, can be null grade_id: number | string; // The ID of the user's grade - user_id: number; // The unique ID of the user + id: number; // The unique ID of the user } \ No newline at end of file