diff --git a/src/containers/Alerts/TransactionLocking/cancelUnlockingPartialAlert.js b/src/containers/Alerts/TransactionLocking/cancelUnlockingPartialAlert.js
new file mode 100644
index 000000000..487cb2805
--- /dev/null
+++ b/src/containers/Alerts/TransactionLocking/cancelUnlockingPartialAlert.js
@@ -0,0 +1,82 @@
+import React from 'react';
+import intl from 'react-intl-universal';
+import { FormattedMessage as T, FormattedHTMLMessage } from 'components';
+import { Intent, Alert } from '@blueprintjs/core';
+import { AppToaster } from 'components';
+
+import { useCancelUnlockingPartialTransactions } from 'hooks/query';
+
+import withAlertStoreConnect from 'containers/Alert/withAlertStoreConnect';
+import withAlertActions from 'containers/Alert/withAlertActions';
+
+import { compose } from 'utils';
+
+/**
+ * Cancel Unlocking partial transactions alerts.
+ */
+function CancelUnlockingPartialTarnsactions({
+ name,
+
+ // #withAlertStoreConnect
+ isOpen,
+ payload: { module },
+
+ // #withAlertActions
+ closeAlert,
+}) {
+ const { mutateAsync: cancelUnlockingPartial, isLoading } =
+ useCancelUnlockingPartialTransactions();
+
+ // Handle cancel.
+ const handleCancel = () => {
+ closeAlert(name);
+ };
+
+ // Handle confirm.
+ const handleConfirm = () => {
+ const values = {
+ module: module,
+ };
+ cancelUnlockingPartial(values)
+ .then(() => {
+ AppToaster.show({
+ message: intl.get(
+ 'unlocking_partial_transactions.alert.success_message',
+ ),
+ intent: Intent.SUCCESS,
+ });
+ })
+ .catch(
+ ({
+ response: {
+ data: { errors },
+ },
+ }) => {},
+ )
+ .finally(() => {
+ closeAlert(name);
+ });
+ };
+
+ return (
+ }
+ confirmButtonText={}
+ icon="trash"
+ intent={Intent.WARNING}
+ isOpen={isOpen}
+ onCancel={handleCancel}
+ onConfirm={handleConfirm}
+ loading={isLoading}
+ >
+
+
+
+
+ );
+}
+
+export default compose(
+ withAlertStoreConnect(),
+ withAlertActions,
+)(CancelUnlockingPartialTarnsactions);
diff --git a/src/containers/AlertsContainer/registered.js b/src/containers/AlertsContainer/registered.js
index bbab107a3..57d66288a 100644
--- a/src/containers/AlertsContainer/registered.js
+++ b/src/containers/AlertsContainer/registered.js
@@ -19,6 +19,7 @@ import CurrenciesAlerts from '../Preferences/Currencies/CurrenciesAlerts';
import RolesAlerts from '../Preferences/Users/Roles/RolesAlerts';
import CreditNotesAlerts from '../Sales/CreditNotes/CreditNotesAlerts';
import VendorCreditNotesAlerts from '../Purchases/CreditNotes/VendorCreditNotesAlerts';
+import TransactionsLockingAlerts from '../TransactionsLocking/TransactionsLockingAlerts'
export default [
...AccountsAlerts,
@@ -42,4 +43,5 @@ export default [
...RolesAlerts,
...CreditNotesAlerts,
...VendorCreditNotesAlerts,
+ ...TransactionsLockingAlerts
];
diff --git a/src/containers/Dialogs/UnlockingTransactionsDialog/UnlockingTransactionsFormProvider.js b/src/containers/Dialogs/UnlockingTransactionsDialog/UnlockingTransactionsFormProvider.js
index 8ca8adc57..60efe8a10 100644
--- a/src/containers/Dialogs/UnlockingTransactionsDialog/UnlockingTransactionsFormProvider.js
+++ b/src/containers/Dialogs/UnlockingTransactionsDialog/UnlockingTransactionsFormProvider.js
@@ -1,30 +1,26 @@
import React from 'react';
import { DialogContent } from 'components';
-import {
- useCancelLockingTransaction,
- useCancelUnlockingPartialTransactions,
-} from 'hooks/query';
+import { useCancelLockingTransaction } from 'hooks/query';
const UnlockingTransactionsContext = React.createContext();
/**
* Unlocking transactions form provider.
*/
-function UnlockingTransactionsFormProvider({ moduleName, dialogName, ...props }) {
+function UnlockingTransactionsFormProvider({
+ moduleName,
+ dialogName,
+ ...props
+}) {
// Cancle locking transactions mutations.
const { mutateAsync: cancelLockingTransactionMutate } =
useCancelLockingTransaction();
- // Cancel unlocking partial transactions mutations.
- const { mutateAsync: cancelUnLockingPartialTransactionMutate } =
- useCancelUnlockingPartialTransactions();
-
// State provider.
const provider = {
dialogName,
moduleName,
cancelLockingTransactionMutate,
- cancelUnLockingPartialTransactionMutate,
};
return (
diff --git a/src/containers/Items/ItemsAlerts.js b/src/containers/Items/ItemsAlerts.js
index 6918fe4a2..ad82b4e75 100644
--- a/src/containers/Items/ItemsAlerts.js
+++ b/src/containers/Items/ItemsAlerts.js
@@ -16,6 +16,10 @@ const ItemBulkDeleteAlert = React.lazy(() =>
import('containers/Alerts/Items/ItemBulkDeleteAlert'),
);
+const cancelUnlockingPartialAlert = React.lazy(() =>
+ import('../Alerts/TransactionLocking/cancelUnlockingPartialAlert'),
+);
+
/**
* Items alert.
*/
diff --git a/src/containers/TransactionsLocking/TransactionsLockingAlerts.js b/src/containers/TransactionsLocking/TransactionsLockingAlerts.js
new file mode 100644
index 000000000..c4e9554aa
--- /dev/null
+++ b/src/containers/TransactionsLocking/TransactionsLockingAlerts.js
@@ -0,0 +1,15 @@
+import React from 'react';
+
+const cancelUnlockingPartialAlert = React.lazy(() =>
+ import('../Alerts/TransactionLocking/cancelUnlockingPartialAlert'),
+);
+
+/**
+ * Transactions alerts.
+ */
+export default [
+ {
+ name: 'cancel-unlocking-partail',
+ component: cancelUnlockingPartialAlert,
+ },
+];
diff --git a/src/containers/TransactionsLocking/TransactionsLockingList.js b/src/containers/TransactionsLocking/TransactionsLockingList.js
index c04054500..933f66171 100644
--- a/src/containers/TransactionsLocking/TransactionsLockingList.js
+++ b/src/containers/TransactionsLocking/TransactionsLockingList.js
@@ -12,6 +12,8 @@ import {
} from './components';
import { useTransactionsLockingContext } from './TransactionsLockingProvider';
import withDialogActions from 'containers/Dialog/withDialogActions';
+import withAlertsActions from 'containers/Alert/withAlertActions';
+
import {
validateMoveToFullLocking,
validateMoveToPartialLocking,
@@ -21,18 +23,35 @@ function Paragraph({ className, children }) {
return {children}
;
}
-function TransactionsLockingList({ items, onlock, onUnlock, onUnlockPartial }) {
- return items.map(({ is_enabled, module, formatted_module, description }) => (
-
- ));
+function TransactionsLockingList({
+ items,
+ onLock,
+ onUnlock,
+ onUnlockPartial,
+ onCancel,
+}) {
+ return items.map(
+ ({
+ is_enabled,
+ is_partial_unlock,
+ module,
+ formatted_module,
+ description,
+ }) => (
+
+ ),
+ );
}
function TransactionsLockingFull({ onLock, onUnlock, onUnlockPartial }) {
@@ -137,11 +156,13 @@ function TransactionsLockingAlert() {
function TransactionsLockingBodyJsx({
// #withDialogActions
openDialog,
+
+ // #withAlertsActions
+ openAlert,
}) {
const {
transactionsLocking: { modules },
isTransactionLockingLoading,
-
transactionLockingType,
} = useTransactionsLockingContext();
@@ -159,25 +180,35 @@ function TransactionsLockingBodyJsx({
openDialog('unlocking-partial-transactions', { module: module });
};
+ // Handle cancel.
+ const handleCancelUnlockingPartail = (module) => {
+ openAlert('cancel-unlocking-partail', { module: module });
+ };
+
return !isTransactionLockingLoading ? (
transactionLockingType === 'partial' ? (
) : (
-
+
)
) : (
);
}
-const TransactionsLockingBody = R.compose(withDialogActions)(
- TransactionsLockingBodyJsx,
-);
+const TransactionsLockingBody = R.compose(
+ withAlertsActions,
+ withDialogActions,
+)(TransactionsLockingBodyJsx);
/**
* Transactions locking list.
diff --git a/src/containers/TransactionsLocking/components.js b/src/containers/TransactionsLocking/components.js
index afec51644..1276f20ab 100644
--- a/src/containers/TransactionsLocking/components.js
+++ b/src/containers/TransactionsLocking/components.js
@@ -46,6 +46,7 @@ export const TransactionLockingContent = ({
onEditLock,
onUnlockFull,
onUnlockPartial,
+ onCancle,
}) => {
const handleLockClick = (event) => {
safeInvoke(onLock, module, event);
@@ -60,6 +61,9 @@ export const TransactionLockingContent = ({
const handleUnlockFull = (event) => {
safeInvoke(onUnlockFull, module, event);
};
+ const handleCanclel = (event) => {
+ safeInvoke(onCancle, module, event);
+ };
return (
@@ -85,7 +89,7 @@ export const TransactionLockingContent = ({
-
+
-
+
+
+
+
+
diff --git a/src/lang/en/index.json b/src/lang/en/index.json
index bdf26b925..006dba940 100644
--- a/src/lang/en/index.json
+++ b/src/lang/en/index.json
@@ -1618,5 +1618,8 @@
"unlocking_partial_transactions.dialog.success_message": "Transactions locking haas been unlocked partially successfully.",
"unlocking_full_transactions.dialog.label": "Full unlocking transactions",
"unlocking_full_transactions.dialog.reason": "Unlocking reason",
- "unlocking_full_transactions.dialog.success_message": "Partial transaction unlocking has been canceled successfully."
+ "unlocking_partial_transactions.alert.success_message": "Partial transaction unlocking has been canceled successfully.",
+ "unlocking_partial_transactions.alert.message": "Are you sure you want to cancel this ?"
+
+
}
\ No newline at end of file