snaper.js
3.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
window.allFieldsToJson = function allFieldsToJson() {
const data = {};
const fields = document.querySelectorAll('input, select, textarea');
fields.forEach(field => {
const key = field.name;// || field.id; // Usa el nombre del campo, o su ID si no tiene nombre
const value = field.value;
const ignorar = ["?","","---",false,"-",]
if (!ignorar.includes(value)){
// Si la clave ya existe (por ejemplo, en caso de checkboxes o radios con el mismo nombre)
if (data.hasOwnProperty(key)) {
//if (Array.isArray(data[key])) {
// data[key].push(value);
//} else {
// data[key] = [data[key], value];
//}
} else {
data[key] = value;
}
}
});
//return JSON.stringify(data);
return data;
}
window.populateFieldsFromJson = function populateFieldsFromJson(data) {
Object.keys(data).forEach(key => {
const fields = document.querySelectorAll(`[name="${key}"], [id="${key}"]`);
fields.forEach(field => {
const value = data[key];
if (field.type === 'checkbox' || field.type === 'radio') {
// Marcar checkboxes/radios según el valor (asumimos booleano o comparación de string)
field.checked = Array.isArray(value) ? value.includes(field.value) : field.value === String(value);
} else if (field.tagName === 'SELECT' && Array.isArray(value)) {
// Seleccionar múltiples opciones si es un select múltiple
Array.from(field.options).forEach(option => {
option.selected = value.includes(option.value);
});
} else {
// Asignar valor a otros tipos de campos
field.value = value;
}
});
});
}
window.watchForChanges = function watchForChanges() {
console.log("Observando")
// Selecciona todos los campos de entrada, selectores y áreas de texto en el documento
const fields = document.querySelectorAll('input, select, textarea');
const snapearField = document.getElementById('snapear');
// Verifica si existe el campo "snapear" en el documento
if (!snapearField) {
console.warn('El campo con id="snapear" no existe en el documento.');
return;
}
fields.forEach(field => {
// Agrega un evento 'change' a cada campo
field.addEventListener('change', () => {
snapearField.value = "1";
console.log("Se encontro cambio se programa generer snap")
});
});
}
window.Snapeador = function Sanapeador(){
const valor = document.getElementById('snapear').value;
if (valor === "0"){
return;
}
const data = allFieldsToJson()
this.SubirSnap(data)
document.getElementById('snapear').value = 0
}
function SubirSnap(data) {
//API KET
const requestData = {
"token": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
//"url": "https://hgt.hgt.com.ar/api_rto/snaper",
"url": "https://validacion.hgtsa.com.ar/api_rto/snaper",
"clear": true,
"params": {
"ApiKey": "sdñÑREgerqw3$E#]ÑgdfbversdfFfew435",
"id_cent": "61",
"data_snap": data
}
};
fetch('https://api.hgt.com.ar/redirect', {
method: 'POST',
headers: {
'Accept': 'application/json',
"Content-Type": "application/json"
},
body: JSON.stringify(requestData)
})
.then(response => response.json())
.then(data => {
//createHistoricoList(data);
})
.catch(error => {
console.error('Error:', error);
});
};