Delete scripts/vendor/main.js

This commit is contained in:
2026-02-10 18:55:05 +00:00
parent 14e44cd5a2
commit 343fb7a218

176
scripts/vendor/main.js vendored
View File

@@ -1,176 +0,0 @@
/**
* Storage Saturation Report - Main JavaScript
* Loads report via mode=getreport. PDF/Image export via client-side jsPDF + html2canvas (no XI Chromium pipeline).
*/
$(document).ready(function() {
load_report();
$('#export-pdf-btn').on('click', function() {
exportToPdf();
});
$('#export-image-btn').on('click', function() {
exportToImage();
});
function load_report() {
var baseUrl = window.saturationreportBaseUrl || (window.location.pathname.replace(/\/[^/]*$/, '/index.php'));
var url = baseUrl + '?mode=getreport';
$.get(url, function(html) {
$('#report').html(html);
}).fail(function() {
$('#report').html(
'<div class="alert alert-danger">' +
'Error loading storage saturation report.' +
'</div>'
);
});
}
function getComponentBase() {
return (window.saturationreportBaseUrl || '').replace(/\/[^/]*$/, '');
}
function loadScript(src, onload, onerror) {
var script = document.createElement('script');
script.src = src;
script.onload = onload;
script.onerror = onerror || function() {};
document.head.appendChild(script);
}
function exportToPdf() {
var btn = $('#export-pdf-btn');
var originalText = btn.html();
btn.prop('disabled', true).html('<i class="fa fa-spinner fa-spin"></i> Generating...');
function doPdf() {
if (typeof html2canvas === 'undefined') {
var componentBase = getComponentBase();
var localH2c = componentBase ? (componentBase + '/scripts/vendor/html2canvas.min.js') : '';
var cdnH2c = 'https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js';
loadScript(localH2c || cdnH2c, function() { doPdf(); }, function() {
if (localH2c) { loadScript(cdnH2c, doPdf, fallbackPdf); return; }
fallbackPdf();
});
return;
}
if (typeof window.jspdf === 'undefined' || !window.jspdf.jsPDF) {
var componentBase = getComponentBase();
var localJspdf = componentBase ? (componentBase + '/scripts/vendor/jspdf.umd.min.js') : '';
var cdnJspdf = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js';
loadScript(localJspdf || cdnJspdf, doPdf, function() {
if (localJspdf) loadScript(cdnJspdf, doPdf, fallbackPdf);
else fallbackPdf();
});
return;
}
var container = document.getElementById('saturationreport-container');
if (!container) container = document.getElementById('report');
if (!container) {
alert('Report container not found');
btn.prop('disabled', false).html(originalText);
return;
}
html2canvas(container, {
backgroundColor: '#ffffff',
scale: 2,
logging: false,
useCORS: true
}).then(function(canvas) {
try {
var JsPDF = window.jspdf.jsPDF;
var doc = new JsPDF('p', 'mm', 'a4');
var pageW = doc.internal.pageSize.getWidth();
var pageH = doc.internal.pageSize.getHeight();
var margin = 10;
var maxW = pageW - 2 * margin;
var maxH = pageH - 2 * margin;
var imgW = maxW;
var imgH = (canvas.height * maxW) / canvas.width;
if (imgH > maxH) {
imgH = maxH;
imgW = (canvas.width * maxH) / canvas.height;
}
doc.addImage(canvas.toDataURL('image/png'), 'PNG', margin, margin, imgW, imgH);
doc.save('storage-saturation-report-' + new Date().getTime() + '.pdf');
} catch (err) {
console.error('PDF export error:', err);
alert('Failed to generate PDF. Try Print to PDF from the browser.');
}
btn.prop('disabled', false).html(originalText);
}).catch(function(err) {
console.error('Capture error:', err);
fallbackPdf();
});
}
function fallbackPdf() {
btn.prop('disabled', false).html(originalText);
window.print();
}
doPdf();
}
function exportToImage() {
if (typeof html2canvas === 'undefined') {
var componentBase = (window.saturationreportBaseUrl || '').replace(/\/[^/]*$/, '');
var localSrc = componentBase ? (componentBase + '/scripts/vendor/html2canvas.min.js') : '';
var cdnSrc = 'https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js';
var script = document.createElement('script');
script.src = localSrc || cdnSrc;
script.onload = function() { captureImage(); };
script.onerror = function() {
if (localSrc && script.src === localSrc) {
var fallback = document.createElement('script');
fallback.src = cdnSrc;
fallback.onload = function() { captureImage(); };
fallback.onerror = function() {
alert('Failed to load image export library. Please try using browser screenshot or print-to-PDF instead.');
};
document.head.appendChild(fallback);
} else {
alert('Failed to load image export library. Please try using browser screenshot or print-to-PDF instead.');
}
};
document.head.appendChild(script);
} else {
captureImage();
}
}
function captureImage() {
var container = document.getElementById('saturationreport-container');
if (!container) {
container = document.getElementById('report');
}
if (!container) {
alert('Report container not found');
return;
}
var btn = $('#export-image-btn');
var originalText = btn.html();
btn.prop('disabled', true).html('<i class="fa fa-spinner fa-spin"></i> Generating...');
html2canvas(container, {
backgroundColor: '#ffffff',
scale: 2,
logging: false,
useCORS: true
}).then(function(canvas) {
var link = document.createElement('a');
link.download = 'saturation-report-' + new Date().getTime() + '.png';
link.href = canvas.toDataURL('image/png');
link.click();
btn.prop('disabled', false).html(originalText);
}).catch(function(err) {
console.error('Error capturing image:', err);
alert('Failed to generate image. Please try using browser screenshot or print-to-PDF instead.');
btn.prop('disabled', false).html(originalText);
});
}
});