cl01/wp-content/themes/bloglo/inc/customizer/ui/plugin-install-helper/helper-script.js
2025-02-24 12:39:24 +08:00

90 lines
2.6 KiB
JavaScript
Executable File

/**
* Remove activate button and replace with activation in progress button.
*
* @package Bloglo
*/
/* global bloglo_plugin_helper */
/* global console */
jQuery(document).ready(function ($) {
$.pluginInstall = {
init: function () {
this.handleInstall();
this.handleActivate();
},
handleInstall: function () {
var self = this;
$("body").on("click", ".bloglo-install-plugin", function (e) {
e.preventDefault();
var button = $(this);
var slug = button.attr("data-slug");
var url = button.attr("href");
var redirect = $(button).attr("data-redirect");
button.text(wp.updates.l10n.installing);
button.addClass("updating-message");
wp.updates.installPlugin({
slug: slug,
success: function () {
button.text(bloglo_plugin_helper.activating + "...");
self.activatePlugin(url, redirect);
},
});
});
},
activatePlugin: function (url, redirect) {
if ("undefined" === typeof url || !url) {
return;
}
jQuery.ajax({
async: true,
type: "GET",
url: url,
success: function () {
// Reload the page.
if ("undefined" !== typeof redirect && "" !== redirect) {
window.location.replace(redirect);
} else {
location.reload();
}
},
error: function (jqXHR, exception) {
var msg = "";
if (0 === jqXHR.status) {
msg = "Not connect.\n Verify Network.";
} else if (404 === jqXHR.status) {
msg = "Requested page not found. [404]";
} else if (500 === jqXHR.status) {
msg = "Internal Server Error [500].";
} else if ("parsererror" === exception) {
msg = "Requested JSON parse failed.";
} else if ("timeout" === exception) {
msg = "Time out error.";
} else if ("abort" === exception) {
msg = "Ajax request aborted.";
} else {
msg = "Uncaught Error.\n" + jqXHR.responseText;
}
console.log(msg);
},
});
},
handleActivate: function () {
var self = this;
$("body").on("click", ".activate-now", function (e) {
e.preventDefault();
var button = $(this);
var url = button.attr("href");
var redirect = button.attr("data-redirect");
button.addClass("updating-message");
button.text(bloglo_plugin_helper.activating + "...");
self.activatePlugin(url, redirect);
});
},
};
$.pluginInstall.init();
});