File: /home/hanode/public_html/wp-content/plugins/sitepress-multilingual-cms/res/js/service-activation.js
/*jshint browser:true, devel:true */
/*global _, jQuery, ajaxurl, wpml_tm_service_activation_strings */
/** @namespace wpml_tm_service_activation_strings.alertTitle */
/** @namespace wpml_tm_service_activation_strings.cancelledJobs */
/** @namespace wpml_tm_service_activation_strings.openJobs */
/** @namespace wpml_tm_service_activation_strings.keepLocalJobs */
/** @namespace wpml_tm_service_activation_strings.errorCancellingJobs */
/** @namespace wpml_tm_service_activation_strings.errorGeneric */
/** @namespace wpml_tm_service_activation_strings.confirm */
/** @namespace wpml_tm_service_activation_strings.yes */
/** @namespace wpml_tm_service_activation_strings.no */
/** @namespace data.opens */
/** @namespace data.cancelled */
var ServiceActivation = function () {
"use strict";
var self = this;
self.initClickAction = function (item, ajaxAction) {
var elementName;
elementName = item.attr('name');
jQuery.ajax(
{
url: ajaxurl,
data: {
'action': ajaxAction,
'nonce': elementName + '_nonce'
},
success: function (response) {
var callback = ajaxAction + '_success';
self[callback](response);
},
error: function (xhr, ajaxOptions, thrownError) {
var callback = ajaxAction + '_error';
self[callback](xhr, ajaxOptions, thrownError);
}
}
);
};
self.displayResponseDialog = function (message) {
self.responseDialog.find('p').empty();
self.responseDialog.find('p').append(message);
self.responseDialog.dialog('open');
};
self.displayConfirmationDialog = function (callback) {
var message = wpml_tm_service_activation_strings.confirm;
self.confirmationDialog.find('p').empty();
self.confirmationDialog.find('p').append(message);
self.confirmationDialog.dialog(
'option', 'buttons', [
{
text: wpml_tm_service_activation_strings.yes,
click: function () {
jQuery(this).dialog("close");
callback(true);
}
}, {
text: wpml_tm_service_activation_strings.no,
click: function () {
jQuery(this).dialog("close");
callback(false);
}
}
]
);
self.confirmationDialog.dialog('open');
};
self.wpml_cancel_open_local_translators_jobs_error = function (xhr, ajaxOptions, thrownError) {
var message = wpml_tm_service_activation_strings.errorCancellingJobs;
alert(message);
console.log(xhr);
console.log(ajaxOptions);
console.log(thrownError);
};
self.wpml_keep_open_local_translators_jobs_error = function (xhr, ajaxOptions, thrownError) {
var message = wpml_tm_service_activation_strings.errorGeneric;
alert(message);
console.log(xhr);
console.log(ajaxOptions);
console.log(thrownError);
};
self.wpml_keep_open_local_translators_jobs_success = function (response) {
var message;
var success = response.success;
if (success) {
message = wpml_tm_service_activation_strings.keepLocalJobs;
} else {
message = wpml_tm_service_activation_strings.errorGeneric;
}
self.displayResponseDialog(message);
};
self.wpml_cancel_open_local_translators_jobs_success = function (response) {
var data = response.data;
var success = response.success;
var message;
if (success) {
message = wpml_tm_service_activation_strings.cancelledJobs + ' ' + data.cancelled + '<br>';
if (data.open) {
message += wpml_tm_service_activation_strings.errorCancellingJobs + '<br>';
message += wpml_tm_service_activation_strings.openJobs + ' ' + data.opens;
}
} else {
message = wpml_tm_service_activation_strings.errorCancellingJobs;
}
self.displayResponseDialog(message);
};
self.init = function () {
var dialogHtml;
self.notice = jQuery('.wpml-service-activation-notice').first();
self.actions = self.notice.find('.wpml-action');
dialogHtml = '<div title="' + wpml_tm_service_activation_strings.alertTitle + '">';
dialogHtml += '<p></p>';
dialogHtml += '</div>';
self.confirmationDialog = jQuery(dialogHtml);
self.responseDialog = jQuery(dialogHtml);
self.confirmationDialog.dialog(
{
autoOpen: false,
resizable: false,
modal: true,
width: 'auto',
closeOnEscape: false,
buttons: [
{
text: wpml_tm_service_activation_strings.yes,
click: function () {
jQuery(this).dialog("close");
}
}, {
text: wpml_tm_service_activation_strings.no,
click: function () {
jQuery(this).dialog("close");
}
}
]
}
);
self.responseDialog.dialog(
{
autoOpen: false,
resizable: false,
modal: true,
width: 'auto',
closeText: wpml_tm_service_activation_strings.closeButton,
closeOnEscape: true,
buttons: [
{
text: wpml_tm_service_activation_strings.closeButton,
click: function () {
jQuery(this).dialog("close");
}
}
],
close: function () {
window.location.reload(true);
}
}
);
self.initElements();
};
self.initClick = function (item) {
var ajaxAction = item.data('action');
if (ajaxAction) {
item.on(
'click', function (event) {
var callback;
event.preventDefault();
callback = function (proceed) {
if (true === proceed) {
self.initClickAction(item, ajaxAction);
}
};
self.displayConfirmationDialog(callback);
}
);
}
};
self.initElements = function () {
if (self.notice) {
_.each(
self.actions, function (value) {
var element = jQuery(value);
self.initClick(element);
}
);
}
};
jQuery(
function () {
serviceActivation.init();
}
);
};
var serviceActivation = new ServiceActivation();