PageSourceSearch

https://www.cloda.ai/wp-content/plugins/knowledge-custom/widgets/posts-widget/script.js?ver=1.0.0

js cloda.ai collected 2026-10-05 11:56:16 UTC 3,268 bytes, 87 lines download raw bytes

1document.addEventListener("DOMContentLoaded", function () {
2    const sectorDropdown = document.querySelector(".blog-widget #filter-sectors");
3    const topicDropdown = document.querySelector(".blog-widget #filter-topics");
4    const filterButton = document.querySelector(".blog-widget #filter-button");
5
6    // Check if the filterButton exists before adding the event listener
7    if (filterButton) {
8        filterButton.addEventListener("click", function () {
9            var selectedSector = "";//sectorDropdown ? sectorDropdown.value : null;
10            var selectedTopic = "";//topicDropdown ? topicDropdown.value : null;
11            
12            // console.log("Selected Sector:", selectedSector);
13            // console.log("Selected Topic:", selectedTopic);
14
15            const filterTopics = jQuery('.blog-widget #filter-topics').val(); // Returns an array of selected values
16            if (filterTopics && filterTopics.length) {
17               selectedTopic = filterTopics.join(', ');
18            }
19
20            const filterSectors = jQuery('.blog-widget #filter-sectors').val(); // Returns an array of selected values
21            if (filterSectors && filterSectors.length) {
22                selectedSector = filterSectors.join(', ');
23            }
24            
25            // Call the fetchFilteredPosts function with the selected values
26            fetchFilteredPosts(selectedSector, selectedTopic);
27        });
28    }
29});
30
31
32// function fetchFilteredPosts(sector, topic) {
33//     // Create a FormData object
34//     var formData = new FormData();
35//     formData.append("action", "filter_posts");
36//     formData.append("sector", sector);
37//     formData.append("topic", topic);
38
39//     console.log(sector);
40//     console.log(topic);
41
42//     // Send the data to the server via AJAX
43//     fetch("/wp-admin/admin-ajax.php", {
44//         method: "POST",
45//         body: formData
46//     })
47//     .then(response => response.text())
48//     .then(data => {
49//         console.log(data);
50//         // if (data.success) {
51//             const grid = document.querySelector(".widget-blog-grid");
52//             grid.innerHTML = "";
53//             grid.innerHTML = data;
54//         // } else {
55//         //     alert(data.message || "There was an error fetching the posts");
56//         // }
57//     })
58//     .catch(error => {
59//         console.error("Error fetching filtered posts:", error);
60//     });
61// }
62
63
64function fetchFilteredPosts(sector, topic) {
65  const formData = new FormData();
66  formData.append("action", "filter_posts");
67  formData.append("sector", sector || "");
68  formData.append("topic",  topic  || "");
69  if (typeof PostsWidgetAjax !== "undefined") {
70    formData.append("_ajax_nonce", PostsWidgetAjax.nonce);
71  }
72
73  // Usa la URL correcta por sitio
74  const ajaxUrl = (typeof PostsWidgetAjax !== "undefined" && PostsWidgetAjax.ajax_url)
75    ? PostsWidgetAjax.ajax_url
76    : (location.origin + "/wp-admin/admin-ajax.php"); // fallback de emergencia
77
78  fetch(ajaxUrl, { method: "POST", body: formData, credentials: "same-origin" })
79    .then(r => r.text())
80    .then(html => {
81      const grid = document.querySelector(".widget-blog-grid");
82      if (grid) grid.innerHTML = html;
83    })
84    .catch(err => console.error("AJAX error:", err));
85}
86
87

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.