From 7cf54b2441495c0079c227d6df46775b7bf8ff9f Mon Sep 17 00:00:00 2001 From: baslani Date: Mon, 29 Dec 2025 10:36:36 +0330 Subject: [PATCH 1/4] cleaned up and commented excel print --- jsconfig.json | 38 +++++++++---------- .../reports/Search/FromDateController.jsx | 3 +- .../reports/Search/SearchReportField.jsx | 9 ++--- .../reports/Search/SelectProvince.jsx | 6 +-- .../reports/Search/ToDateController.jsx | 4 +- .../roadMissions/reports/Toolbar.jsx | 6 +-- .../dashboard/roadMissions/reports/index.jsx | 1 + src/core/utils/pageMenu.js | 18 ++++----- src/core/utils/pageMenuDev.js | 18 ++++----- 9 files changed, 48 insertions(+), 55 deletions(-) diff --git a/jsconfig.json b/jsconfig.json index b51472a..c136578 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,27 +1,27 @@ // javascript for production -{ - "compilerOptions": { - "paths": { - "@/*": ["./src/*"], - "^/*": ["./public/*"] - } - } -} - -// typescript for local development // { // "compilerOptions": { -// "jsx": "react-jsx", -// "noUnusedLocals": true, -// "noImplicitAny": false, -// "checkJs": true, -// "allowJs": true, -// "strict": true, -// "baseUrl": ".", // "paths": { // "@/*": ["./src/*"], // "^/*": ["./public/*"] // } -// }, -// "exclude": ["node_modules"] +// } // } + +// typescript for local development +{ + "compilerOptions": { + "jsx": "react-jsx", + "noUnusedLocals": true, + "noImplicitAny": false, + "checkJs": true, + "allowJs": true, + "strict": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"], + "^/*": ["./public/*"] + } + }, + "exclude": ["node_modules"] +} diff --git a/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx b/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx index 45002e1..0a81488 100644 --- a/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx @@ -1,7 +1,6 @@ -import { Controller } from "react-hook-form"; import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; import moment from "jalali-moment"; +import { Controller } from "react-hook-form"; const FromDateController = ({ control }) => { return ( diff --git a/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx b/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx index 5c6aa23..e1b71cd 100644 --- a/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx @@ -1,10 +1,9 @@ -import { Button, Grid, LinearProgress, Typography } from "@mui/material"; import SearchIcon from "@mui/icons-material/Search"; -import React from "react"; -import FromDateController from "./FromDateController"; -import ToDateController from "./ToDateController"; -import SelectProvince from "./SelectProvince"; +import { Button, Grid } from "@mui/material"; import { Controller } from "react-hook-form"; +import FromDateController from "./FromDateController"; +import SelectProvince from "./SelectProvince"; +import ToDateController from "./ToDateController"; const SearchReportField = ({ control, hasProvincesPermission }) => { return ( diff --git a/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx b/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx index 7f738bc..89395f0 100644 --- a/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx @@ -1,8 +1,6 @@ -import { Controller } from "react-hook-form"; -import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; -import { FormControl, FormHelperText, InputLabel, LinearProgress, MenuItem, Select, Typography } from "@mui/material"; import useProvinces from "@/lib/hooks/useProvince"; +import { FormControl, FormHelperText, InputLabel, MenuItem, Select } from "@mui/material"; +import { Controller } from "react-hook-form"; const SelectProvince = ({ control }) => { const { provinces, loadingProvinces, errorProvinces } = useProvinces(); diff --git a/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx b/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx index 4b5f2a8..9b9ac81 100644 --- a/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx @@ -1,7 +1,6 @@ -import { Controller, useWatch } from "react-hook-form"; import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; import moment from "jalali-moment"; +import { Controller, useWatch } from "react-hook-form"; const ToDateController = ({ control }) => { const minDate = useWatch({ control, name: "from_date" }); @@ -13,6 +12,7 @@ const ToDateController = ({ control }) => { { - return ( - - - - ); + return {/* */}; }; export default Toolbar; diff --git a/src/components/dashboard/roadMissions/reports/index.jsx b/src/components/dashboard/roadMissions/reports/index.jsx index 83daf1a..2477da8 100644 --- a/src/components/dashboard/roadMissions/reports/index.jsx +++ b/src/components/dashboard/roadMissions/reports/index.jsx @@ -118,6 +118,7 @@ const ReportPage = () => { resolver: yupResolver(validationSchema), mode: "all", }); + return ( diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js index 97c7001..08f09f0 100644 --- a/src/core/utils/pageMenu.js +++ b/src/core/utils/pageMenu.js @@ -159,15 +159,15 @@ export const pageMenu = [ // badges: [{ key: "mission.control" }], // TODO: add badge and permission permissions: ["all"], }, - // { - // id: "roadMissionsReports", - // label: "گزارشات", - // type: "page", - // route: "/dashboard/road-missions/reports", - // icon: , - // // badges: [{ key: "mission.control" }], // TODO: add badge and permission - // permissions: ["all"], - // }, + { + id: "roadMissionsReports", + label: "گزارشات", + type: "page", + route: "/dashboard/road-missions/reports", + icon: , + // badges: [{ key: "mission.control" }], // TODO: add badge and permission + permissions: ["all"], + }, ], }, { diff --git a/src/core/utils/pageMenuDev.js b/src/core/utils/pageMenuDev.js index 90ae25f..f78fffe 100644 --- a/src/core/utils/pageMenuDev.js +++ b/src/core/utils/pageMenuDev.js @@ -158,15 +158,15 @@ export const pageMenuDev = [ // badges: [{ key: "mission.control" }], // TODO: add badge and permission permissions: ["all"], }, - // { - // id: "roadMissionsReports", - // label: "گزارشات", - // type: "page", - // route: "/dashboard/road-missions/reports", - // icon: , - // // badges: [{ key: "mission.control" }], // TODO: add badge and permission - // permissions: ["all"], - // }, + { + id: "roadMissionsReports", + label: "گزارشات", + type: "page", + route: "/dashboard/road-missions/reports", + icon: , + // badges: [{ key: "mission.control" }], // TODO: add badge and permission + permissions: ["all"], + }, ], }, { From 39089e1f4e9d2f2b80c1cc1e19e4217c796e2f93 Mon Sep 17 00:00:00 2001 From: baslani Date: Mon, 29 Dec 2025 11:18:05 +0330 Subject: [PATCH 2/4] added car name to violations list --- .../CreateViolation/Form/CreateForm.jsx | 57 +++++++++++++------ .../Actions/CreateViolation/Form/index.jsx | 2 + .../violations/ViolationsList.jsx | 11 +++- 3 files changed, 53 insertions(+), 17 deletions(-) diff --git a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx index eca6626..86fb936 100644 --- a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx +++ b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx @@ -1,11 +1,13 @@ +import CarCode from "@/core/components/CarCode"; +import LtrTextField from "@/core/components/LtrTextField"; +import StyledForm from "@/core/components/StyledForm"; +import { yupResolver } from "@hookform/resolvers/yup"; import { Button, DialogActions, DialogContent, Stack } from "@mui/material"; import { Controller, useForm } from "react-hook-form"; -import CarCode from "@/core/components/CarCode"; -import { yupResolver } from "@hookform/resolvers/yup"; import * as yup from "yup"; -import StyledForm from "@/core/components/StyledForm"; const schema = yup.object().shape({ machinesId: yup.object().required("کد خودرو الزامی است."), + km: yup.string(), }); const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBase }) => { @@ -22,20 +24,43 @@ const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBas <> - - { - return ( - field.onChange(value)} - error={error} + + + { + return ( + field.onChange(value)} + error={error} + /> + ); + }} + name={"machinesId"} + /> + + + ( + { + if (isNaN(Number(e.target.value))) return; + field.onChange(e.target.value); + }} + size="small" + fullWidth + label="کیلومتر خودرو / ساعت کار" + InputLabelProps={{ shrink: true }} /> - ); - }} - name={"machinesId"} - /> + )} + /> + diff --git a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx index 260b0d9..2b70d5b 100644 --- a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx +++ b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx @@ -9,12 +9,14 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) => const defaultValues = { machinesId: null, + km: "", }; const submitForm = async (result) => { await requestServer(CREATE_VIOLATION, "post", { data: { machine_code: result.machinesId.machine_code, + km: result.km, }, }) .then((response) => { diff --git a/src/components/dashboard/roadMissions/violations/ViolationsList.jsx b/src/components/dashboard/roadMissions/violations/ViolationsList.jsx index dfbc013..bf9566d 100644 --- a/src/components/dashboard/roadMissions/violations/ViolationsList.jsx +++ b/src/components/dashboard/roadMissions/violations/ViolationsList.jsx @@ -33,12 +33,21 @@ const ViolationsList = () => { }, { accessorKey: "machine_code", - header: "خودرو", + header: "کد خودرو", id: "machine_code", datatype: "text", columnFilterModeOptions: ["equals", "contains"], grow: false, }, + { + accessorKey: "machine", + header: "نام خودرو", + id: "machine", + datatype: "text", + columnFilterModeOptions: ["equals", "contains"], + grow: false, + Cell: ({ row }) => row.original.machine?.car_name || "-", + }, { accessorKey: "mission_id", header: "کد ماموریت", From 85dbd46e21c48c32390fe0ec70bdd563b04b5412 Mon Sep 17 00:00:00 2001 From: baslani Date: Mon, 29 Dec 2025 11:47:19 +0330 Subject: [PATCH 3/4] added permission to violations list --- jsconfig.json | 38 +++++++++---------- .../dashboard/roadMissions/reports/index.jsx | 2 +- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/jsconfig.json b/jsconfig.json index c136578..b51472a 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,27 +1,27 @@ // javascript for production -// { -// "compilerOptions": { -// "paths": { -// "@/*": ["./src/*"], -// "^/*": ["./public/*"] -// } -// } -// } - -// typescript for local development { "compilerOptions": { - "jsx": "react-jsx", - "noUnusedLocals": true, - "noImplicitAny": false, - "checkJs": true, - "allowJs": true, - "strict": true, - "baseUrl": ".", "paths": { "@/*": ["./src/*"], "^/*": ["./public/*"] } - }, - "exclude": ["node_modules"] + } } + +// typescript for local development +// { +// "compilerOptions": { +// "jsx": "react-jsx", +// "noUnusedLocals": true, +// "noImplicitAny": false, +// "checkJs": true, +// "allowJs": true, +// "strict": true, +// "baseUrl": ".", +// "paths": { +// "@/*": ["./src/*"], +// "^/*": ["./public/*"] +// } +// }, +// "exclude": ["node_modules"] +// } diff --git a/src/components/dashboard/roadMissions/reports/index.jsx b/src/components/dashboard/roadMissions/reports/index.jsx index 2477da8..54354b7 100644 --- a/src/components/dashboard/roadMissions/reports/index.jsx +++ b/src/components/dashboard/roadMissions/reports/index.jsx @@ -18,7 +18,7 @@ const ReportPage = () => { const { data: userPermissions } = usePermissions(); const { user } = useAuth(); const requestServer = useRequest(); - const hasProvincesPermission = userPermissions?.includes("all"); // TODO : change permission + const hasProvincesPermission = userPermissions?.includes("mission-report-country"); const defaultValues = { from_date: moment(new Date()).format("YYYY-MM-DD"), From 94a2f97fa5c241d2b5f14d72d323baaf55dd585d Mon Sep 17 00:00:00 2001 From: AminGhasempoor Date: Mon, 29 Dec 2025 14:45:53 +0330 Subject: [PATCH 4/4] release v1.8.6 --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 5288f99..fd42a87 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ HOST="rms.witel.ir" HOST_RMTO="rms.rmto.ir" -NEXT_PUBLIC_VERSION="1.8.5" +NEXT_PUBLIC_VERSION="1.8.6" NEXT_PUBLIC_API_URL="https://rms.witel.ir" NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map" \ No newline at end of file