Have you ever needed to trigger an action after uploading or modifying a document? I’m not sure about you, but we recently faced this exact challenge. After some quick research, we came up with a relatively simple JavaScript function that triggers a 'Save' button click when an attachment is added or modified. Of course, the function can be adjusted according to specific needs.
The JavaScript function needs to be inserted into an HTML field for it to work. Below is the function itself:
<script>
// Salvează funcția fetch originală într-o variabilă separată
if (!window.originalFetch) {
window.originalFetch = window.fetch; // Salvează funcția fetch originală dacă nu a fost deja salvată
}
window.fetch = async (...args) => {
const url = args[0];
// Regular expressions to match the two patterns with dynamic IDs
var uploadPattern = //attachments/upload/;
var sessionFinishPattern = //attachments/session/[a-f0-9-]+/finish/;
// Verifică dacă URL-ul se potrivește cu pattern-urile specifice pentru atașamente
if (uploadPattern.test(url) || sessionFinishPattern.test(url)) {
// Apelează fetch-ul original și capturează răspunsul
const response = await originalFetch(...args); // Folosește fetch-ul original!
// Dacă răspunsul este de succes, așteaptă 3 secunde și declanșează click pe "Save"
if (response.ok) {
setTimeout(() => {
const saveButton = document.getElementById('SaveToolbarButton');
if (saveButton) {
saveButton.click(); // Simulează click pe butonul de save
} else {
console.error("SaveToolbarButton not found!");
}
}, 3000); // 3 secunde întârziere
}
return response; // Returnează răspunsul fetch-ului original
}
// Pentru toate celelalte cereri, doar apelează fetch-ul original
return originalFetch(...args); // Folosește fetch-ul original pentru alte cereri
};
</script>