90 lines
3.8 KiB
HTML
90 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Print Debug Test</title>
|
|
<script>
|
|
// Simple test to verify our changes
|
|
function testPrintUtils() {
|
|
console.log('Testing CutPrintUtils improvements...');
|
|
|
|
// Mock objects for testing
|
|
const mockMap = {
|
|
getContainer: () => document.createElement('div'),
|
|
getBounds: () => ({
|
|
getNorth: () => 53.6,
|
|
getSouth: () => 53.4,
|
|
getEast: () => -113.3,
|
|
getWest: () => -113.7
|
|
}),
|
|
getCenter: () => ({ lat: 53.5, lng: -113.5 }),
|
|
getZoom: () => 12
|
|
};
|
|
|
|
const mockLocationManager = {
|
|
currentCutId: '123',
|
|
currentCutLocations: [
|
|
{ latitude: 53.5, longitude: -113.5, first_name: 'Test', last_name: 'User', support_level: '1' }
|
|
],
|
|
showingLocations: false,
|
|
loadCutLocations: async () => console.log('Mock loadCutLocations called'),
|
|
displayLocationsOnMap: (locations) => {
|
|
console.log('Mock displayLocationsOnMap called with', locations.length, 'locations');
|
|
mockLocationManager.showingLocations = true;
|
|
},
|
|
getSupportColor: (level) => '#28a745'
|
|
};
|
|
|
|
const mockCutsManager = {
|
|
allCuts: [{ id: '123', name: 'Test Cut' }],
|
|
currentCutLayer: null
|
|
};
|
|
|
|
// Test our enhanced print utils
|
|
const printUtils = new CutPrintUtils(mockMap, mockCutsManager, mockLocationManager);
|
|
|
|
console.log('CutPrintUtils created successfully with enhanced features');
|
|
console.log('Available methods:', Object.getOwnPropertyNames(CutPrintUtils.prototype));
|
|
|
|
return true;
|
|
}
|
|
|
|
// Run test when page loads
|
|
window.addEventListener('load', () => {
|
|
if (typeof CutPrintUtils !== 'undefined') {
|
|
testPrintUtils();
|
|
} else {
|
|
console.log('CutPrintUtils not loaded - this is expected in test environment');
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>Print Debug Test</h1>
|
|
<p>Check the browser console for test results.</p>
|
|
<p>This tests the enhanced CutPrintUtils functionality.</p>
|
|
|
|
<h2>Key Improvements Made:</h2>
|
|
<ul>
|
|
<li>✅ Auto-load locations when printing if not already loaded</li>
|
|
<li>✅ Auto-display locations on map for print capture</li>
|
|
<li>✅ Enhanced map capture with html2canvas (priority #1)</li>
|
|
<li>✅ Improved dom-to-image capture with better filtering</li>
|
|
<li>✅ Better UI state management (toggle button updates)</li>
|
|
<li>✅ Enhanced debugging and logging</li>
|
|
<li>✅ Auto-show locations when viewing cuts (if enabled)</li>
|
|
</ul>
|
|
|
|
<h2>Root Cause Analysis:</h2>
|
|
<p>The issue was that locations were not automatically displayed on the map when viewing a cut or printing.
|
|
The print function expected locations to be visible but they were only shown when the user manually clicked "Show Locations".</p>
|
|
|
|
<h2>Solution:</h2>
|
|
<ol>
|
|
<li><strong>Print Enhancement:</strong> The print function now ensures locations are loaded and displayed before capturing the map</li>
|
|
<li><strong>View Enhancement:</strong> When viewing a cut, locations are automatically loaded if the cut has show_locations enabled</li>
|
|
<li><strong>Capture Enhancement:</strong> Improved map capture methods with html2canvas as primary method</li>
|
|
<li><strong>State Management:</strong> Better synchronization between location visibility and UI state</li>
|
|
</ol>
|
|
</body>
|
|
</html>
|