From bcbc07082f9cef3fa88f07df8c13b8296a466a3e Mon Sep 17 00:00:00 2001
From: okarpenko <okarpenko@ebay.com>
Date: Wed, 24 Jun 2015 17:26:08 +0300
Subject: [PATCH] MAGETWO-38156: Move gift message to cart

---
 .../GiftMessage/Model/GiftMessageConfigProvider.php   | 11 ++++++++++-
 .../view/frontend/web/js/model/gift-message.js        | 10 ++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php
index eb4c83db358..431c1b8afbf 100644
--- a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php
+++ b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php
@@ -11,6 +11,7 @@ use Magento\Framework\App\Http\Context as HttpContext;
 use Magento\Customer\Model\Context as CustomerContext;
 use Magento\Framework\UrlInterface;
 use Magento\Framework\Locale\FormatInterface as LocaleFormat;
+use Magento\Framework\Data\Form\FormKey;
 
 /**
  * Configuration provider for GiftMessage rendering on "Checkout cart" page.
@@ -49,6 +50,11 @@ class GiftMessageConfigProvider implements ConfigProviderInterface
      */
     protected $localeFormat;
 
+    /**
+     * @var FormKey
+     */
+    protected $formKey;
+
     /**
      * @param \Magento\Framework\App\Helper\Context $context
      * @param \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository
@@ -65,7 +71,8 @@ class GiftMessageConfigProvider implements ConfigProviderInterface
         \Magento\Checkout\Model\Session $checkoutSession,
         HttpContext $httpContext,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
-        LocaleFormat $localeFormat
+        LocaleFormat $localeFormat,
+        FormKey $formKey
     ) {
         $this->scopeConfiguration = $context->getScopeConfig();
         $this->cartRepository = $cartRepository;
@@ -74,6 +81,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface
         $this->httpContext = $httpContext;
         $this->storeManager = $storeManager;
         $this->localeFormat = $localeFormat;
+        $this-> formKey = $formKey;
     }
 
     /**
@@ -107,6 +115,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface
         );
         $configuration['storeCode'] = $this->getStoreCode();
         $configuration['isCustomerLoggedIn'] = $this->isCustomerLoggedIn();
+        $configuration['formKey'] = $this->formKey->getFormKey();
         $store = $this->storeManager->getStore();
         $configuration['baseUrl'] = $store->isFrontUrlSecure()
                 ? $store->getBaseUrl(UrlInterface::URL_TYPE_LINK, true)
diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js
index eec30f4e610..ad91613b136 100644
--- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js
+++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js
@@ -3,8 +3,8 @@
  * See COPYING.txt for license details.
  */
 /*global define*/
-define(['Magento_Ui/js/lib/component/provider', 'underscore'],
-    function (provider, _) {
+define(['Magento_Ui/js/lib/component/provider', 'underscore', 'mage/url'],
+    function (provider, _, url) {
         "use strict";
         return function (itemId) {
             var model = {
@@ -65,6 +65,7 @@ define(['Magento_Ui/js/lib/component/provider', 'underscore'],
                 },
                 getAfterSubmitCallbacks: function() {
                     var callbacks = [];
+                    callbacks.push(this.afterSubmit);
                     _.each(this.additionalOptions, function(option) {
                         if (_.isFunction(option.afterSubmit)) {
                             callbacks.push(option.afterSubmit);
@@ -72,6 +73,11 @@ define(['Magento_Ui/js/lib/component/provider', 'underscore'],
                     });
                     return callbacks;
                 },
+                afterSubmit: function() {
+                    window.location.href = url.build('checkout/cart/updatePost')
+                        + '?form_key=' + window.giftOptionsConfig.giftMessage.formKey
+                        + '&cart[]';
+                },
                 getSubmitParams: function(remove) {
                     var params = {},
                         self = this;
-- 
GitLab