PageSourceSearch

https://puertoasis-putumayo.gov.co/SiteAssets/Buscador/assets/js/main.js

js puertoasis-putumayo.gov.co collected 2026-10-02 22:55:55 UTC 3,871 bytes, 90 lines download raw bytes

1// Declarar variables globales
2let dataGlobal = []; // Almacena los resultados de la consulta
3let PaginasEncontradas = []; // Almacena las páginas encontradas
4export const allModules = ["","Ciudadanos", "Conectividad", "NuestraAlcaldia", "Proyectos", "Transparencia", "MiMunicipio"]; // Lista de todos los módulos disponibles
5
6// Función para quitar tildes de un texto
7export function quitarTildes(texto) {
8    return texto.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
9}
10
11// Función asincrónica para realizar la consulta en el buscador
12export async function ConsultaBuscador(terminoDeBusqueda) {
13    // Definir parámetros de la consulta
14    const folder = "Páginas"; // Carpeta en la que se realiza la búsqueda
15    const params = ["ID", "LinkFilename", "Title"]; // Campos a seleccionar en la consulta
16
17    // Normalizar el término de búsqueda eliminando tildes y convirtiéndolo a minúsculas
18    const terminoNormalizado = quitarTildes(terminoDeBusqueda.toLowerCase());
19
20    // Limpiar los resultados anteriores en cada nueva búsqueda
21    dataGlobal = [];
22
23    // Iterar sobre todos los módulos disponibles para realizar la consulta en cada uno
24    for (const module of allModules) {
25        // Construir la URL de la consulta
26        const ulrFetch = `${location.protocol}//${location.host}/${module}/_api/web/lists/getbytitle('${folder}')/items?$select=${params}&$top=5000`;
27
28        try {
29            // Realizar la consulta utilizando fetch
30            let response = await fetch(ulrFetch, {
31                method: "GET",
32                headers: {
33                    Accept: "application/json; odata=verbose",
34                },
35            });
36
37            // Verificar si la respuesta es exitosa
38            if (!response.ok) {
39                throw new Error(`Error en la consulta para el módulo ${module}: ${response.statusText}`);
40            }
41
42            // Obtener los datos de la respuesta en formato JSON
43            let data = await response.json();
44
45            // Verificar que existan datos y data.d
46            if (data && data.d) {
47                let info = data.d.results;
48
49                // Verificar que existan resultados en data.d.results
50                if (info) {
51                    // Filtrar los resultados que coinciden con el término de búsqueda, incluso sin tildes
52                    const resultadosFiltrados = info.filter(item => {
53                        const tituloNormalizado = quitarTildes(item.Title.toLowerCase());
54                        return tituloNormalizado.includes(terminoNormalizado);
55                    });
56                    // Agregar los resultados de esta consulta a dataGlobal
57                    dataGlobal = dataGlobal.concat(resultadosFiltrados);
58                }
59            }
60
61        } catch (error) {
62            // Manejar errores de consulta
63            console.error(`Error en la consulta para el módulo ${module}: ${error.message}`);
64        }
65    }
66
67    // Limpiar el array de páginas encontradas
68    PaginasEncontradas = [];
69
70    // Iterar sobre los resultados globales
71    dataGlobal.forEach((item) => {
72        // Obtener la URL de la página y extraer información relevante
73        const sliptUrl = item["__metadata"].uri.split("//");
74        const url = sliptUrl[1].split("/")
75
76        // Construir un nuevo objeto con la información de la página encontrada
77        const newUrl = {
78            Title: item.Title,
79            url: `${location.protocol}//${location.host}/${url[1]}/Paginas/${item.LinkFilename}`,
80            id: item.ID,
81            module: url[1]
82        }
83
84        // Agregar el nuevo objeto al array de páginas encontradas
85        PaginasEncontradas.push(newUrl);
86    })
87
88    // Devolver las páginas encontradas
89    return PaginasEncontradas;
90}

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.