File: /home/ohirex/web/ohirex.com/public_html/wp-content/plugins/mailster/assets/js/export-script.js
mailster = (function (mailster, $, window, document) {
'use strict';
var exportstatus = $('.status');
mailster.events.push('documentReady', update_export_count);
mailster.events.push('documentReady', function () {
$.fn.sortable &&
$('.export-order')
.sortable({
connectWith: '.export-order',
_placeholder: 'ui-state-highlight',
containment: '.export-order-wrap',
receive: function (event, ui) {
ui.item
.find('input')
.prop(
'checked',
ui.item.closest('.export-order').is('.selected')
);
},
})
.on('change', 'input', function () {
var _this = $(this);
_this
.parent()
.appendTo(
_this.is(':checked')
? $('.export-order.selected')
: $('.export-order.unselected')
);
});
});
mailster.$.document
.on(
'change',
'#export-subscribers input,#export-subscribers select',
update_export_count
)
.on('click', '.export-order-add', function () {
$('.export-order.unselected')
.find('li')
.appendTo('.export-order.selected')
.find('input')
.prop('checked', true);
return false;
})
.on('click', '.export-order-remove', function () {
$('.export-order.selected')
.find('li')
.appendTo('.export-order.unselected')
.find('input')
.prop('checked', false);
return false;
})
.on('change', 'select[name="outputformat"]', function () {
$('#csv-separator')[$(this).val() == 'csv' ? 'show' : 'hide']();
})
.on('submit', '#export-subscribers', function () {
var data = $(this).serialize();
mailster.util.ajax(
'export_contacts',
{
data: data,
conditions: mailster.conditions.serialize(),
},
function (response) {
if (response.success) {
window.onbeforeunload = function () {
return mailster.l10n.manage.onbeforeunloadexport;
};
var limit = $('.performance').val();
exportstatus.addClass('progress');
do_export(0, limit, response.data.count, data);
} else {
alert(response.data.msg);
}
},
function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
);
return false;
});
function do_export(offset, limit, count, data) {
var t = new Date().getTime(),
percentage = Math.min(1, (limit * offset) / count) * 100;
exportstatus.html(
mailster.util.sprintf(mailster.l10n.manage.prepare_download, count, '')
);
mailster.util.ajax(
'do_export',
{
limit: limit,
offset: offset,
data: data,
conditions: mailster.conditions.serialize(),
},
function (response) {
var finished = percentage >= 100 && response.data.finished;
if (response.success) {
if (!finished) do_export(offset + 1, limit, count, data);
exportstatus.html(
mailster.util.sprintf(
mailster.l10n.manage.prepare_download,
count,
Math.ceil(percentage) + '%'
)
);
if (finished) {
window.onbeforeunload = null;
exportstatus.html(mailster.l10n.manage.export_finished);
exportstatus.html(
mailster.util.sprintf(mailster.l10n.manage.downloading, count)
);
if (response.data.filename) {
setTimeout(function () {
exportstatus.removeClass('progress');
document.location = response.data.filename;
}, 2000);
}
} else {
exportstatus.html(
mailster.util.sprintf(
mailster.l10n.manage.write_file,
response.data.total,
Math.ceil(percentage) + '%'
)
);
}
} else {
window.onbeforeunload = null;
exportstatus.html(mailster.l10n.manage.error_export);
alert(response.data.msg);
}
},
function (jqXHR, textStatus, errorThrown) {}
);
}
mailster.events.push('updateConditions', update_export_count);
function update_export_count() {
setTimeout(function () {
var data = $('#export-subscribers').serialize();
$('#export-subscriber-button').prop('disabled', true);
mailster.util.ajax(
'get_subscriber_count',
{
data: data,
conditions: mailster.conditions.serialize(),
},
function (response) {
if (response.success) {
$('#export-subscriber-button')
.val(
mailster.util.sprintf(
mailster.l10n.manage.export_n_subscribers,
response.data.count_formated
)
)
.prop('disabled', !response.data.count);
}
}
);
}, 10);
}
return mailster;
})(mailster || {}, jQuery, window, document);