This commit is contained in:
naielv
2026-02-05 23:57:54 +01:00
parent 8a9fee46da
commit 75c319c701
3 changed files with 72 additions and 35 deletions

View File

@@ -1276,11 +1276,21 @@ function TS_IndexElement(
}
function BuildQR(mid, label) {
var svgNode = QRCode({
msg: mid,
dim: 150,
pad: 0,
mtx: -1,
ecl: 'L',
ecb: 0,
pal: ['#000000', '#ffffff'],
vrb: 0,
});
return `
<span style="border: 2px dashed black; padding: 10px; display: inline-block; background: white; border-radius: 7px; text-align: center; margin: 10px;">
<span style="border: 2px dashed black; padding: 10px; display: inline-block; background: white; border-radius: 7px; text-align: center; margin: 5px;">
<b>QR %%TITLE%%</b>
<br>${toHtml(quickresponse(mid), [6, 6])}<br>
<small>${label}</small>
<br>${svgNode.outerHTML}<br>
<small>${label || mid}</small>
</span>
`;
}

View File

@@ -43,12 +43,8 @@ PAGES.dataman = {
};
},
__export: function () {
var select_type = safeuuid();
var textarea_content = safeuuid();
var button_export_local = safeuuid();
var button_export_safe = safeuuid();
var button_export_safe_cloud = safeuuid();
var button_clear = safeuuid();
container.innerHTML = html`
<h1>Exportar Datos</h1>
<fieldset>
@@ -58,10 +54,6 @@ PAGES.dataman = {
<br />
<button id="${button_export_local}" type="button">Exportar sin cifrar</button>
<button id="${button_export_safe}" type="button">Exportar con cifrado</button>
<button id="${button_export_safe_cloud}" style="display: none;" type="button">
Exportar a EuskadiTech - cifrado
</button>
<!--<br><br><em>Para descargar envia un correo a telesec@tech.eus con el asunto "TSBK %${getDBName()}".</em>-->
</fieldset>
`;
document.getElementById(button_export_local).onclick = () => {
@@ -130,25 +122,6 @@ PAGES.dataman = {
download(`Export %%TITLE%% Encriptado ${getDBName()}.json.txt`, JSON.stringify(result));
})();
};
// document.getElementById(button_export_safe_cloud).onclick = () => {
// var download_data = (DATA) => {
// toastr.info("Exportado todo, subiendo!");
// fetch(
// "https://telesec-sync.tech.eus/upload_backup.php?table=" + getDBName(),
// {
// method: "POST",
// body: JSON.stringify(DATA),
// }
// )
// .then(() => {
// toastr.success("Subido correctamente!");
// })
// .catch(() => {
// toastr.error("Ha ocurrido un error en la subida.");
// });
// };
// gun.get(TABLE).load(download_data);
// };
},
__import: function () {
var select_type = safeuuid();

View File

@@ -23,12 +23,14 @@ PAGES.materiales = {
var FECHA_ISO = new Date().toISOString().split('T')[0];
container.innerHTML = html`
<h1>Material <code id="${nameh1}"></code></h1>
${BuildQR('materiales,' + mid, 'Este Material')}
${BuildQR('materiales,' + mid)}
<fieldset>
<label>
Fecha Revisión<br />
<input type="date" id="${field_revision}" />
<a onclick='document.getElementById("${field_revision}").value = "${FECHA_ISO}";'
<a
onclick='document.getElementById("${field_revision}").value = "${FECHA_ISO}";'
style="color: blue;cursor: pointer;font-size: 0.9em;"
>Hoy - Contado todas las existencias </a
><br /><br />
</label>
@@ -38,7 +40,17 @@ PAGES.materiales = {
</label>
<label>
Unidad<br />
<input type="text" id="${field_unidad}" /><br /><br />
<select id="${field_unidad}">
<option value="unidad(es)">unidad(es)</option>
<option value="paquete(s)">paquete(s)</option>
<option value="caja(s)">caja(s)</option>
<option value="rollo(s)">rollo(s)</option>
<option value="bote(s)">bote(s)</option>
<option value="metro(s)">metro(s)</option>
<option value="litro(s)">litro(s)</option>
<option value="kg">kg</option></select
><br /><br />
</label>
<label>
Cantidad Actual<br />
@@ -50,7 +62,14 @@ PAGES.materiales = {
</label>
<label>
Ubicación<br />
<input type="text" id="${field_ubicacion}" value="-" /><br /><br />
<input
type="text"
id="${field_ubicacion}"
value="-"
list="${field_ubicacion}_list"
/><br /><br />
<!-- Autocompletar con ubicaciones existentes -->
<datalist id="${field_ubicacion}_list"></datalist>
</label>
<label>
Notas<br />
@@ -61,6 +80,41 @@ PAGES.materiales = {
<button class="rojo" id="${btn_borrar}">Borrar</button>
</fieldset>
`;
// Cargar ubicaciones existentes para autocompletar
DB.map('materiales', (data) => {
if (!data) return;
function addUbicacion(d) {
const ubicacion = d.Ubicacion || '-';
const datalist = document.getElementById(`${field_ubicacion}_list`);
if (!datalist) {
console.warn(`Element with ID "${field_ubicacion}_list" not found.`);
return;
}
const optionExists = Array.from(datalist.options).some((opt) => opt.value === ubicacion);
if (!optionExists) {
const option = document.createElement('option');
option.value = ubicacion;
datalist.appendChild(option);
}
}
if (typeof data === 'string') {
TS_decrypt(
data,
SECRET,
(data, wasEncrypted) => {
if (data && typeof data === 'object') {
addUbicacion(data);
}
},
'materiales',
mid
);
} else {
addUbicacion(data);
}
});
// Cargar datos del material
DB.get('materiales', mid).then((data) => {
function load_data(data, ENC = '') {
document.getElementById(nameh1).innerText = mid;