diff --git a/assets/js/src/export/export.js b/assets/js/src/export/export.js
index 147e372f3c..e20bf200f8 100644
--- a/assets/js/src/export/export.js
+++ b/assets/js/src/export/export.js
@@ -16,10 +16,11 @@ define(
return;
}
jQuery(document).ready(function () {
- // halt operation if there are no lists with subscribers found
- if (!exportData.lists) return;
-
- var subscribers_export_template = Handlebars.compile($('#mailpoet_subscribers_export_template').html());
+ if (!exportData.segments) {
+ return;
+ }
+ var subscribers_export_template =
+ Handlebars.compile(jQuery('#mailpoet_subscribers_export_template').html());
//render template
jQuery('#mailpoet_subscribers_export > div.inside').html(subscribers_export_template(exportData));
@@ -53,18 +54,28 @@ define(
})
.on('select2:selecting', function (selectEvent) {
var selectElement = this,
- selectedOptionId = selectEvent.params.args.data.id;
-
- });
-/* .change(function (event) {
- var trigger_element = this;
-
- if (event.added && event.added.id === 'deselect_all') jQuery(trigger_element).select2('val', '');
- if (event.added && event.added.id === 'select_all') jQuery(trigger_element).select2('val', columns_ids);
-
- if ((exportData.lists && segmentsContainerElement.select2('data').length && subscriberFieldsContainerElement.select2('data').length)
+ selectedOptionId = selectEvent.params.args.data.id,
+ fieldsToExclude = ['select', 'deselect'];
+ if (_.contains(fieldsToExclude, selectedOptionId)) {
+ selectEvent.preventDefault();
+ if (selectedOptionId === 'deselect') {
+ jQuery(selectElement).select2('val', '');
+ } else {
+ var allOptions = [];
+ _.each(container.find('option'), function (field) {
+ if (!_.contains(fieldsToExclude, field.value)) {
+ allOptions.push(field.value);
+ }
+ });
+ jQuery(selectElement).select2('val', allOptions);
+ }
+ jQuery(selectElement).select2('close');
+ }
+ })
+ .on('change', function() {
+ if ((exportData.segments && segmentsContainerElement.select2('data').length && subscriberFieldsContainerElement.select2('data').length)
||
- (!exportData.lists && subscriberFieldsContainerElement.select2('data').length)
+ (!exportData.segments && subscriberFieldsContainerElement.select2('data').length)
) {
jQuery(nextStepElement).removeClass('button-disabled');
}
@@ -76,62 +87,59 @@ define(
jQuery('.mailpoet_group_by_list').show();
}
else if (exportData.group_by_list) jQuery('.mailpoet_group_by_list').hide();
- })*/
+ });
};
- // render lists and columns
- renderSegmentsAndFields(subscriberFieldsContainerElement, columns);
- renderSegmentsAndFields(segmentsContainerElement, lists);
+ renderSegmentsAndFields(subscriberFieldsContainerElement, subscriberFieldsSelect2);
+ renderSegmentsAndFields(segmentsContainerElement, segments);
- // pre-select columns
- // subscriberFieldsContainerElement.select2('val', ['subscriber_state', 'subscriber_email', 'subscriber_firstname', 'subscriber_lastname']);
+ subscriberFieldsContainerElement.select2('val', ['status', 'email', 'first_name', 'last_name']);
- // handle confirmed/unconfirmed behavior
exportConfirmedOptionElement.change(function () {
if (this.value == 1) {
exportData.confirmed_option = true;
- renderSegmentsAndFields(segmentsContainerElement, lists_confirmed);
+ renderSegmentsAndFields(segmentsContainerElement, segmentsWithConfirmedSubscribers);
}
else {
exportData.confirmed_option = false;
- renderSegmentsAndFields(segmentsContainerElement, lists);
+ renderSegmentsAndFields(segmentsContainerElement, segments);
}
});
-/*
- // process export
- nextStepElement.click(function () {
- if (jQuery(this).hasClass('button-disabled')) return;
- MailPoet.Modal.loading(true);
- mailpoet_post_json(
- 'subscribers_export.php',
- {
- 'option_confirmed': exportData.confirmed_option,
- 'option_format': jQuery(':radio[name="option_format"]:checked').val(),
- 'option_group_by_list': (groupBySegmentOptionElement.is(":visible")) ? groupBySegmentOptionElement.prop('checked') : false,
- 'lists': (exportData.lists) ? segmentsContainerElement.select2('val') : false,
- 'columns': subscriberFieldsContainerElement.select2('data'),
- 'export_directory': export_directory
- },
- function (response) {
- if (response.result === true) {
- response.message = ""
- .replace('%1$s', '' + response.total + '')
- .replace('[link]', '')
- .replace('[/link]', '')
- jQuery('#export_result_notice > ul > li').html(response.message)
- jQuery('#export_result_notice').show();
- window.location.href = export_url + response.filename;
- }
- else {
- MailPoet.Notice.error(response.message);
- }
- MailPoet.Modal.loading(false);
- },
- function (response) {
- MailPoet.Modal.loading(false);
- MailPoet.Notice.error(' ' + response.statusText.toLowerCase() + '.', {scroll: true});
- }
- )
- })*/
+ /*
+ // process export
+ nextStepElement.click(function () {
+ if (jQuery(this).hasClass('button-disabled')) return;
+ MailPoet.Modal.loading(true);
+ mailpoet_post_json(
+ 'subscribers_export.php',
+ {
+ 'option_confirmed': exportData.confirmed_option,
+ 'option_format': jQuery(':radio[name="option_format"]:checked').val(),
+ 'option_group_by_list': (groupBySegmentOptionElement.is(":visible")) ? groupBySegmentOptionElement.prop('checked') : false,
+ 'segments': (exportData.segments) ? segmentsContainerElement.select2('val') : false,
+ 'columns': subscriberFieldsContainerElement.select2('data'),
+ 'export_directory': export_directory
+ },
+ function (response) {
+ if (response.result === true) {
+ response.message = ""
+ .replace('%1$s', '' + response.total + '')
+ .replace('[link]', '')
+ .replace('[/link]', '')
+ jQuery('#export_result_notice > ul > li').html(response.message)
+ jQuery('#export_result_notice').show();
+ window.location.href = export_url + response.filename;
+ }
+ else {
+ MailPoet.Notice.error(response.message);
+ }
+ MailPoet.Modal.loading(false);
+ },
+ function (response) {
+ MailPoet.Modal.loading(false);
+ MailPoet.Notice.error(' ' + response.statusText.toLowerCase() + '.', {scroll: true});
+ }
+ )
+ })*/
});
});
\ No newline at end of file
diff --git a/tests/unit/ImportExport/BootStrapMenuCest.php b/tests/unit/ImportExport/BootStrapMenuCest.php
index 6c5bcabdbe..8defaa30c8 100644
--- a/tests/unit/ImportExport/BootStrapMenuCest.php
+++ b/tests/unit/ImportExport/BootStrapMenuCest.php
@@ -146,7 +146,7 @@ class BootStrapMenuCest {
array(
'name' => 'System columns',
'children' => $bootStrapMenu->formatSubscriberFields(
- $bootStrapMenu->subscriberFields
+ $bootStrapMenu->getSubscriberFields()
)
)
);
@@ -156,7 +156,7 @@ class BootStrapMenuCest {
array(
'name' => __('User columns'),
'children' => $bootStrapMenu->formatSubscriberCustomFields(
- $bootStrapMenu->subscriberCustomFields
+ $bootStrapMenu->getSubscriberCustomFields()
)
)
));
@@ -165,10 +165,9 @@ class BootStrapMenuCest {
$bootStrapMenu->getSubscriberCustomFields()
);
expect($formattedFieldsForSelect2)->equals($select2FieldsWithCustomFields);
- $bootStrapMenu->subscriberCustomFields = false;
$formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2(
$bootStrapMenu->getSubscriberFields(),
- $bootStrapMenu->getSubscriberCustomFields()
+ array()
);
expect($formattedFieldsForSelect2)->equals($select2FieldsWithoutCustomFields);
}
@@ -192,7 +191,7 @@ class BootStrapMenuCest {
array(
'name' => 'System columns',
'children' => $bootStrapMenu->formatSubscriberFields(
- $bootStrapMenu->subscriberFields
+ $bootStrapMenu->getSubscriberFields()
)
)
);
@@ -202,7 +201,7 @@ class BootStrapMenuCest {
array(
'name' => __('User columns'),
'children' => $bootStrapMenu->formatSubscriberCustomFields(
- $bootStrapMenu->subscriberCustomFields
+ $bootStrapMenu->getSubscriberCustomFields()
)
)
));
@@ -211,10 +210,9 @@ class BootStrapMenuCest {
$bootStrapMenu->getSubscriberCustomFields()
);
expect($formattedFieldsForSelect2)->equals($select2FieldsWithCustomFields);
- $bootStrapMenu->subscriberCustomFields = false;
$formattedFieldsForSelect2 = $bootStrapMenu->formatFieldsForSelect2(
$bootStrapMenu->getSubscriberFields(),
- $bootStrapMenu->getSubscriberCustomFields()
+ array()
);
expect($formattedFieldsForSelect2)->equals($select2FieldsWithoutCustomFields);
}
diff --git a/views/export.html b/views/export.html
index 31cf07b2a0..fc39333e13 100644
--- a/views/export.html
+++ b/views/export.html
@@ -118,7 +118,7 @@
exportData = {
segments: segments.length || null,
segmentsWithConfirmedSubscribers: segmentsWithConfirmedSubscribers.length || null,
- exportConfirmedOption: false,
+ exportConfirmedOption: true,
groupBySegmentOption: (segments.length > 1 || segmentsWithConfirmedSubscribers.length > 1) ? true : null
},
export_location = '',