From 218976f33a8f5535d1ddb35a8e684d4b9a58d8ca Mon Sep 17 00:00:00 2001
From: Volodymyr Zaets <vzaets@ebay.com>
Date: Fri, 23 Oct 2015 16:36:08 +0300
Subject: [PATCH] MAGETWO-44422: Inconsistent confirm modal window behavior

- Fix mini shopping cart
- Update modal and confirm widget (add event to modal and confirm callbacks )
---
 .../Checkout/view/frontend/web/js/sidebar.js     |  3 +++
 .../Magento/Ui/view/base/web/js/modal/confirm.js | 16 ++++++++--------
 .../Magento/Ui/view/base/web/js/modal/modal.js   |  4 ++--
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index 34501bbeb10..f503e5be641 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -53,6 +53,9 @@ define([
                     actions: {
                         confirm: function () {
                             self._removeItem($(event.currentTarget));
+                        },
+                        always: function (event) {
+                            event.stopImmediatePropagation();
                         }
                     }
                 });
diff --git a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js
index 098cb866974..1a27b96413c 100644
--- a/app/code/Magento/Ui/view/base/web/js/modal/confirm.js
+++ b/app/code/Magento/Ui/view/base/web/js/modal/confirm.js
@@ -40,8 +40,8 @@ define([
                 /**
                  * Click handler.
                  */
-                click: function () {
-                    this.closeModal();
+                click: function (event) {
+                    this.closeModal(event);
                 }
             }, {
                 text: $.mage.__('OK'),
@@ -50,8 +50,8 @@ define([
                 /**
                  * Click handler.
                  */
-                click: function () {
-                    this.closeModal(true);
+                click: function (event) {
+                    this.closeModal(event, true);
                 }
             }]
         },
@@ -82,15 +82,15 @@ define([
         /**
          * Close modal window.
          */
-        closeModal: function (result) {
+        closeModal: function (event, result) {
             result = result || false;
 
             if (result) {
-                this.options.actions.confirm();
+                this.options.actions.confirm(event);
             } else {
-                this.options.actions.cancel();
+                this.options.actions.cancel(event);
             }
-            this.options.actions.always();
+            this.options.actions.always(event);
             this.element.bind('confirmclosed', _.bind(this._remove, this));
 
             return this._super();
diff --git a/app/code/Magento/Ui/view/base/web/js/modal/modal.js b/app/code/Magento/Ui/view/base/web/js/modal/modal.js
index b6dd6da1651..23011d607cd 100644
--- a/app/code/Magento/Ui/view/base/web/js/modal/modal.js
+++ b/app/code/Magento/Ui/view/base/web/js/modal/modal.js
@@ -78,8 +78,8 @@ define([
                 /**
                  * Default action on button click
                  */
-                click: function () {
-                    this.closeModal();
+                click: function (event) {
+                    this.closeModal(event);
                 }
             }]
         },
-- 
GitLab