diff --git a/public/assets/images/delete.svg b/public/assets/images/delete.svg
new file mode 100644
index 00000000..0fb4452e
--- /dev/null
+++ b/public/assets/images/delete.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/components/ActionsBar/index.jsx b/src/components/ActionsBar/index.jsx
index e4af8c38..5c30b175 100644
--- a/src/components/ActionsBar/index.jsx
+++ b/src/components/ActionsBar/index.jsx
@@ -18,11 +18,12 @@ const ActionsBar = ({ t, buttons = [] }) => {
>
{item.icon && (
)}
- {item.title}
+ {item.title}
);
diff --git a/src/containers/CategoriesPage/CategoryStore/CategoryStore.js b/src/containers/CategoriesPage/CategoryStore/CategoryStore.js
index 65d5ef40..b3299973 100644
--- a/src/containers/CategoriesPage/CategoryStore/CategoryStore.js
+++ b/src/containers/CategoriesPage/CategoryStore/CategoryStore.js
@@ -144,4 +144,16 @@ export default class CategoryStore {
return false;
}
+
+ async deleteCategories(arr) {
+ try {
+ const aesirxPimCategoryApiService = new AesirxPimCategoryApiService();
+ const respondedData = await aesirxPimCategoryApiService.deleteCategories(arr);
+ return respondedData;
+ } catch (error) {
+ // no error throw
+ }
+
+ return false;
+ }
}
diff --git a/src/containers/CategoriesPage/CategoryViewModel/CategoryListViewModel.js b/src/containers/CategoriesPage/CategoryViewModel/CategoryListViewModel.js
index 8d081bda..9ceaabfe 100644
--- a/src/containers/CategoriesPage/CategoryViewModel/CategoryListViewModel.js
+++ b/src/containers/CategoriesPage/CategoryViewModel/CategoryListViewModel.js
@@ -121,6 +121,18 @@ class CategoryListViewModel {
this.successResponse.state = true;
};
+ deleteCategories = async (arr) => {
+ const res = await this.categoryStore.deleteCategories(arr);
+ if (res) {
+ await this.categoryStore.getList(
+ this.callbackOnSuccessHandler,
+ this.callbackOnErrorHandler,
+ this.successResponse.filters
+ );
+ }
+ this.successResponse.state = true;
+ };
+
handleFilter = (filter) => {
this.filter = { ...this.filter, ...filter };
};
diff --git a/src/containers/CategoriesPage/Component/ListCategories.jsx b/src/containers/CategoriesPage/Component/ListCategories.jsx
index b1ac13f6..f1b531c6 100644
--- a/src/containers/CategoriesPage/Component/ListCategories.jsx
+++ b/src/containers/CategoriesPage/Component/ListCategories.jsx
@@ -207,12 +207,26 @@ const ListCategories = observer((props) => {
viewModel.setPublished(value.id, isPublished);
};
+ const deleteCategories = () => {
+ viewModel.isLoading();
+ viewModel.deleteCategories(listSelected);
+ };
+
return (
<>
{t('txt_categories')}
{
+ deleteCategories();
+ },
+ },
{
title: t('txt_add_new'),
icon: '/assets/images/plus.svg',
diff --git a/src/containers/DebtorGroupPage/DebtorGroupViewModel/DebtorGroupListViewModel.js b/src/containers/DebtorGroupPage/DebtorGroupViewModel/DebtorGroupListViewModel.js
index a0e970b0..0dccfef3 100644
--- a/src/containers/DebtorGroupPage/DebtorGroupViewModel/DebtorGroupListViewModel.js
+++ b/src/containers/DebtorGroupPage/DebtorGroupViewModel/DebtorGroupListViewModel.js
@@ -105,7 +105,6 @@ class DebtorGroupListViewModel {
};
callbackOnSuccessHandler = (result) => {
- console.log('result.pagination', result.pagination);
if (result?.items) {
this.items = result.items;
this.pagination = result.pagination;
diff --git a/src/containers/FieldsPage/Component/ListFields.jsx b/src/containers/FieldsPage/Component/ListFields.jsx
index 9cf4f716..157e04eb 100644
--- a/src/containers/FieldsPage/Component/ListFields.jsx
+++ b/src/containers/FieldsPage/Component/ListFields.jsx
@@ -118,6 +118,11 @@ const ListFields = observer((props) => {
viewModel.getListByFilter('limitstart', (value - 1) * viewModel.pagination.pageLimit);
}
};
+
+ const deleteFields = () => {
+ viewModel.isLoading();
+ viewModel.deleteFields(listSelected);
+ };
return (
<>
@@ -125,6 +130,15 @@ const ListFields = observer((props) => {
{t('txt_fields')}
{
+ deleteFields();
+ },
+ },
{
title: t('txt_add_new_fields'),
icon: '/assets/images/plus.svg',
diff --git a/src/containers/FieldsPage/FieldStore/FieldStore.js b/src/containers/FieldsPage/FieldStore/FieldStore.js
index 28f96805..39fa4b44 100644
--- a/src/containers/FieldsPage/FieldStore/FieldStore.js
+++ b/src/containers/FieldsPage/FieldStore/FieldStore.js
@@ -141,4 +141,16 @@ export default class FieldStore {
return false;
}
+
+ async deleteFields(arr) {
+ try {
+ const aesirxPimFieldApiService = new AesirxPimFieldApiService();
+ const respondedData = await aesirxPimFieldApiService.deleteFields(arr);
+ return respondedData;
+ } catch (error) {
+ // no error throw
+ }
+
+ return false;
+ }
}
diff --git a/src/containers/FieldsPage/FieldViewModel/FieldListViewModel.js b/src/containers/FieldsPage/FieldViewModel/FieldListViewModel.js
index 7980e9ef..c278a3d1 100644
--- a/src/containers/FieldsPage/FieldViewModel/FieldListViewModel.js
+++ b/src/containers/FieldsPage/FieldViewModel/FieldListViewModel.js
@@ -136,6 +136,19 @@ class FieldListViewModel {
this.successResponse.state = true;
};
+ deleteFields = async (arr) => {
+ const res = await this.fieldStore.deleteFields(arr);
+ if (res) {
+ await this.fieldStore.getList(
+ this.filter,
+ this.filterList,
+ this.callbackOnSuccessHandler,
+ this.callbackOnErrorHandler
+ );
+ }
+ this.successResponse.state = true;
+ };
+
callbackOnErrorHandler = (error) => {
notify('Update unsuccessfully', 'error');
this.successResponse.state = false;
diff --git a/src/containers/ProductPricesPage/Component/ListProductPrice.jsx b/src/containers/ProductPricesPage/Component/ListProductPrice.jsx
index 3a2119fb..9469d0a3 100644
--- a/src/containers/ProductPricesPage/Component/ListProductPrice.jsx
+++ b/src/containers/ProductPricesPage/Component/ListProductPrice.jsx
@@ -14,35 +14,35 @@ const ListProductPrice = observer((props) => {
const { t } = props;
let listSelected = [];
- const productPriceViewModel = props.viewModel;
+ const viewModel = props.viewModel;
useEffect(() => {
- productPriceViewModel.initializeData();
+ viewModel.initializeData();
}, []);
const selectTabHandler = (value) => {
- productPriceViewModel.isLoading();
+ viewModel.isLoading();
if (value != 'default') {
- productPriceViewModel.getListByFilter('state', {
+ viewModel.getListByFilter('state', {
value: value,
type: 'filter',
});
} else {
- productPriceViewModel.getListByFilter('state', '');
+ viewModel.getListByFilter('state', '');
}
};
const selectShowItemsHandler = (value) => {
- productPriceViewModel.isLoading();
- productPriceViewModel.getListByFilter('list[limit]', value.value);
+ viewModel.isLoading();
+ viewModel.getListByFilter('list[limit]', value.value);
};
const selectPageHandler = (value) => {
- if (value != productPriceViewModel.successResponse.pagination.page) {
- productPriceViewModel.isLoading();
- productPriceViewModel.getListByFilter(
+ if (value != viewModel.successResponse.pagination.page) {
+ viewModel.isLoading();
+ viewModel.getListByFilter(
'limitstart',
- (value - 1) * productPriceViewModel.successResponse.pagination.pageLimit
+ (value - 1) * viewModel.successResponse.pagination.pageLimit
);
}
};
@@ -52,8 +52,13 @@ const ListProductPrice = observer((props) => {
};
const selectBulkActionsHandler = (value) => {
- productPriceViewModel.isLoading();
- productPriceViewModel.updateStatus(listSelected, value.value);
+ viewModel.isLoading();
+ viewModel.updateStatus(listSelected, value.value);
+ };
+
+ const deleteProductPrices = () => {
+ viewModel.isLoading();
+ viewModel.deleteProductPrices(listSelected);
};
const columnsTable = [
@@ -119,7 +124,7 @@ const ListProductPrice = observer((props) => {
{
- productPriceViewModel?.successResponse?.listPublishStatus.find(
+ viewModel?.successResponse?.listPublishStatus.find(
(o) => o.value == value.status
).label
}
@@ -139,6 +144,15 @@ const ListProductPrice = observer((props) => {
{t('txt_left_menu_price_management')}
{
+ deleteProductPrices();
+ },
+ },
{
title: t('txt_add_new_prices'),
icon: '/assets/images/plus.svg',
@@ -151,7 +165,7 @@ const ListProductPrice = observer((props) => {
/>
- {productPriceViewModel?.successResponse?.listPublishStatus.length > 0 && (
+ {viewModel?.successResponse?.listPublishStatus.length > 0 && (
<>
{
className="mb-3"
>
- {productPriceViewModel?.successResponse?.listPublishStatus.map((o) => (
+ {viewModel?.successResponse?.listPublishStatus.map((o) => (
))}
@@ -168,7 +182,7 @@ const ListProductPrice = observer((props) => {
{
Showing
({
label: `${(index + 1) * 10} items`,
@@ -199,13 +213,13 @@ const ListProductPrice = observer((props) => {
>
)}
- {productPriceViewModel?.successResponse?.state ? (
+ {viewModel?.successResponse?.state ? (
diff --git a/src/containers/ProductPricesPage/ProductPriceEdit/Component/ProductPriceInformation.jsx b/src/containers/ProductPricesPage/ProductPriceEdit/Component/ProductPriceInformation.jsx
index dd1bd6b5..5373d36c 100644
--- a/src/containers/ProductPricesPage/ProductPriceEdit/Component/ProductPriceInformation.jsx
+++ b/src/containers/ProductPricesPage/ProductPriceEdit/Component/ProductPriceInformation.jsx
@@ -37,8 +37,7 @@ const ProductPriceInformation = observer(
}
render() {
- const { t, isShowValidator } = this.props;
- console.log('isShowValidator', isShowValidator);
+ const { t } = this.props;
const generateFormSetting = [
{
fields: [
diff --git a/src/containers/ProductPricesPage/ProductPriceStore/ProductPriceStore.js b/src/containers/ProductPricesPage/ProductPriceStore/ProductPriceStore.js
index ac366634..bc6eecdc 100644
--- a/src/containers/ProductPricesPage/ProductPriceStore/ProductPriceStore.js
+++ b/src/containers/ProductPricesPage/ProductPriceStore/ProductPriceStore.js
@@ -153,4 +153,16 @@ export default class ProductPriceStore {
});
}
}
+
+ async deleteProductPrices(arr) {
+ try {
+ const aesirxPimProductPriceApiService = new AesirxPimProductPriceApiService();
+ const respondedData = await aesirxPimProductPriceApiService.deleteProductPrices(arr);
+ return respondedData;
+ } catch (error) {
+ // no error throw
+ }
+
+ return false;
+ }
}
diff --git a/src/containers/ProductPricesPage/ProductPriceViewModel/ProductPriceListViewModel.js b/src/containers/ProductPricesPage/ProductPriceViewModel/ProductPriceListViewModel.js
index abfb90bb..78fc09dd 100644
--- a/src/containers/ProductPricesPage/ProductPriceViewModel/ProductPriceListViewModel.js
+++ b/src/containers/ProductPricesPage/ProductPriceViewModel/ProductPriceListViewModel.js
@@ -97,6 +97,18 @@ class ProductPriceListViewModel {
this.successResponse.state = true;
};
+ deleteProductPrices = async (arr) => {
+ const res = await this.productPricesStore.deleteProductPrices(arr);
+ if (res) {
+ await this.productPricesStore.getList(
+ this.callbackOnSuccessHandler,
+ this.callbackOnErrorHandler,
+ this.successResponse.filters
+ );
+ }
+ this.successResponse.state = true;
+ };
+
callbackOnSuccessSetFeatured = async (result) => {
this.successResponse.listProducts = this.successResponse.listProducts.map((o) => {
if (o.id == result) {
diff --git a/src/containers/ProductsPage/Component/ListProducts.jsx b/src/containers/ProductsPage/Component/ListProducts.jsx
index d0d84465..8f794a89 100644
--- a/src/containers/ProductsPage/Component/ListProducts.jsx
+++ b/src/containers/ProductsPage/Component/ListProducts.jsx
@@ -70,17 +70,30 @@ const ListProducts = observer((props) => {
};
const selectCategoryHandler = (value) => {
- console.log(value.value);
viewModel.isLoading();
viewModel.getListByFilter('filter[category]', value.value);
};
+ const deleteProducts = () => {
+ viewModel.isLoading();
+ viewModel.deleteProducts(listSelected);
+ };
+
return (
<>
{t('txt_title_product_management')}
{
+ deleteProducts();
+ },
+ },
{
title: t('txt_add_new'),
icon: '/assets/images/plus.svg',
diff --git a/src/containers/ProductsPage/ProductStore/ProductStore.js b/src/containers/ProductsPage/ProductStore/ProductStore.js
index f14c5a61..48c418de 100644
--- a/src/containers/ProductsPage/ProductStore/ProductStore.js
+++ b/src/containers/ProductsPage/ProductStore/ProductStore.js
@@ -17,9 +17,9 @@ export default class ProductStore {
let resultOnSave;
- const createProductApiService = new AesirxPimProductApiService();
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
- resultOnSave = await createProductApiService.create(convertedUpdateGeneralData);
+ resultOnSave = await aesirxPimProductApiService.create(convertedUpdateGeneralData);
if (resultOnSave) {
runInAction(() => {
@@ -43,9 +43,9 @@ export default class ProductStore {
const convertedUpdateGeneralData =
ProductItemModel.__transformItemToApiOfUpdation(updateProductData);
let resultOnSave;
- const updateProductApiService = new AesirxPimProductApiService();
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
- resultOnSave = await updateProductApiService.update(convertedUpdateGeneralData);
+ resultOnSave = await aesirxPimProductApiService.update(convertedUpdateGeneralData);
if (resultOnSave) {
runInAction(() => {
callbackOnSuccess(resultOnSave);
@@ -69,9 +69,9 @@ export default class ProductStore {
const results = true;
if (results) {
- const getDetailInfoAPIService = new AesirxPimProductApiService();
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
- const respondedData = await getDetailInfoAPIService.getDetail(id);
+ const respondedData = await aesirxPimProductApiService.getDetail(id);
if (respondedData) {
runInAction(() => {
@@ -92,8 +92,8 @@ export default class ProductStore {
async getListCategories(callbackOnSuccess, callbackOnError) {
try {
- const getPimCategoyAPIService = new AesirxPimCategoryApiService();
- const respondedData = await getPimCategoyAPIService.getList({ 'list[limit]': 9999 });
+ const aesirxPimCategoryApiService = new AesirxPimCategoryApiService();
+ const respondedData = await aesirxPimCategoryApiService.getList({ 'list[limit]': 9999 });
if (respondedData) {
runInAction(() => {
@@ -114,8 +114,8 @@ export default class ProductStore {
async getList(callbackOnSuccess, callbackOnError, filters) {
try {
- const getPimProductAPIService = new AesirxPimProductApiService();
- const respondedData = await getPimProductAPIService.getList(filters);
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
+ const respondedData = await aesirxPimProductApiService.getList(filters);
if (respondedData) {
runInAction(() => {
callbackOnSuccess(respondedData);
@@ -135,8 +135,8 @@ export default class ProductStore {
async getListPublishStatus(callbackOnSuccess, callbackOnError) {
try {
- const getAesirxPimUtilApiService = new AesirxPimUtilApiService();
- const respondedData = await getAesirxPimUtilApiService.getListPublishStatus();
+ const aesirxPimUtilApiService = new AesirxPimUtilApiService();
+ const respondedData = await aesirxPimUtilApiService.getListPublishStatus();
if (respondedData) {
runInAction(() => {
callbackOnSuccess(respondedData);
@@ -158,8 +158,8 @@ export default class ProductStore {
if (!id) return false;
try {
- const getDetailInfoAPIService = new AesirxPimProductApiService();
- const respondedData = await getDetailInfoAPIService.getDetailInfo(id);
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
+ const respondedData = await aesirxPimProductApiService.getDetailInfo(id);
return respondedData;
} catch (error) {
// no error throw
@@ -170,8 +170,20 @@ export default class ProductStore {
async updateStatus(arr, status) {
try {
- const updateStatusAPIService = new AesirxPimProductApiService();
- const respondedData = await updateStatusAPIService.updateStatus(arr, status);
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
+ const respondedData = await aesirxPimProductApiService.updateStatus(arr, status);
+ return respondedData;
+ } catch (error) {
+ // no error throw
+ }
+
+ return false;
+ }
+
+ async deleteProducts(arr) {
+ try {
+ const aesirxPimProductApiService = new AesirxPimProductApiService();
+ const respondedData = await aesirxPimProductApiService.deleteProducts(arr);
return respondedData;
} catch (error) {
// no error throw
diff --git a/src/containers/ProductsPage/ProductViewModel/ProductListViewModel.js b/src/containers/ProductsPage/ProductViewModel/ProductListViewModel.js
index 08c73c87..951d3cd1 100644
--- a/src/containers/ProductsPage/ProductViewModel/ProductListViewModel.js
+++ b/src/containers/ProductsPage/ProductViewModel/ProductListViewModel.js
@@ -105,6 +105,18 @@ class ProductListViewModel {
this.successResponse.state = true;
};
+ deleteProducts = async (arr) => {
+ const res = await this.productStore.deleteProducts(arr);
+ if (res) {
+ await this.productStore.getList(
+ this.callbackOnSuccessHandler,
+ this.callbackOnErrorHandler,
+ this.successResponse.filters
+ );
+ }
+ this.successResponse.state = true;
+ };
+
callbackOnSuccessSetFeatured = async (result) => {
this.successResponse.listProducts = this.successResponse.listProducts.map((o) => {
if (o.id == result) {