From cb255449c514532d3973fa0f2c58b06214db0c71 Mon Sep 17 00:00:00 2001
From: Salah Eddine Lalami <50052356+idurar@users.noreply.github.com>
Date: Sat, 28 Oct 2023 03:12:43 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20minor=20bugs=20fixed?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/RecentTable/index.jsx | 100 +++++++++++-------
.../components/DataTableDropMenu.jsx | 47 --------
.../EmailDataTableModule/index.jsx | 2 +-
.../componenets/EmailForm.jsx | 4 +-
.../EmailModule/UpdateEmailModule/index.jsx | 1 +
.../src/modules/ErpPanelModule/DataTable.jsx | 21 ++--
.../src/modules/ErpPanelModule/ReadItem.jsx | 6 +-
frontend/src/modules/ErpPanelModule/index.jsx | 11 +-
frontend/src/pages/AdvancedSettings/index.jsx | 26 ++---
frontend/src/pages/Email/index.jsx | 6 +-
frontend/src/pages/Invoice/index.jsx | 4 +-
frontend/src/pages/Quote/index.jsx | 4 +-
12 files changed, 112 insertions(+), 120 deletions(-)
delete mode 100644 frontend/src/modules/EmailModule/EmailDataTableModule/components/DataTableDropMenu.jsx
diff --git a/frontend/src/modules/DashboardModule/components/RecentTable/index.jsx b/frontend/src/modules/DashboardModule/components/RecentTable/index.jsx
index 8b7120ec9..d1b82c06a 100644
--- a/frontend/src/modules/DashboardModule/components/RecentTable/index.jsx
+++ b/frontend/src/modules/DashboardModule/components/RecentTable/index.jsx
@@ -4,55 +4,83 @@ import { Descriptions, Dropdown, Menu, Table } from 'antd';
import { request } from '@/request';
import useFetch from '@/hooks/useFetch';
-import {
- EllipsisOutlined,
- EyeOutlined,
- EditOutlined,
- DeleteOutlined,
- FilePdfOutlined,
-} from '@ant-design/icons';
+import { EllipsisOutlined, EyeOutlined, EditOutlined, FilePdfOutlined } from '@ant-design/icons';
import { useDispatch, useSelector } from 'react-redux';
+import { erp } from '@/redux/erp/actions';
import { selectCurrentLang } from '@/redux/lang/selectors';
import { useHistory } from 'react-router-dom';
import { DOWNLOAD_BASE_URL } from '@/config/serverApiConfig';
import useResponsiveTable from '@/hooks/useResponsiveTable';
-function DropDownRowMenu({ row, entity }) {
+export default function RecentTable({ ...props }) {
+ let { entity, dataTableColumns } = props;
+
+ const items = [
+ {
+ label: 'Show',
+ key: 'read',
+ icon: ,
+ },
+ {
+ label: 'Edit',
+ key: 'edit',
+ icon: ,
+ },
+ {
+ label: 'Download',
+ key: 'download',
+ icon: ,
+ },
+ ];
+
const history = useHistory();
- const Show = () => {
- history.push(`/${entity}/read/${row._id}`);
- };
- function Edit() {
- history.push(`/${entity}/update/${row._id}`);
- }
- function Download() {
- window.open(`${DOWNLOAD_BASE_URL}${entity}/${entity}-${row._id}.pdf`, '_blank');
- }
+ const dispatch = useDispatch();
- return (
-
- );
-}
+ const handleRead = (record) => {
+ dispatch(erp.currentItem({ data: record }));
+ history.push(`/${entity}/read/${record._id}`);
+ };
+ const handleEdit = (record) => {
+ dispatch(erp.currentAction({ actionType: 'update', data: record }));
+ history.push(`/${entity}/update/${record._id}`);
+ };
+ const handleDownload = (record) => {
+ window.open(`${DOWNLOAD_BASE_URL}${entity}/${entity}-${record._id}.pdf`, '_blank');
+ };
-export default function RecentTable({ ...props }) {
- let { entity, dataTableColumns } = props;
dataTableColumns = [
...dataTableColumns,
{
title: '',
- render: (row) => (
-
-
+ key: 'action',
+ render: (_, record) => (
+ {
+ switch (key) {
+ case 'read':
+ handleRead(record);
+ break;
+ case 'edit':
+ handleEdit(record);
+ break;
+ case 'download':
+ handleDownload(record);
+ break;
+
+ default:
+ break;
+ }
+ // else if (key === '2')handleCloseTask
+ },
+ }}
+ trigger={['click']}
+ >
+ e.preventDefault()}
+ />
),
},
diff --git a/frontend/src/modules/EmailModule/EmailDataTableModule/components/DataTableDropMenu.jsx b/frontend/src/modules/EmailModule/EmailDataTableModule/components/DataTableDropMenu.jsx
deleted file mode 100644
index c442d5a50..000000000
--- a/frontend/src/modules/EmailModule/EmailDataTableModule/components/DataTableDropMenu.jsx
+++ /dev/null
@@ -1,47 +0,0 @@
-import { Menu } from 'antd';
-
-import {
- EyeOutlined,
- EditOutlined,
- DeleteOutlined,
- FilePdfOutlined,
- CreditCardOutlined,
-} from '@ant-design/icons';
-import { useSelector, useDispatch } from 'react-redux';
-import { selectCurrentLang } from '@/redux/lang/selectors';
-import { erp } from '@/redux/erp/actions';
-import { selectItemById } from '@/redux/erp/selectors';
-import { useErpContext } from '@/context/erp';
-
-import { DOWNLOAD_BASE_URL } from '@/config/serverApiConfig';
-import uniqueId from '@/utils/uinqueId';
-import { useHistory } from 'react-router-dom';
-
-export default function DataTableDropMenu({ row, entity }) {
- const dispatch = useDispatch();
- const history = useHistory();
- const { erpContextAction } = useErpContext();
- const { recordPanel, modal } = erpContextAction;
- const item = useSelector(selectItemById(row._id));
- function Read() {
- dispatch(erp.currentItem({ data: item }));
- // readPanel.open();
- history.push(`/email/read/${row._id}`);
- }
-
- function Edit() {
- dispatch(erp.currentAction({ actionType: 'update', data: item }));
- // updatePanel.open();
- history.push(`/email/update/${row._id}`);
- }
- return (
-
- );
-}
diff --git a/frontend/src/modules/EmailModule/EmailDataTableModule/index.jsx b/frontend/src/modules/EmailModule/EmailDataTableModule/index.jsx
index b2080df35..24eaf8600 100644
--- a/frontend/src/modules/EmailModule/EmailDataTableModule/index.jsx
+++ b/frontend/src/modules/EmailModule/EmailDataTableModule/index.jsx
@@ -5,7 +5,7 @@ import DataTableDropMenu from './components/DataTableDropMenu';
export default function EmailDataTableModule({ config }) {
return (
-
+
);
}
diff --git a/frontend/src/modules/EmailModule/UpdateEmailModule/componenets/EmailForm.jsx b/frontend/src/modules/EmailModule/UpdateEmailModule/componenets/EmailForm.jsx
index 9dcdd40de..0e8252ed0 100644
--- a/frontend/src/modules/EmailModule/UpdateEmailModule/componenets/EmailForm.jsx
+++ b/frontend/src/modules/EmailModule/UpdateEmailModule/componenets/EmailForm.jsx
@@ -27,7 +27,7 @@ export default function EmailForm({ current = null }) {
};
return (
- <>
+
{displayLabels(current?.emailVariables)}
@@ -45,6 +45,6 @@ export default function EmailForm({ current = null }) {
- >
+
);
}
diff --git a/frontend/src/modules/EmailModule/UpdateEmailModule/index.jsx b/frontend/src/modules/EmailModule/UpdateEmailModule/index.jsx
index fe2f25449..a11b5a793 100644
--- a/frontend/src/modules/EmailModule/UpdateEmailModule/index.jsx
+++ b/frontend/src/modules/EmailModule/UpdateEmailModule/index.jsx
@@ -53,6 +53,7 @@ export default function UpdateEmailModule({ config }) {
onClick={() => {
history.push(`/${config.entity.toLowerCase()}`);
}}
+ key="emailform404"
>
Back to Quote Page
diff --git a/frontend/src/modules/ErpPanelModule/DataTable.jsx b/frontend/src/modules/ErpPanelModule/DataTable.jsx
index bc737ace0..e5ae24307 100644
--- a/frontend/src/modules/ErpPanelModule/DataTable.jsx
+++ b/frontend/src/modules/ErpPanelModule/DataTable.jsx
@@ -22,20 +22,21 @@ import useResponsiveTable from '@/hooks/useResponsiveTable';
import { DOWNLOAD_BASE_URL } from '@/config/serverApiConfig';
-function AddNewItem({ config }) {
+function AddNewItem({ config, hasCreate = true }) {
const history = useHistory();
const { ADD_NEW_ENTITY, entity } = config;
- const { erpContextAction } = useErpContext();
- const { createPanel } = erpContextAction;
- const handelClick = () => {
+
+ const handleClick = () => {
history.push(`/${entity.toLowerCase()}/create`);
};
- return (
- }>
- {ADD_NEW_ENTITY}
-
- );
+ if (hasCreate)
+ return (
+ }>
+ {ADD_NEW_ENTITY}
+
+ );
+ else return null;
}
export default function DataTable({ config, extra = [] }) {
@@ -178,7 +179,7 @@ export default function DataTable({ config, extra = [] }) {
}>
Refresh
,
- create ? : <>>,
+ ,
]}
style={{
padding: '20px 0px',
diff --git a/frontend/src/modules/ErpPanelModule/ReadItem.jsx b/frontend/src/modules/ErpPanelModule/ReadItem.jsx
index b223b444e..85510a3c8 100644
--- a/frontend/src/modules/ErpPanelModule/ReadItem.jsx
+++ b/frontend/src/modules/ErpPanelModule/ReadItem.jsx
@@ -96,7 +96,6 @@ export default function ReadItem({ config, selectedItem }) {
const [currentErp, setCurrentErp] = useState(selectedItem ?? resetErp);
useEffect(() => {
- const controller = new AbortController();
if (currentResult) {
const { items, invoice, ...others } = currentResult;
@@ -114,7 +113,10 @@ export default function ReadItem({ config, selectedItem }) {
setCurrentErp({ ...invoice.items, ...others, ...invoice });
}
}
- return () => controller.abort();
+ return () => {
+ setItemsList([]);
+ setCurrentErp(resetErp);
+ };
}, [currentResult]);
return (
diff --git a/frontend/src/modules/ErpPanelModule/index.jsx b/frontend/src/modules/ErpPanelModule/index.jsx
index b9fcd2839..db71e3a7f 100644
--- a/frontend/src/modules/ErpPanelModule/index.jsx
+++ b/frontend/src/modules/ErpPanelModule/index.jsx
@@ -13,8 +13,17 @@ export default function ErpPanel({ config, extra }) {
const dispatch = useDispatch();
const { state } = useErpContext();
const { deleteModal } = state;
- useLayoutEffect(() => {
+
+ const dispatcher = () => {
dispatch(erp.resetState());
+ };
+
+ useLayoutEffect(() => {
+ const controller = new AbortController();
+ dispatcher();
+ return () => {
+ controller.abort();
+ };
}, []);
return (
diff --git a/frontend/src/pages/AdvancedSettings/index.jsx b/frontend/src/pages/AdvancedSettings/index.jsx
index 4854ed73c..6f87af41f 100644
--- a/frontend/src/pages/AdvancedSettings/index.jsx
+++ b/frontend/src/pages/AdvancedSettings/index.jsx
@@ -52,32 +52,34 @@ export default function AdvancedSettings() {
title: 'enabled',
dataIndex: 'enabled',
key: 'enabled',
- render: (text, row) => {
+ onCell: (record, rowIndex) => {
return {
props: {
style: {
width: '60px',
},
},
- children: (
- }
- unCheckedChildren={}
- />
- ),
};
},
+ render: (_, record) => {
+ return (
+ }
+ unCheckedChildren={}
+ />
+ );
+ },
},
];
const lang = useSelector(selectCurrentLang);
const Labels = {
- PANEL_TITLE: lang.setting,
- DATATABLE_TITLE: lang.setting_list,
- ADD_NEW_ENTITY: lang.add_new_setting,
+ PANEL_TITLE: lang.settings,
+ DATATABLE_TITLE: lang.settings_list,
+ ADD_NEW_ENTITY: lang.add_new_settings,
ENTITY_NAME: lang.setting,
CREATE_ENTITY: lang.save,
UPDATE_ENTITY: lang.update,
diff --git a/frontend/src/pages/Email/index.jsx b/frontend/src/pages/Email/index.jsx
index d5a0f3ba2..43e044660 100644
--- a/frontend/src/pages/Email/index.jsx
+++ b/frontend/src/pages/Email/index.jsx
@@ -33,16 +33,12 @@ export default function AdvancedSettings() {
{
title: 'Template Name',
dataIndex: 'emailName',
+ key: 'emailName',
},
{
title: 'Subject',
dataIndex: 'emailSubject',
key: 'emailSubject',
- render: (text, row) => {
- return {
- children: {text},
- };
- },
},
];
diff --git a/frontend/src/pages/Invoice/index.jsx b/frontend/src/pages/Invoice/index.jsx
index 9efb3ec9e..d74fae6ce 100644
--- a/frontend/src/pages/Invoice/index.jsx
+++ b/frontend/src/pages/Invoice/index.jsx
@@ -41,12 +41,12 @@ export default function Invoice() {
{
title: 'Total',
dataIndex: 'total',
- render: (total) => moneyRowFormatter({ amount: total }),
+ onCell: (total) => moneyRowFormatter({ amount: total }),
},
{
title: 'Balance',
dataIndex: 'credit',
- render: (credit) => moneyRowFormatter({ amount: credit }),
+ onCell: (credit) => moneyRowFormatter({ amount: credit }),
},
{
title: 'Status',
diff --git a/frontend/src/pages/Quote/index.jsx b/frontend/src/pages/Quote/index.jsx
index dea600bae..4c0628ba0 100644
--- a/frontend/src/pages/Quote/index.jsx
+++ b/frontend/src/pages/Quote/index.jsx
@@ -41,12 +41,12 @@ export default function Quote() {
{
title: 'SubTotal',
dataIndex: 'subTotal',
- render: (amount) => moneyRowFormatter({ amount }),
+ onCell: (subTotal) => moneyRowFormatter({ amount: subTotal }),
},
{
title: 'Total',
dataIndex: 'total',
- render: (amount) => moneyRowFormatter({ amount }),
+ onCell: (total) => moneyRowFormatter({ amount: total }),
},
{