Files
roi-theme/wp-content/plugins/wp-database-tools/admin/js/admin-ajax/wp-database-tools-feedback.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

168 lines
4.4 KiB
JavaScript
Executable File

function feedOriginInitAjax(element) {
let slug = element.getAttribute("data-slug");
element.classList.add('disabled');
if (element.getAttribute("data-form") === "uncategorized") {
var form_feed_origin = element.parentElement;
} else {
var form_feed_origin = document.getElementById("form-feed-origin-" + slug);
}
let data = new FormData(form_feed_origin);
data.append( 'license' , wpdbt_admin_vars.data.license_key);
data.append( 'license_url' , wpdbt_admin_vars.data.license_url);
data.append( 'version' , wpdbt_admin_vars.data.version);
data.append( 'comercial' , true);
if (element.classList.contains("vote")) {
data.append("vote", element.getAttribute("data-type"));
document.getElementById("container-votes-" + slug).classList.add("d-none");
}
if(slug == 'uncategorized-group' || slug == 'uncategorized-individual'){
data.append('mode','uncategorized');
let split_slug = data.get('slug').split('$');
data.set('slug', split_slug[0]);
// Search extra data plugin
let origin = null;
let origin_type = data.get('type');
let origin_slug = data.get('slug');
// plugins and themes is set when load data is ending
if(origin_type == 'plugin'){
origin = Object.values(plugins).find( plugin => plugin.slug === origin_slug );
}
if(origin_type == 'theme'){
origin = Object.values(themes).find( theme => theme.slug === origin_slug );
}
if(origin != null){
data.append('marketplace', origin.marketplace);
data.append('origin_name', origin.name);
data.append('origin_author', origin.author);
data.append('origin_author_name', origin.author_name);
data.append('origin_author_url', origin.author_url);
data.append('origin_description', origin.description);
data.append('origin_version', origin.version);
}
}else{
data.append('mode','votes');
data.set('name', '["' + data.get('name') + '"]');
data.set('prefix', '["' + data.get('prefix') + '"]');
}
fetch(wpdbt_admin_vars.data.api_domain + "/api/v2/feedback", {
method: "POST",
body: data,
})
.then(function (response) {
return response.json();
})
.then(function (result) {
let element_text = document.getElementById('feedback_message-' + slug);
if(result.success === false){
buildResponse(element_text,result.message, "bg-light-red", slug)
element.classList.remove('disabled');
return;
}
if(result.success === true){
var obj_names = JSON.parse(data.get("name"));
var obj_prefixes = [];
if(wpdbt_admin_vars.data.current_page == 'tables'){
obj_prefixes = JSON.parse(data.get("prefix"));
}
Object.keys(obj_names).forEach(key => {
var name_element = '';
if(wpdbt_admin_vars.data.current_page == 'tables' && obj_prefixes[key] == true || obj_prefixes[key] == 'true'){
name_element = wpdbt_admin_vars.data.prefix + obj_names[key];
}else{
name_element = obj_names[key];
}
list.get('name',name_element)[0]._values.feedback = true;
});
buildResponse(element_text,result.message, "bg-light-green", slug)
feedbackUserInitAjax(data);
element.classList.remove('disabled');
return;
}
})
.catch(function (error) {
console.error(error);
let element_text = document.getElementById('feedback_message-' + slug);
buildResponse(element_text,'ERROR', "bg-light-red", slug)
element.classList.remove('disabled');
return;
});
}
function buildResponse(element_text,message, bg_class, slug){
element_text.innerHTML = message;
document.getElementById("container-feedback-" + slug).classList.add(bg_class);
document.getElementById("container-feedback-" + slug).classList.remove("d-none");
}
function feedbackUserInitAjax(data) {
jQuery.ajax({
type: "POST",
url: ajax_var.url,
data:
"action=" +
ajax_var.action +
"&nonce=" +
ajax_var.nonce +
"&name=" +
data.get("name") +
"&prefix=" +
data.get("prefix") +
"&type=" +
data.get("type") +
"&section=" +
data.get("section") +
"&vote=" +
data.getAll("vote")[1] ?? null,
success: function (result) {
console.log("success");
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR.responseText);
},
done: function (result) {
console.log("done:");
},
});
}