diff --git a/app/code/Magento/Wishlist/view/frontend/web/js/add-to-wishlist.js b/app/code/Magento/Wishlist/view/frontend/web/js/add-to-wishlist.js index baba22455a45b56fbd38e11331a0251a9252aa25..709b552bf5727d9388944ba3fcdc6eb5febda9fa 100644 --- a/app/code/Magento/Wishlist/view/frontend/web/js/add-to-wishlist.js +++ b/app/code/Magento/Wishlist/view/frontend/web/js/add-to-wishlist.js @@ -32,7 +32,8 @@ define([ this._on(events); }, _updateWishlistData: function(event) { - var dataToAdd = {}; + var dataToAdd = {}, + isFileUploaded = false; if (event.handleObj.selector == this.options.qtyInfo) { this._updateAddToWishlistButton({}); event.stopPropagation(); @@ -41,20 +42,24 @@ define([ var self = this; $(event.handleObj.selector).each(function(index, element){ if ($(element).is('input[type=text]') - || $(element).is('textarea')) { + || $(element).is('input[type=checkbox]:checked') + || $(element).is('input[type=radio]:checked') + || $('#' + element.id + ' option:selected').length + || $(element).is('textarea') + ) { dataToAdd = $.extend({}, dataToAdd, self._getElementData(element)); return; } - if ($(element).is('input[type=file]')) { + if ($(element).is('input[type=file]') && $(element).val()) { var hidden = $('input[name=' + $(element).attr('name') + '_action]'); dataToAdd = $.extend({}, dataToAdd, self._getElementData(hidden)); - return; - } - if ($(element).is(':checked') - || $(element).find(':checked').length) { - dataToAdd = $.extend({}, dataToAdd, self._getElementData(element)); + isFileUploaded = true; } }); + console.log(dataToAdd); + if (isFileUploaded) { + this.bindFormSubmit(); + } this._updateAddToWishlistButton(dataToAdd); event.stopPropagation(); }, @@ -107,6 +112,23 @@ define([ $.each(dataToRemove, function(key, value) { delete params.data[key]; }); + }, + bindFormSubmit: function() { + var self = this; + $('[data-action="add-to-wishlist"]').on('click', function(event) { + event.stopPropagation(); + event.preventDefault(); + + var element = $('input[type=file]' + self.options.customOptionsInfo), + params = $(event.currentTarget).data('post'), + form = $(element).closest('form'), + action = params.action; + if (params.data.uenc) { + action += 'uenc/' + params.data.uenc; + } + + $(form).attr('action', action).submit(); + }); } });