755 lines
24 KiB
JavaScript
755 lines
24 KiB
JavaScript
/*jshint browser:true, devel:true */
|
|
/*global jQuery, ajaxurl, icl_ajx_url, icl_ajxloaderimg, tm_basket_data */
|
|
|
|
(function ($) {
|
|
"use strict";
|
|
|
|
jQuery(
|
|
function () {
|
|
|
|
//Basket
|
|
|
|
/* enable button 'Remove from basket' in Translation management > Translate jobs */
|
|
var translation_jobs_basket_form = jQuery('#translation-jobs-basket-form');
|
|
var handle_basket_form_cb = function (cb_location) {
|
|
jQuery('#icl-tm-basket-delete-but').prop('disabled', jQuery('#translation-jobs-basket-form').find(cb_location + ':checked').length);
|
|
};
|
|
|
|
var cb_locations = ['td', 'tfoot th', 'thead th'];
|
|
jQuery.each(cb_locations,function(cb_location){
|
|
cb_location += ' :checkbox:checked';
|
|
translation_jobs_basket_form.find(cb_location).click(
|
|
function () {
|
|
handle_basket_form_cb(cb_location);
|
|
}
|
|
);
|
|
});
|
|
|
|
jQuery('.js-translation-jobs-basket-form').on(
|
|
'submit', function (e) { // Display confirmation on form submit
|
|
e.preventDefault();
|
|
|
|
var message = jQuery(this).data('message');
|
|
var confirmation = confirm(message);
|
|
|
|
if (confirmation) {
|
|
jQuery(this).off('submit');
|
|
jQuery(this).trigger('submit');
|
|
}
|
|
|
|
return false;
|
|
}
|
|
);
|
|
|
|
function Translation_Jobs() {
|
|
var form = jQuery('#translation-jobs-translators-form');
|
|
var form_send_button = form.find('.button-primary');
|
|
var form_delete_button = jQuery('[name="clear-basket"]');
|
|
var basket_name_element = form.find('#basket_name');
|
|
var basket_extra_fields_list = form.find('#basket_extra_fields_list');
|
|
var message_box;
|
|
var message_box_content;
|
|
var additional_data;
|
|
var progress_bar_object = new ProgressBar();
|
|
var progress_bar = progress_bar_object.getDomElement();
|
|
var batch_basket_items = [];
|
|
var batch_number = 0;
|
|
var batch_size;
|
|
var batch_deadline = form.find( '#basket-deadline' );
|
|
|
|
var init = function () {
|
|
form.on('submit', submit_form);
|
|
|
|
// prevent sending basket by pressing Enter
|
|
form.on("keypress", function(e) {
|
|
if (e.keyCode == 13) {
|
|
e.preventDefault();
|
|
return false;
|
|
}
|
|
});
|
|
|
|
basket_name_element.on('blur', basket_name_blur);
|
|
|
|
message_box = jQuery('<div class="message_box"><div class="wpml-tm-basket-message-icon"></div></div>');
|
|
message_box_content = jQuery('<div class="wpml-tm-basket-message-content"></div>');
|
|
message_box_content.appendTo(message_box);
|
|
message_box.insertBefore(form_send_button).hide();
|
|
|
|
additional_data = jQuery('<div class="additional_data"></div>');
|
|
|
|
progress_bar.insertAfter(message_box_content);
|
|
progress_bar.hide();
|
|
|
|
initDatePicker();
|
|
$('#icl-translation-translators').on('change', '.js-wpml-translator-dropdown', refresh_deadline_date);
|
|
};
|
|
|
|
var initDatePicker = function() {
|
|
batch_deadline.datepicker({
|
|
minDate: new Date( Date.now() ),
|
|
dateFormat: "yy-mm-dd",
|
|
dayNames: wpml_tm_translation_basket_and_options.day_names,
|
|
dayNamesMin: wpml_tm_translation_basket_and_options.day_initials,
|
|
monthNames: wpml_tm_translation_basket_and_options.month_names
|
|
});
|
|
|
|
jQuery( 'body' ).addClass( 'wpml' );
|
|
};
|
|
|
|
var refresh_deadline_date = function(e) {
|
|
var translatorsTable = $(e.delegateTarget);
|
|
var selectors = translatorsTable.find('.js-wpml-translator-dropdown');
|
|
var spinner = batch_deadline.siblings('.spinner');
|
|
var translators = {};
|
|
|
|
$.each(selectors, function(i, selector) {
|
|
selector = $(selector);
|
|
var lang_to = selector.data('lang-to');
|
|
translators[ lang_to ] = selector.find(':selected').val();
|
|
});
|
|
|
|
spinner.addClass('is-active');
|
|
|
|
$.post({
|
|
url: ajaxurl,
|
|
data: {
|
|
action: 'wpml-tm-jobs-deadline-estimate-ajax-action',
|
|
nonce: form.find('#_icl_nonce_refresh_deadline').val(),
|
|
translators: translators
|
|
},
|
|
success: function(response) {
|
|
form.find('#basket-deadline').val(response.data.deadline);
|
|
spinner.removeClass('is-active');
|
|
}
|
|
});
|
|
};
|
|
|
|
var basket_name_blur = function (e) {
|
|
if (e !== null && typeof e.preventDefault !== 'undefined') {
|
|
e.preventDefault();
|
|
}
|
|
|
|
var spinner = jQuery('<span class="spinner" style="display: inline-block;"></span>');
|
|
spinner.hide();
|
|
|
|
spinner.insertAfter(jQuery(this));
|
|
spinner.css('float', 'none');
|
|
spinner.show();
|
|
|
|
check_basket_name();
|
|
|
|
spinner.hide();
|
|
|
|
return false;
|
|
};
|
|
|
|
var get_nonce = function (action) {
|
|
var nonceField = jQuery('[id="_icl_nonce_' + action + '"]');
|
|
|
|
return nonceField ? nonceField.val() : '';
|
|
};
|
|
|
|
var check_basket_name = function () {
|
|
|
|
var action = 'check_basket_name';
|
|
var nonce = get_nonce(action);
|
|
var check_result = false;
|
|
var basket_name = get_basket_name();
|
|
form_send_button.attr('disabled', 'disabled');
|
|
jQuery.ajax(
|
|
{
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
async: false,
|
|
data: {
|
|
action: 'check_basket_name',
|
|
basket_name: basket_name,
|
|
_icl_nonce: nonce
|
|
},
|
|
success: function (result) {
|
|
result = result.data;
|
|
/** @namespace result.new_value */
|
|
form_send_button.prop('disabled', !result.valid)
|
|
if (result.valid) {
|
|
if (result.modified) {
|
|
set_basket_name(result.new_value);
|
|
}
|
|
form_send_button.show();
|
|
} else {
|
|
alert(result.message);
|
|
set_basket_name(result.new_value);
|
|
check_basket_name();
|
|
}
|
|
|
|
check_result = result.valid;
|
|
},
|
|
error: function (jqXHR, textStatus) {
|
|
show_errors(jqXHR, textStatus);
|
|
form_send_button.prop('disabled', true);
|
|
check_result = false;
|
|
}
|
|
}
|
|
);
|
|
|
|
return check_result;
|
|
};
|
|
|
|
var get_basket_name = function () {
|
|
if (typeof basket_name_element !== 'undefined' && basket_name_element.val().length === 0) {
|
|
basket_name_element.val(basket_name_element.attr('placeholder'));
|
|
}
|
|
|
|
return basket_name_element.val();
|
|
};
|
|
|
|
var set_basket_name = function (value) {
|
|
if (typeof basket_name_element !== 'undefined') {
|
|
basket_name_element.val(value);
|
|
}
|
|
|
|
return basket_name_element.val();
|
|
};
|
|
|
|
// translator[it]
|
|
// translator[en-US]
|
|
var get_translators = function () {
|
|
var extract_translator = function (translators, key, value) {
|
|
if (typeof key !== 'undefined' && /^translator/.test(key)) {
|
|
key = key.replace('translator[', '').replace(']', '');
|
|
if (translators[key] !== undefined) {
|
|
if (!translators[key].push) {
|
|
translators[key] = [translators[key]];
|
|
}
|
|
translators[key].push(value || '');
|
|
} else {
|
|
translators[key] = value || '';
|
|
}
|
|
}
|
|
};
|
|
|
|
//Todo: get only translators
|
|
var translators = {};
|
|
var a = form.serializeArray();
|
|
jQuery.each(
|
|
a, function () {
|
|
var key = this.name;
|
|
var value = this.value;
|
|
extract_translator(translators, key, value);
|
|
}
|
|
);
|
|
|
|
return translators;
|
|
};
|
|
|
|
var get_extra_fields = function () {
|
|
var items = jQuery('#basket_extra_fields_list').find(':input').get();
|
|
var string = '';
|
|
var items_total = jQuery(items).length;
|
|
|
|
if (items_total > 0) {
|
|
jQuery(items).each(function (index, elm) {
|
|
string += elm.name +":"+ jQuery(elm).val();
|
|
if (index !== items_total - 1) {
|
|
string += "|";
|
|
}
|
|
});
|
|
}
|
|
|
|
return encodeURIComponent(string);
|
|
};
|
|
|
|
var sending_only_to_professional_translation = function (translators) {
|
|
var isProfessionalTranslator = function (translator) {
|
|
return translator.match(/^ts-\d+$/);
|
|
};
|
|
|
|
var translatorsArray = Object.values(translators);
|
|
return translatorsArray.length === translatorsArray.filter(isProfessionalTranslator).length;
|
|
};
|
|
|
|
var submit_form = function (e) {
|
|
//Prevent submitting the form
|
|
if (typeof e.preventDefault !== 'undefined') {
|
|
e.preventDefault();
|
|
}
|
|
|
|
if (!check_basket_name()) {
|
|
return false;
|
|
}
|
|
|
|
additional_data.empty();
|
|
message_box.hide();
|
|
additional_data.appendTo(message_box_content);
|
|
|
|
var basket_name = get_basket_name();
|
|
var translators = get_translators();
|
|
translation_jobs_basket_form.find('.row-actions').hide();
|
|
|
|
form_send_button.attr('disabled', 'disabled').hide();
|
|
form_delete_button.attr('disabled', 'disabled');
|
|
|
|
message_box.show();
|
|
|
|
var header = sending_only_to_professional_translation(translators) ?
|
|
tm_basket_data.strings['sending_batch_to_ts'] :
|
|
tm_basket_data.strings['sending_batch'];
|
|
|
|
update_message('<h4>' + header + '</h4>', true, 'sending', false);
|
|
|
|
|
|
if (typeof translators === 'undefined' || translators.length === 0) {
|
|
update_message(tm_basket_data.strings['error_no_translators'], true, 'error', false);
|
|
end_process(false);
|
|
return false;
|
|
}
|
|
|
|
progress_bar_object.start();
|
|
var action = 'send_basket_items';
|
|
var nonce = get_nonce(action);
|
|
|
|
//Retrieve basket items
|
|
jQuery.ajax(
|
|
{
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
data: {
|
|
action: action,
|
|
basket_name: basket_name,
|
|
_icl_nonce: nonce
|
|
},
|
|
success: function (result) {
|
|
result = result.data;
|
|
|
|
update_message(result.message, false, 'sending', false);
|
|
|
|
batch_basket_items = [];
|
|
var batch_basket_string_items = [];
|
|
|
|
//Loop through basket item group
|
|
jQuery.each(result.basket, prepare_basket_items(result.allowed_item_types, batch_basket_string_items));
|
|
|
|
progress_bar_object.overall_count = batch_basket_items.length + batch_basket_string_items.length;
|
|
batch_number = 0;
|
|
|
|
update_basket_badge_count(progress_bar_object.getRemainingCount());
|
|
|
|
if (batch_basket_string_items.length > 0) {
|
|
batch_send_strings(basket_name, translators, batch_basket_string_items);
|
|
} else {
|
|
batch_send_basket_to_tp(basket_name, translators);
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus) {
|
|
show_errors(jqXHR, textStatus);
|
|
show_rollback_message();
|
|
}
|
|
}
|
|
);
|
|
|
|
//Prevent submitting the form (backward compatibility)
|
|
return false;
|
|
};
|
|
|
|
var prepare_basket_items = function (allowed_item_types, batch_basket_string_items) {
|
|
return function (item_type, basket_group) {
|
|
if (jQuery.inArray(item_type, allowed_item_types) >= 0) {
|
|
jQuery.each(
|
|
basket_group, function (post_id) {
|
|
var batch_basket_item = {};
|
|
batch_basket_item.type = item_type;
|
|
batch_basket_item.post_id = post_id;
|
|
|
|
if (item_type === 'string') {
|
|
batch_basket_string_items.push(batch_basket_item);
|
|
} else {
|
|
batch_basket_items.push(batch_basket_item);
|
|
}
|
|
}
|
|
);
|
|
}
|
|
};
|
|
};
|
|
|
|
var progressbar_finish_text = '100%';
|
|
var progressbar_callback = function (progress_bar) {
|
|
progress_bar.dom.remove();
|
|
};
|
|
|
|
var update_basket_badge_count = function (count) {
|
|
var badge = jQuery('#wpml-basket-items');
|
|
count = parseInt(count, 10);
|
|
|
|
if (count > 0) {
|
|
badge.find('#basket-item-count').text(count);
|
|
} else {
|
|
badge.hide();
|
|
}
|
|
};
|
|
|
|
var batch_send_strings = function (basket_name, translators, strings) {
|
|
if (strings.length === 0) {
|
|
return;
|
|
}
|
|
|
|
batch_number++;
|
|
var batch_number_label = jQuery('<p><strong>' + tm_basket_data.strings['batch'] + ' #' + batch_number + '</strong></p>');
|
|
update_message(batch_number_label, true, 'sending', true);
|
|
|
|
batch_size = strings.length;
|
|
|
|
var success_callback = build_success_callback(function() {
|
|
batch_send_basket_to_tp(basket_name, translators);
|
|
});
|
|
|
|
send_basket_item_request(basket_name, translators, strings, success_callback);
|
|
};
|
|
|
|
var batch_send_basket_to_tp = function (basket_name, translators, skip_items) {
|
|
|
|
if (typeof skip_items === 'undefined') {
|
|
skip_items = 0;
|
|
// We consider 2s per doc and per lang, and we don't want to exceed 20s per request
|
|
var langs = Object.keys(translators);
|
|
batch_size = Math.ceil(20 / langs.length); // 1 to 20
|
|
batch_size = Math.min(5, batch_size); // 1 to 5
|
|
}
|
|
|
|
batch_number++;
|
|
|
|
var batch_length = batch_basket_items.length;
|
|
if ((batch_length - skip_items) <= 0) {
|
|
end_process(true);
|
|
return;
|
|
}
|
|
|
|
if (batch_length > 1) {
|
|
|
|
var batch_number_label = jQuery('<p><strong>' + tm_basket_data.strings['batch'] + ' #' + batch_number + '</strong></p>');
|
|
|
|
update_message(batch_number_label, true, 'sending', true);
|
|
}
|
|
|
|
var batch_data = batch_basket_items.slice(skip_items, skip_items + batch_size);
|
|
|
|
var success_callback = build_success_callback(function () {
|
|
setTimeout(
|
|
function () {
|
|
batch_send_basket_to_tp(basket_name, translators, (skip_items + batch_size));
|
|
}, 1000
|
|
)
|
|
});
|
|
|
|
send_basket_item_request(basket_name, translators, batch_data, success_callback);
|
|
};
|
|
|
|
var build_success_callback = function(nextStepCallback) {
|
|
return function (result) {
|
|
var success = result.success;
|
|
var data = result.data;
|
|
|
|
if (success) {
|
|
progress_bar_object.change(batch_size);
|
|
//Let's give some rest to the server
|
|
nextStepCallback();
|
|
} else {
|
|
handle_ajax_error(data);
|
|
}
|
|
};
|
|
};
|
|
|
|
var handle_ajax_error = function (data) {
|
|
update_message(data.message, true, 'error', true);
|
|
show_additional_messages(data);
|
|
progress_bar_object.stop();
|
|
end_process(false);
|
|
};
|
|
|
|
var send_basket_item_request = function(basket_name, translators, batch_data, success_callback) {
|
|
var action = 'send_basket_item';
|
|
|
|
var data = {
|
|
action: action,
|
|
_icl_nonce: get_nonce(action),
|
|
basket_name: basket_name,
|
|
batch: batch_data,
|
|
translators: translators,
|
|
extra_fields: get_extra_fields(),
|
|
deadline_date: batch_deadline.val()
|
|
};
|
|
|
|
jQuery.ajax(
|
|
{
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
data: data,
|
|
success: success_callback,
|
|
error: function (jqXHR, textStatus) {
|
|
if (jqXHR.status >= 500) {
|
|
request_rollback_for_batch(basket_name);
|
|
}
|
|
|
|
show_errors(jqXHR, textStatus);
|
|
show_rollback_message();
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
var show_additional_messages = function (result) {
|
|
/** @namespace result.additional_messages */
|
|
if (typeof result.additional_messages !== 'undefined' && result.additional_messages !== null && result.additional_messages.length > 0) {
|
|
jQuery.each(
|
|
result.additional_messages, function (i, additional_message) {
|
|
update_message(additional_message.text, true, additional_message.type, true);
|
|
}
|
|
);
|
|
}
|
|
};
|
|
|
|
var show_errors = function (jqXHR, textStatus) {
|
|
if (jqXHR.responseText === 'undefined') {
|
|
update_message('<strong>'+tm_basket_data.strings['error_occurred']+'</strong><div>' + textStatus + '</div>', false, 'error', true);
|
|
} else if (jqXHR.responseText === 'Invalid nonce') {
|
|
update_message(tm_basket_data.strings['error_not_allowed'], false, 'error', true);
|
|
} else {
|
|
var error_content = jQuery(jqXHR.responseText.substring(1, jqXHR.responseText.length - 1));
|
|
update_message(tm_basket_data.strings['error_occurred'], false, 'error', true);
|
|
update_message(error_content, true, 'error', true);
|
|
}
|
|
};
|
|
|
|
var batch_send_basket_to_tp_commit = function () {
|
|
update_message(tm_basket_data.strings['jobs_committing'], false, 'sending', false);
|
|
|
|
var action = 'send_basket_commit';
|
|
var nonce = get_nonce(action);
|
|
jQuery.ajax(
|
|
{
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
data: {
|
|
action: action,
|
|
_icl_nonce: nonce,
|
|
translators: get_translators(),
|
|
basket_name: get_basket_name()
|
|
},
|
|
success: function (result) {
|
|
var success = result.success;
|
|
result = result.data;
|
|
if (success) {
|
|
if(typeof result.result.is_local !== 'undefined' && result.result.is_local ) {
|
|
var message = tm_basket_data.strings['jobs_sent_to_local_translator'];
|
|
|
|
if(typeof result.result.emails_did_not_sent !== 'undefined' && result.result.emails_did_not_sent ){
|
|
message = message.replace(/<ul><li>[\s\S]*?<\/li>/, '<ul>' + tm_basket_data.strings['jobs_emails_local_did_not_sent'] );
|
|
}
|
|
}else{
|
|
var message = tm_basket_data.strings['jobs_committed'];
|
|
}
|
|
if (typeof result.links !== 'undefined') {
|
|
var links = jQuery('<ul></ul>');
|
|
jQuery.each(
|
|
result.links, function (i, link) {
|
|
var link_item = jQuery('<li></li>');
|
|
var link_anchor = jQuery('<a></a>');
|
|
link_anchor.attr('href', link.url);
|
|
link_anchor.text(link.text);
|
|
|
|
link_anchor.appendTo(link_item);
|
|
link_item.appendTo(links);
|
|
}
|
|
);
|
|
links.appendTo(message);
|
|
}
|
|
update_message(message, false, 'updated', false);
|
|
var call_to_action = false;
|
|
/** @namespace result.result.call_to_action */
|
|
if(typeof result.result.call_to_action !== 'undefined') {
|
|
call_to_action = jQuery('<p>' + result.result.call_to_action + '</p>');
|
|
update_message(call_to_action, true, 'updated', true);
|
|
}
|
|
|
|
batch_send_basket_to_tp_completed(result);
|
|
|
|
} else {
|
|
handle_response(result);
|
|
show_rollback_message();
|
|
}
|
|
},
|
|
error: function (jqXHR, textStatus) {
|
|
show_errors(jqXHR, textStatus);
|
|
show_rollback_message();
|
|
}
|
|
}
|
|
);
|
|
};
|
|
|
|
var show_rollback_message = function () {
|
|
update_message(tm_basket_data.strings['rollbacks'], false, 'error', false);
|
|
update_message(tm_basket_data.strings['rolled'], false, 'error', true);
|
|
progress_bar_object.complete(progressbar_finish_text, progressbar_callback);
|
|
};
|
|
|
|
var request_rollback_for_batch = function(basket_name) {
|
|
var action = 'rollback_basket';
|
|
|
|
jQuery.ajax(
|
|
{
|
|
type: "POST",
|
|
url: ajaxurl,
|
|
dataType: 'json',
|
|
data: {
|
|
action: action,
|
|
_icl_nonce: get_nonce(action),
|
|
basket_name: basket_name
|
|
}
|
|
}
|
|
);
|
|
};
|
|
|
|
var batch_send_basket_to_tp_completed = function (response) {
|
|
progress_bar_object.complete(progressbar_finish_text, progressbar_callback);
|
|
form_send_button.attr('disabled', 'disabled');
|
|
form_delete_button.attr('disabled', 'disabled');
|
|
basket_name_element.attr('disabled', 'disabled');
|
|
basket_name_element.attr('readonly', 'readonly');
|
|
batch_deadline.attr('disabled', 'disabled');
|
|
batch_deadline.attr('readonly', 'readonly');
|
|
form.attr('disabled', 'disabled');
|
|
form.attr('readonly', 'readonly');
|
|
form.trigger('wpml-tm-basket-submitted', response);
|
|
|
|
// hide the badge
|
|
jQuery('#wpml-basket-items').hide();
|
|
|
|
};
|
|
|
|
var end_process = function (commit) {
|
|
|
|
if (commit) {
|
|
batch_send_basket_to_tp_commit();
|
|
} else {
|
|
form_delete_button.prop('disabled', false);
|
|
form_send_button.prop('disabled', false);
|
|
form_send_button.show();
|
|
show_rollback_message();
|
|
}
|
|
};
|
|
|
|
var handle_response = function (response) {
|
|
var errors = [];
|
|
if (typeof response.errors !== 'undefined') {
|
|
errors = response.errors;
|
|
}
|
|
|
|
if (errors.length > 0) {
|
|
update_message(tm_basket_data.strings['errors'], false, 'error', true);
|
|
jQuery.each(
|
|
errors, function (i, error_message) {
|
|
update_message(error_message, true, 'error', true);
|
|
}
|
|
);
|
|
}
|
|
};
|
|
|
|
var update_message = function (message, details, status, append) {
|
|
var target;
|
|
|
|
if (typeof append !== 'undefined' && append !== false) {
|
|
append = true;
|
|
}
|
|
|
|
if (typeof status !== 'undefined') {
|
|
message_box.removeClass();
|
|
message_box.addClass('wpml-tm-basket-message wpml-tm-basket-message-' + status);
|
|
}
|
|
|
|
if (typeof details !== 'undefined' && details !== false) {
|
|
target = additional_data;
|
|
if (!target.length) {
|
|
target = message_box_content;
|
|
}
|
|
} else {
|
|
target = message_box_content;
|
|
}
|
|
if (!append) {
|
|
target.empty();
|
|
if (target === message_box_content) {
|
|
additional_data.appendTo(message_box_content);
|
|
}
|
|
}
|
|
build_message(target, message);
|
|
};
|
|
|
|
var build_message = function (container, message_element_or_string) {
|
|
|
|
if (message_element_or_string && typeof container !== 'undefined') {
|
|
if (container.is(":hidden") || !container.is(':visible')) {
|
|
container.show();
|
|
}
|
|
if (typeof message_element_or_string === 'string') {
|
|
message_element_or_string = jQuery('<p>' + message_element_or_string + '</p>');
|
|
}
|
|
if (typeof message_element_or_string === 'object') {
|
|
message_element_or_string.appendTo(container);
|
|
}
|
|
}
|
|
|
|
return message_element_or_string;
|
|
};
|
|
|
|
init();
|
|
}
|
|
|
|
Translation_Jobs();
|
|
|
|
var basket_extra_fields_refresh = jQuery('#basket_extra_fields_refresh');
|
|
basket_extra_fields_refresh.click(function(event) {
|
|
event.preventDefault();
|
|
var basket_extra_fields_list = jQuery('#basket_extra_fields_list');
|
|
var ajax_spinner = jQuery('<span class="spinner"></span>');
|
|
ajax_spinner.show();
|
|
ajax_spinner.css('visibility', 'visible');
|
|
basket_extra_fields_list.html(ajax_spinner);
|
|
var ajax_data = {
|
|
'action': 'basket_extra_fields_refresh'
|
|
};
|
|
|
|
jQuery.post(ajaxurl, ajax_data, function(response) {
|
|
basket_extra_fields_list.html(response);
|
|
});
|
|
});
|
|
|
|
var duplicated = document.getElementById('icl_duplicate_post_in_basket'),
|
|
button = $('.button-primary'),
|
|
nonce = document.getElementById('icl_disconnect_nonce');
|
|
if (duplicated !== null) {
|
|
$('<div />', {
|
|
id: 'icl_disconnect_message',
|
|
text: tm_basket_data.tmi_message,
|
|
class: 'icl-admin-message-warning'
|
|
}).insertBefore('.button-primary');
|
|
button.on('click', function () {
|
|
$.ajax({
|
|
method: "POST",
|
|
url: ajaxurl,
|
|
data: {
|
|
action: 'icl_disconnect_posts',
|
|
nonce: nonce.value,
|
|
posts: duplicated.value
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.success !== true) {
|
|
alert(resp.data);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
);
|
|
}(jQuery));
|