249 lines
7.3 KiB
JavaScript
249 lines
7.3 KiB
JavaScript
/*globals jQuery, troubleshooting_data */
|
|
|
|
/** @namespace troubleshooting_data.nonce.icl_restore_notifications */
|
|
/** @namespace troubleshooting_data.nonce.icl_remove_notifications */
|
|
|
|
jQuery(function () {
|
|
|
|
var remove_notifications_button = jQuery('#icl_remove_notifications');
|
|
var restore_notifications_button = jQuery('#icl_restore_notifications');
|
|
var restore_notifications_all_users = jQuery('#icl_restore_notifications_all_users');
|
|
var sync_posts_taxonomies_button = jQuery('#wpml_sync_posts_taxonomies');
|
|
remove_notifications_button.off('click');
|
|
remove_notifications_button.on('click', remove_all_notifications);
|
|
restore_notifications_button.off('click');
|
|
restore_notifications_button.on('click', restore_notifications);
|
|
|
|
function remove_all_notifications() {
|
|
if (typeof(event.preventDefault) !== 'undefined') {
|
|
event.preventDefault();
|
|
} else {
|
|
event.returnValue = false;
|
|
}
|
|
|
|
jQuery(this).prop( 'disabled', true );
|
|
jQuery(this).after(icl_ajxloaderimg);
|
|
|
|
var ajax_data = {
|
|
'action': 'icl_remove_notifications',
|
|
'nonce': troubleshooting_data.nonce.icl_remove_notifications
|
|
};
|
|
|
|
jQuery.ajax({
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
data: ajax_data,
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
remove_notifications_button.prop('disabled', false);
|
|
alert(troubleshooting_data.strings.done);
|
|
remove_notifications_button.next().fadeOut();
|
|
if(response.reload == 1) {
|
|
location.reload();
|
|
}
|
|
},
|
|
error: function (jqXHR, status, error) {
|
|
var parsed_response = jqXHR.statusText || status || error;
|
|
alert(parsed_response);
|
|
}
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
function restore_notifications() {
|
|
if (typeof(event.preventDefault) !== 'undefined') {
|
|
event.preventDefault();
|
|
} else {
|
|
event.returnValue = false;
|
|
}
|
|
|
|
jQuery(this).prop( 'disabled', true );
|
|
jQuery(this).after(icl_ajxloaderimg);
|
|
|
|
var all_users = restore_notifications_all_users.is(':checked') ? 1 : 0;
|
|
|
|
var ajax_data = {
|
|
'action': 'icl_restore_notifications',
|
|
'nonce': troubleshooting_data.nonce.icl_restore_notifications,
|
|
'all_users': all_users
|
|
};
|
|
|
|
jQuery.ajax({
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
data: ajax_data,
|
|
dataType: 'json',
|
|
success: function (response) {
|
|
restore_notifications_button.prop('disabled', false);
|
|
alert(troubleshooting_data.strings.done);
|
|
restore_notifications_button.next().fadeOut();
|
|
if(response.reload == 1) {
|
|
location.reload();
|
|
}
|
|
},
|
|
error: function (jqXHR, status, error) {
|
|
var parsed_response = jqXHR.statusText || status || error;
|
|
alert(parsed_response);
|
|
}
|
|
});
|
|
|
|
return false;
|
|
}
|
|
|
|
var fix_post_types_and_source_langs_button = jQuery("#icl_fix_post_types");
|
|
var updateTermNamesButton = jQuery("#icl-update-term-names");
|
|
|
|
updateTermNamesButton.click(iclUpdateTermNames);
|
|
|
|
fix_post_types_and_source_langs_button.click(
|
|
function () {
|
|
jQuery(this).prop( 'disabled', true );
|
|
icl_repair_broken_translations();
|
|
jQuery(this).after(icl_ajxloaderimg);
|
|
|
|
}
|
|
);
|
|
|
|
function icl_repair_broken_translations () {
|
|
jQuery.ajax(
|
|
{
|
|
url: ajaxurl,
|
|
data: {
|
|
action: 'icl_repair_broken_type_and_language_assignments'
|
|
},
|
|
success: function (response) {
|
|
var rows_fixed = response.data;
|
|
fix_post_types_and_source_langs_button.prop('disabled', false);
|
|
fix_post_types_and_source_langs_button.next().fadeOut();
|
|
var text = '';
|
|
if (rows_fixed > 0) {
|
|
text = troubleshooting_strings.success_1 + rows_fixed + troubleshooting_strings.success_2;
|
|
} else {
|
|
text = troubleshooting_strings.no_problems;
|
|
}
|
|
var type_term_popup_html = '<div id="icl_fix_languages_and_post_types"><p>' + text + '</p></div>';
|
|
jQuery(type_term_popup_html).dialog(
|
|
{
|
|
dialogClass: 'wpml-dialog otgs-ui-dialog',
|
|
width : 'auto',
|
|
modal : true,
|
|
buttons : {
|
|
Ok: function () {
|
|
jQuery(this).dialog("close");
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function iclUpdateTermNames() {
|
|
|
|
var updatedTermNamesTable = jQuery('#icl-updated-term-names-table');
|
|
|
|
/* First of all we get all selected rows and the displayed Term names. */
|
|
|
|
var selectedTermRows = updatedTermNamesTable.find('input[type="checkbox"]');
|
|
|
|
var selectedIDs = {};
|
|
|
|
jQuery.each(selectedTermRows, function (index, selectedRow) {
|
|
selectedRow = jQuery(selectedRow);
|
|
if(selectedRow.is(':checked') && selectedRow.val() && selectedRow.attr('name') && selectedRow.attr('name').trim() !== ''){
|
|
selectedIDs[selectedRow.val().toString()] = selectedRow.attr('name');
|
|
}
|
|
});
|
|
|
|
var selectedIDsJSON = JSON.stringify(selectedIDs);
|
|
|
|
jQuery.ajax(
|
|
{
|
|
url: ajaxurl,
|
|
method: "POST",
|
|
data: {
|
|
action: 'wpml_update_term_names_troubleshoot',
|
|
_icl_nonce: troubleshooting_strings.termNamesNonce,
|
|
terms: selectedIDsJSON
|
|
},
|
|
success: function (response) {
|
|
|
|
jQuery.each(response.data, function (index, id) {
|
|
updatedTermNamesTable.find('input[type="checkbox"][value="'+ id +'"]').closest('tr').remove();
|
|
});
|
|
|
|
var remainingRows = jQuery('.icl-term-with-suffix-row');
|
|
|
|
if (remainingRows.length === 0 ){
|
|
updatedTermNamesTable.hide();
|
|
jQuery('#icl-update-term-names').hide();
|
|
jQuery('#icl-update-term-names-done').show();
|
|
}
|
|
|
|
var termSuffixUpdatedHTML = '<div id="icl_fix_term_suffixes"><p>' + troubleshooting_strings.suffixesRemoved + '</p></div>';
|
|
jQuery(termSuffixUpdatedHTML).dialog(
|
|
{
|
|
dialogClass: 'wpml-dialog otgs-ui-dialog',
|
|
width : 'auto',
|
|
modal : true,
|
|
buttons : {
|
|
Ok: function () {
|
|
jQuery(this).dialog("close");
|
|
}
|
|
}
|
|
|
|
}
|
|
);
|
|
}
|
|
});
|
|
}
|
|
|
|
jQuery('#icl_cache_clear').click(function () {
|
|
var self = jQuery(this);
|
|
self.prop( 'disabled', true );
|
|
self.after(icl_ajxloaderimg);
|
|
jQuery.post(location.href + '&debug_action=cache_clear&nonce=' + troubleshooting_strings.cacheClearNonce, function () {
|
|
self.prop('disabled', false);
|
|
alert( troubleshooting_strings.done );
|
|
self.next().fadeOut();
|
|
});
|
|
});
|
|
|
|
sync_posts_taxonomies_button.click(function(){
|
|
var requestData = {};
|
|
|
|
sync_posts_taxonomies_button.siblings('.wpml-notice').empty();
|
|
sync_posts_taxonomies_button.prop('disabled', true);
|
|
sync_posts_taxonomies_button.after(icl_ajxloaderimg);
|
|
requestData.batch_number = 0;
|
|
requestData.post_type = sync_posts_taxonomies_button.siblings('select[name="wpml_post_type"]').val();
|
|
sync_posts_taxonomies_send_ajax(requestData);
|
|
});
|
|
|
|
var sync_posts_taxonomies_send_ajax = function(requestData) {
|
|
requestData.debug_action = 'synchronize_posts_taxonomies';
|
|
requestData.nonce = troubleshooting_strings.syncPostsTaxNonce;
|
|
jQuery.ajax({
|
|
type : "POST",
|
|
url : location.href,
|
|
data : requestData,
|
|
success: sync_posts_taxonomies_receive_ajax
|
|
});
|
|
};
|
|
|
|
var sync_posts_taxonomies_receive_ajax = function(response) {
|
|
sync_posts_taxonomies_button.siblings('.wpml-notice').html(response.data.message);
|
|
|
|
if ( response.success && ! response.data.completed ) {
|
|
var requestData = response.data || {};
|
|
requestData.debug_action = 'synchronize_posts_taxonomies';
|
|
requestData.nonce = troubleshooting_strings.syncPostsTaxNonce;
|
|
sync_posts_taxonomies_send_ajax(requestData);
|
|
} else {
|
|
sync_posts_taxonomies_button.next().fadeOut();
|
|
sync_posts_taxonomies_button.prop('disabled', false);
|
|
}
|
|
};
|
|
}); |