first commit
This commit is contained in:
@@ -0,0 +1,313 @@
|
||||
/*global jQuery, ajaxurl, addLoadEvent */
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
addLoadEvent(
|
||||
function () {
|
||||
var form = jQuery('#wpml_media_options_form');
|
||||
var form_action = form.find('#wpml_media_options_action');
|
||||
var existingContent = form.find('.wpml-media-existing-content');
|
||||
var setLanguageInfo = form.find('input[name=set_language_info]');
|
||||
var submitButton = form.find(':submit');
|
||||
var primaryButton = form.find('.button-primary');
|
||||
|
||||
existingContent.find(':checkbox').change(
|
||||
function () {
|
||||
var set_language_required_missing = !setLanguageInfo.prop('disabled') && !setLanguageInfo.prop('checked');
|
||||
var checked = existingContent.find(':checkbox:checked');
|
||||
|
||||
if (!checked.length || set_language_required_missing) {
|
||||
primaryButton.addClass('disabled');
|
||||
} else {
|
||||
primaryButton.removeClass('disabled');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
submitButton.click(
|
||||
function () {
|
||||
form_action.val(jQuery(this).attr('name'));
|
||||
}
|
||||
);
|
||||
|
||||
form.submit(
|
||||
function () {
|
||||
|
||||
if (!submitButton.attr('disabled')) {
|
||||
|
||||
switch (form_action.val()) {
|
||||
case 'start':
|
||||
wpml_media_options_form_working();
|
||||
wpml_media_options_form_scan_prepare();
|
||||
break;
|
||||
case 'set_defaults':
|
||||
wpml_media_set_content_prepare();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
form_action.val(0);
|
||||
return false;
|
||||
}
|
||||
);
|
||||
|
||||
function wpml_update_status(message) {
|
||||
jQuery(form).find('.status').html(message);
|
||||
if (message.length > 0) {
|
||||
jQuery(form).find('.status').show();
|
||||
} else {
|
||||
jQuery(form).find('.status').fadeOut();
|
||||
}
|
||||
}
|
||||
|
||||
function wpml_media_options_form_working() {
|
||||
wpml_update_status('');
|
||||
submitButton.prop('disabled', true);
|
||||
jQuery(form).find('.progress').fadeIn();
|
||||
}
|
||||
|
||||
function wpml_media_options_form_finished(status) {
|
||||
submitButton.prop('disabled', false);
|
||||
jQuery(form).find('.progress').fadeOut();
|
||||
wpml_update_status(status);
|
||||
window.setTimeout(
|
||||
function () {
|
||||
wpml_update_status('');
|
||||
}, 1000
|
||||
);
|
||||
}
|
||||
|
||||
function wpml_media_options_form_scan_prepare() {
|
||||
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {action: 'wpml_media_scan_prepare'},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_update_status(ret.message);
|
||||
if (jQuery('#wpml_media_options_form').find('input[name=no_lang_attachments]').val() > 0) {
|
||||
// step 1
|
||||
wpml_media_set_initial_language();
|
||||
} else {
|
||||
// step 2
|
||||
wpml_media_translate_media();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
jQuery('#icl-migrate-progress').find('.message').html(textStatus);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function wpml_media_set_initial_language() {
|
||||
|
||||
if (jQuery('#set_language_info', form).is(':checked')) {
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {action: 'wpml_media_set_initial_language'},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_update_status(ret.message);
|
||||
if (ret.left > 0) {
|
||||
wpml_media_set_initial_language();
|
||||
} else {
|
||||
// step 2
|
||||
wpml_media_translate_media();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Set initial language: please try again (' + textStatus + ')');
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
} else {
|
||||
wpml_media_translate_media();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function wpml_media_translate_media() {
|
||||
if (jQuery('#translate_media', form).is(':checked')) {
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {action: 'wpml_media_translate_media'},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_update_status(ret.message);
|
||||
if (ret.left > 0) {
|
||||
wpml_media_translate_media();
|
||||
} else {
|
||||
// step 2
|
||||
wpml_media_duplicate_media();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Translate media: please try again (' + textStatus + ')');
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
} else {
|
||||
wpml_media_duplicate_media();
|
||||
}
|
||||
}
|
||||
|
||||
function wpml_media_duplicate_media() {
|
||||
|
||||
if (jQuery('#duplicate_media', form).is(':checked')) {
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {action: 'wpml_media_duplicate_media'},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_update_status(ret.message);
|
||||
if (ret.left > 0) {
|
||||
wpml_media_duplicate_media();
|
||||
} else {
|
||||
// step 3
|
||||
wpml_media_duplicate_featured_images();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Duplicate media: please try again (' + textStatus + ')');
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
} else {
|
||||
wpml_media_duplicate_featured_images();
|
||||
}
|
||||
}
|
||||
|
||||
function wpml_media_duplicate_featured_images( left = null ) {
|
||||
if (jQuery('#duplicate_featured', form).is(':checked')) {
|
||||
const nonce = document.getElementById( 'wpml_media_settings_nonce' );
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {
|
||||
action: 'wpml_media_duplicate_featured_images',
|
||||
nonce: nonce ? nonce.value : '',
|
||||
featured_images_left: left
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_update_status(ret.message);
|
||||
if (ret.left > 0) {
|
||||
wpml_media_duplicate_featured_images( ret.left );
|
||||
} else {
|
||||
wpml_media_mark_processed();
|
||||
}
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Duplicate featured images: Please try again (' + textStatus + ')');
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
} else {
|
||||
wpml_media_mark_processed();
|
||||
}
|
||||
}
|
||||
|
||||
function wpml_media_mark_processed() {
|
||||
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {action: 'wpml_media_mark_processed'},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
wpml_media_options_form_finished(ret.message);
|
||||
jQuery('#wpml_media_all_done').fadeIn();
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Mark processed: Please try again (' + textStatus + ')');
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function wpml_media_set_content_prepare() {
|
||||
wpml_update_status('');
|
||||
submitButton.attr('disabled', 'disabled');
|
||||
jQuery(form).find('.content_default_progress').fadeIn();
|
||||
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {
|
||||
action: 'wpml_media_set_content_prepare'
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
jQuery(form).find('.content_default_status').html(ret.message);
|
||||
wpml_media_set_content_defaults();
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Set Content Prepare: Please try again (' + textStatus + ')');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function wpml_media_set_content_defaults() {
|
||||
wpml_update_status('');
|
||||
submitButton.attr('disabled', 'disabled');
|
||||
jQuery(form).find('.content_default_progress').fadeIn();
|
||||
jQuery.ajax(
|
||||
{
|
||||
url: ajaxurl,
|
||||
type: 'POST',
|
||||
data: {
|
||||
action: 'wpml_media_set_content_defaults',
|
||||
always_translate_media: jQuery('input[name=content_default_always_translate_media]', form).is(':checked'),
|
||||
duplicate_media: jQuery('input[name=content_default_duplicate_media]', form).is(':checked'),
|
||||
duplicate_featured: jQuery('input[name=content_default_duplicate_featured]', form).is(':checked'),
|
||||
translate_media_library_texts: jQuery('input[name=translate_media_library_texts]', form).is(':checked')
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (ret) {
|
||||
jQuery(form).find('.content_default_status').html(ret.message);
|
||||
wpml_media_set_content_defaults_finished();
|
||||
},
|
||||
error: function (jqXHR, textStatus) {
|
||||
wpml_update_status('Set Content Defaults: Please try again (' + textStatus + ')');
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
function wpml_media_set_content_defaults_finished(status) {
|
||||
submitButton.prop('disabled', false);
|
||||
jQuery(form).find('.content_default_progress').fadeOut();
|
||||
jQuery(form).find('.content_default_status').html(status);
|
||||
window.setTimeout(
|
||||
function () {
|
||||
jQuery(form).find('.content_default_status').fadeOut();
|
||||
}, 1000
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
}());
|
||||
Reference in New Issue
Block a user