var WPML_Media_Batch_Url_Translation = WPML_Media_Batch_Url_Translation || {
hasDialog: false,
dialog: jQuery('#batch-media-translation-wrap'),
form: jQuery('#batch-media-translation-form'),
globalScope: 0,
attachmentId: 0,
createDialog: function (attachmentId, postsList) {
this.hasDialog = true;
this.attachmentId = attachmentId;
if (postsList.length > 0) {
this.dialog.find('.usage').show();
var ul = this.dialog.find('.usage ul');
for (var i in postsList) {
var li = postsList[i].url ?
'' + postsList[i].title + '' :
postsList[i].title;
ul.append('
' + li + '');
}
} else {
this.dialog.find('.no-usage').show();
}
},
showDialog: function () {
this.dialog.show();
this.dialog.scrollTop(0);
},
closeDialog: function (event) {
var self = WPML_Media_Batch_Url_Translation;
if (typeof event !== 'undefined') {
event.preventDefault();
}
self.dialog.hide();
self.reset();
},
setInProgress: function (on) {
this.form.find('input.button-primary:submit').prop('disabled', on);
this.form.find('input[name=global-scan-scope]').prop('disabled', on);
},
runScan: function () {
var self = WPML_Media_Batch_Url_Translation;
var form = jQuery(this);
self.globalScope = form.find('input[name=global-scan-scope]:checked').val();
var nextAction = [];
nextAction['wpml_media_translate_media_url_in_posts'] = 'wpml_media_translate_media_url_in_custom_fields';
if ( wpml_media_batch_translation.is_st_enabled ) {
nextAction['wpml_media_translate_media_url_in_custom_fields'] = 'wpml_media_translate_media_url_in_strings';
}
self.setInProgress(true);
jQuery.ajax({
url: ajaxurl,
type: 'post',
dataType: 'json',
data: form.serialize(),
success: function (response) {
self.setStatus(response.message);
self.scan(null, 'wpml_media_translate_media_url_in_posts', nextAction);
}
})
return false;
},
reset: function () {
this.dialog.find('.usage').hide();
this.dialog.find('.no-usage').hide();
this.dialog.find('.usage ul').html('');
this.attachmentId = 0;
this.setStatus('');
this.dialog.hide();
this.hasDialog = false;
},
setStatus: function (text) {
this.dialog.find('.status').html(text);
},
setComplete: function (text) {
this.setStatus(text);
this.setInProgress(false);
this.form.hide();
this.dialog.removeClass('notice-info').addClass('notice-success');
window.setTimeout(this.closeDialog, 3000);
},
scan: function (offset, action, nextAction) {
var self = WPML_Media_Batch_Url_Translation;
if (typeof offset === 'undefined') {
offset = 0;
}
jQuery.ajax(
{
url: ajaxurl,
type: 'POST',
data: {
action: action,
global: self.globalScope,
attachment_id: self.attachmentId,
offset: offset
},
dataType: 'json',
success: function (response) {
self.setStatus(response.data.message);
if (response.data.continue > 0) {
self.scan(response.data.offset, action, nextAction);
} else {
if (nextAction[action]) {
self.scan(null, nextAction[action], nextAction);
} else {
self.setComplete(wpml_media_batch_translation.complete);
}
}
}
}
);
}
};
jQuery(function ($) {
"use strict";
WPML_Media_Batch_Url_Translation.form.on('submit', WPML_Media_Batch_Url_Translation.runScan);
WPML_Media_Batch_Url_Translation.dialog.on('click', '.js-close', WPML_Media_Batch_Url_Translation.closeDialog);
});