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") + "§ion=" + 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:"); }, }); }