first commit
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
/*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();
|
||||
Reference in New Issue
Block a user