diff --git a/assets/js/src/newsletter_editor/blocks/products.js b/assets/js/src/newsletter_editor/blocks/products.js index 42b773d595..79a3852949 100644 --- a/assets/js/src/newsletter_editor/blocks/products.js +++ b/assets/js/src/newsletter_editor/blocks/products.js @@ -1,11 +1,11 @@ /** - * Posts block. + * Products block. * * This block works slightly differently compared to any other block. * The difference is that once the user changes settings of this block, * it will be removed and replaced with other blocks. So this block will * not appear in the final JSON structure, it serves only as a placeholder - * for posts, that will be comprised of container, image, button and text blocks + * for products, that will be comprised of container, image, button and text blocks * * This block depends on blocks.button and blocks.divider for block model and * block settings view. @@ -39,7 +39,7 @@ Module.ProductsBlockModel = base.BlockModel.extend({ withLayout: true, amount: '10', offset: 0, - contentType: 'post', // 'post'|'page'|'mailpoet_page' + contentType: 'product', postStatus: 'publish', // 'draft'|'pending'|'private'|'publish'|'future' terms: [], // List of category and tag objects search: '', // Search keyword term @@ -94,7 +94,7 @@ Module.ProductsBlockModel = base.BlockModel.extend({ this.fetchAvailableProducts(); this.on('change', this._updateDefaults, this); - this.on('change:amount change:contentType change:terms change:inclusionType change:postStatus change:search change:sortBy', refreshAvailableProducts); + this.on('change:amount change:terms change:inclusionType change:postStatus change:search change:sortBy', refreshAvailableProducts); this.on('loadMoreProducts', this._loadMoreProducts, this); this.listenTo(this.get('_selectedProducts'), 'add remove reset', refreshTransformedProducts); @@ -107,6 +107,7 @@ Module.ProductsBlockModel = base.BlockModel.extend({ fetchAvailableProducts: function fetchAvailableProducts() { var that = this; this.set('offset', 0); + this.set('contentType', 'product'); CommunicationComponent.getPosts(this.toJSON()).done(function getPostsDone(products) { that.get('_availableProducts').reset(products); that.get('_selectedProducts').reset(); // Empty out the collection @@ -313,13 +314,12 @@ ProductSelectionSettingsView = Marionette.View.extend({ return window.templates.postSelectionProductsBlockSettings; }, regions: { - posts: '.mailpoet_post_selection_container', + posts: '.mailpoet_product_selection_container', }, events: function events() { return { - 'change .mailpoet_settings_posts_content_type': _.partial(this.changeField, 'contentType'), - 'change .mailpoet_posts_post_status': _.partial(this.changeField, 'postStatus'), - 'input .mailpoet_posts_search_term': _.partial(this.changeField, 'search'), + 'change .mailpoet_products_post_status': _.partial(this.changeField, 'postStatus'), + 'input .mailpoet_products_search_term': _.partial(this.changeField, 'search'), }; }, modelEvents: { @@ -330,10 +330,10 @@ ProductSelectionSettingsView = Marionette.View.extend({ } }, loadingMoreProducts: function loadingMoreProducts() { - this.$('.mailpoet_post_selection_loading').css('visibility', 'visible'); + this.$('.mailpoet_product_selection_loading').css('visibility', 'visible'); }, moreProductsLoaded: function moreProductsLoaded() { - this.$('.mailpoet_post_selection_loading').css('visibility', 'hidden'); + this.$('.mailpoet_product_selection_loading').css('visibility', 'hidden'); }, }, templateContext: function templateContext() { @@ -344,7 +344,6 @@ ProductSelectionSettingsView = Marionette.View.extend({ onRender: function onRender() { var productsView; // Dynamically update available post types - CommunicationComponent.getPostTypes().done(_.bind(this._updateContentTypes, this)); productsView = new ProductSelectionCollectionView({ collection: this.model.get('_availableProducts'), blockModel: this.model, @@ -355,7 +354,7 @@ ProductSelectionSettingsView = Marionette.View.extend({ onAttach: function onAttach() { var that = this; - this.$('.mailpoet_posts_categories_and_tags').select2({ + this.$('.mailpoet_products_categories_and_tags').select2({ multiple: true, allowClear: true, placeholder: MailPoet.I18n.t('categoriesAndTags'), @@ -427,19 +426,6 @@ ProductSelectionSettingsView = Marionette.View.extend({ changeField: function changeField(field, event) { this.model.set(field, jQuery(event.target).val()); }, - _updateContentTypes: function updateContentTypes(productTypes) { - var select = this.$('.mailpoet_settings_posts_content_type'); - var selectedValue = this.model.get('contentType'); - - select.find('option').remove(); - _.each(productTypes, function productTypesMap(type) { - select.append(jQuery('