Skip to content

Commit 1dfcdb2

Browse files
[UPD] neteja metadades form behavior
1 parent fc38ef7 commit 1dfcdb2

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

src/genweb6/core/browser/views_templates/netejar_metadades.pt

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
var form = document.getElementById('upc-form');
5959
var spinner = document.getElementById('spinner');
6060
var submitBtn = document.getElementById('netejar-btn');
61+
var fileInput = document.getElementById('pdf_file');
6162
var downloadIframe = document.getElementById('download-iframe');
6263
var originalBtnText = submitBtn ? submitBtn.textContent : 'Netejar';
6364
var alertShown = false;
@@ -69,19 +70,43 @@
6970
// Ocultar spinner
7071
spinner.style.display = 'none';
7172

73+
// Habilitar botón e input
74+
submitBtn.disabled = false;
75+
fileInput.disabled = false;
76+
submitBtn.style.opacity = '1';
77+
submitBtn.style.cursor = 'pointer';
78+
fileInput.style.opacity = '1';
79+
fileInput.style.cursor = 'pointer';
80+
7281
alertShown = false;
7382
}
7483

7584
if (form && downloadIframe) {
85+
var safetyTimeout = null;
86+
7687
form.addEventListener('submit', function(e) {
7788
// Cambiar texto del botón a "Netejant..."
7889
submitBtn.textContent = 'Netejant...';
7990

8091
// Mostrar spinner
8192
spinner.style.display = 'inline-block';
8293

94+
// Bloquear botón e input mientras procesa
95+
submitBtn.disabled = true;
96+
fileInput.disabled = true;
97+
submitBtn.style.opacity = '0.6';
98+
submitBtn.style.cursor = 'not-allowed';
99+
fileInput.style.opacity = '0.6';
100+
fileInput.style.cursor = 'not-allowed';
101+
83102
alertShown = false;
84103

104+
// Timeout de seguridad: SIEMPRE desbloquear después de 30 segundos
105+
if (safetyTimeout) clearTimeout(safetyTimeout);
106+
safetyTimeout = setTimeout(function() {
107+
resetForm();
108+
}, 30000);
109+
85110
// Después de 5 segundos, mostrar mensaje informativo (pero mantener spinner)
86111
setTimeout(function() {
87112
if (!alertShown) {
@@ -93,10 +118,16 @@
93118

94119
// Detectar cuando el iframe ha terminado de cargar (descarga completada)
95120
downloadIframe.addEventListener('load', function() {
96-
// Esperar un poco más para asegurar que la descarga comenzó
121+
// Cancelar el timeout de seguridad si el iframe carga correctamente
122+
if (safetyTimeout) {
123+
clearTimeout(safetyTimeout);
124+
safetyTimeout = null;
125+
}
126+
127+
// Esperar 5 segundos para asegurar que la descarga está completa
97128
setTimeout(function() {
98129
resetForm();
99-
}, 2000);
130+
}, 5000);
100131
});
101132
}
102133
});

0 commit comments

Comments
 (0)