function genZip(selected, errordel) {console.log('zip gen') var getWS=document.getElementById('wsAttach').checked ? "yes" : "no" ; var schAttach=document.getElementById('schAttach').checked ? "attach" : "" ; var wsattach=(getWS==="yes" ) ? selected : 'bypass' ; document.getElementById('statusCount').innerHTML='Generating Zip
' ; var xhr=new XMLHttpRequest(); xhr.open("POST", ROOT_URL + '/functions/generators/genZIP.php' , true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' ); xhr.onreadystatechange=function () { if (xhr.readyState===4 && xhr.status===200) { var data=xhr.responseText.trim(); if (data !=="" ) { var str=data.split('|'); document.getElementById('delivery').style.display='block' ; var output={ source: 'output/reports/' , file: str[0], type: 'zip' }; var outputString=JSON.stringify(output); document.getElementById('mailerContainer').innerHTML='' ; var url=ROOT_URL + '/includes/master/deliveryMailer.php?zips=' + encodeURIComponent(outputString) + '&clientnumber=&tenant=' + TENANT_URL; loadContentAndExecuteScripts(url, 'mailerContainer' ); } document.getElementById('loading').style.display='none' ; setTimeout(function() { var el = document.getElementById('defectList'); if (!el) { console.error('defectList not found.'); } else { const hasContent = el.textContent.replace(/\u00A0/g, ' ').trim().length > 0; if (hasContent) { console.log('defectList has content. Proceeding.'); genHSEZip(selected, errordel); } else { console.log('defectList empty. Skipping.'); } } }, 300); } }; xhr.send('clientnumber=&items=' + encodeURIComponent(selected) + ' &ws=' + encodeURIComponent(wsattach) + ' &schMode=' + encodeURIComponent(schAttach) + ' &tenant=' + encodeURIComponent(TENANT_URL)); } function genHSEZip(selected, errordel) { const noticeHost = document.getElementById('hseNotice'); if (!noticeHost) return; // Build a whitelist strictly from errordel function parseErrordel(raw) { raw = String(raw ?? '').trim(); if (!raw) return []; const out = new Set(); if (raw.includes('|')) { // Format: 1759415489-20150-500-1|... raw.split('|').map(s => s.trim()).filter(Boolean).forEach(tok => { const p = tok.split('-').map(x => x.trim()); if (p.length >= 2 && p[0] && p[1]) { out.add(`output/reports//${p[0]}_${p[1]}.pdf`); } }); } else { // Format: path1.pdf,path2.pdf,... raw.split(',').map(s => s.trim()).filter(Boolean).forEach(path => { // keep given path, just strip leading ./ or ../ const norm = path.replace(/^(\.\/|\.\.\/)+/, ''); out.add(norm); }); } return Array.from(out); } const links = parseErrordel(errordel); // Render ONLY these links const alert = document.createElement('div'); alert.className = 'alert alert-warning text-dark text-center'; alert.innerHTML = 'You have URGENT in your reporting data. Notify HSE' + `
Detected items: ${links.length}
`; const row = document.createElement('div'); row.className = 'd-flex flex-wrap justify-content-center mt-2 gap-2'; links.forEach(href => { const fileName = href.split('/').pop(); const a = document.createElement('a'); a.href = href; a.target = '_blank'; a.className = 'btn btn-sm-btn-secondary me-2'; a.setAttribute('data-mdb-tooltip-init', ''); a.setAttribute('data-mdb-placement', 'top'); a.setAttribute('data-mdb-trigger', 'hover'); a.setAttribute('data-html', 'true'); a.setAttribute('aria-label', fileName); a.setAttribute('data-mdb-original-title', fileName); const i = document.createElement('i'); i.className = 'fad fa-file-pdf'; i.style.color = '#e96152'; i.style.fontSize = '1.1rem'; a.appendChild(i); row.appendChild(a); }); noticeHost.innerHTML = ''; alert.appendChild(row); noticeHost.appendChild(alert); try { if (window.mdb && mdb.Tooltip) row.querySelectorAll('[data-mdb-tooltip-init]').forEach(el => new mdb.Tooltip(el)); } catch(_) {} // Continue ZIP generation, unchanged document.getElementById('statusCount').innerHTML = 'Generating HSE Zip
'; var xhr = new XMLHttpRequest(); xhr.open("POST", ROOT_URL + '/functions/generators/genZIP.php', true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var data = (xhr.responseText || '').trim(); if (data) { document.getElementById('defectList').value = data; document.getElementById('defectTemp').textContent = data; pulseElementBackgroundClass('notifyHeader', 'bg_secondary', 'danger-color-dark', 900); } } }; xhr.send( 'mode=hse&clientnumber=&items=' + encodeURIComponent(String(errordel ?? '').trim()) + '&tenant=' + encodeURIComponent(TENANT_URL) ); } function genZips(hse) { console.log('loaded zip'); var selected=document.getElementById('itemList').textContent; var schAttach=document.getElementById('schAttach').checked ? "attach" : "" ; var getWS=document.getElementById('wsAttach').checked ? "yes" : "no" ; var wsattach=(getWS==="yes" ) ? selected : 'bypass' ; document.getElementById('statusCount').innerHTML='Generating Zip
' ; var ml=document.getElementById('multiList').textContent; var xhrShed=new XMLHttpRequest(); xhrShed.open("POST", ROOT_URL+'/functions/generators/genShed.php' , true); xhrShed.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' ); xhrShed.send('clientnumber=&tenant=' +TENANT_URL); var xhrZip=new XMLHttpRequest(); xhrZip.open("POST", ROOT_URL + '/functions/generators/genZIP.php' , true); xhrZip.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded' ); xhrZip.onreadystatechange=function () { if (xhrZip.readyState===4 && xhrZip.status===200) { var data=xhrZip.responseText.trim(); if (data !=="" ) { console.log('zip created'); var str=data.split('|'); document.getElementById('delivery').style.display='block' ; var output={ source: 'output/reports/' , file: str[0], type: 'zip' }; var outputString=JSON.stringify(output); console.log('outputString created'); document.getElementById('mailerContainer').innerHTML='' ; var url=ROOT_URL + '/includes/master/deliveryMailer.php?zips=' + encodeURIComponent(outputString) + '&clientnumber=&tenant=' + TENANT_URL; loadContentAndExecuteScripts(url, 'mailerContainer' ); } document.getElementById('loading').style.display='none' ; document.getElementById('delivery').style.display='block' ; console.log('zip done'); } }; xhrZip.send('clientnumber=&items=' + encodeURIComponent(ml) + ' &ws=' + encodeURIComponent(wsattach) + ' &schMode=' + encodeURIComponent(schAttach) + ' &tenant=' + encodeURIComponent(TENANT_URL)); if (hse !== '') { setTimeout(function() { var defectListElement = document.getElementById('defectList'); if (defectListElement) { console.log("defectList found, calling genHSEZip"); genHSEZip(selected, errordel); // Call genHSEZip after delay } else { console.error("defectList not found."); } }, 300); } }