- Fixed breadcrumb method name (render() -> render_breadcrumbs()) - Resolved two-column layout by moving navigation inside content wrapper - Added dedicated CSS to force single-column layout - Updated hierarchical URL detection for master dashboard pages - Updated TROUBLESHOOTING.md with complete master dashboard fixes - Removed redundant authentication blocking content display
		
			
				
	
	
		
			102 lines
		
	
	
		
			No EOL
		
	
	
		
			4.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			No EOL
		
	
	
		
			4.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | ||
| 
 | ||
| (async () => {
 | ||
|   console.log('🔍 Checking if master dashboard page exists in WordPress...');
 | ||
|   
 | ||
|   const browser = await chromium.launch({
 | ||
|     headless: false,
 | ||
|     slowMo: 500
 | ||
|   });
 | ||
|   
 | ||
|   const page = await browser.newPage();
 | ||
|   
 | ||
|   try {
 | ||
|     // First check what happens with a simple direct URL access
 | ||
|     console.log('📋 Testing direct URL access...');
 | ||
|     const response = await page.goto('https://upskill-staging.measurequick.com/master-trainer/master-dashboard/', {
 | ||
|       waitUntil: 'networkidle'
 | ||
|     });
 | ||
|     
 | ||
|     console.log('- Response status:', response.status());
 | ||
|     console.log('- Response URL:', response.url());
 | ||
|     
 | ||
|     // Check page structure
 | ||
|     const pageInfo = await page.evaluate(() => {
 | ||
|       const bodyClasses = document.body.className;
 | ||
|       const pageId = bodyClasses.match(/page-id-(\d+)/)?.[1];
 | ||
|       
 | ||
|       // Check for WordPress's own 404 indicators
 | ||
|       const is404 = bodyClasses.includes('error404');
 | ||
|       const hasContent = document.querySelector('.entry-content, .site-main, #main, .hvac-page-wrapper');
 | ||
|       
 | ||
|       // Check what template WordPress thinks it's using
 | ||
|       const templateClass = bodyClasses.match(/page-template-[\w-]+/)?.[0];
 | ||
|       
 | ||
|       // Check if there's a title element
 | ||
|       const title = document.querySelector('h1, .entry-title');
 | ||
|       
 | ||
|       return {
 | ||
|         pageId: pageId || 'none',
 | ||
|         is404: is404,
 | ||
|         hasContent: hasContent !== null,
 | ||
|         contentSelector: hasContent ? hasContent.tagName + (hasContent.id ? '#' + hasContent.id : '') + (hasContent.className ? '.' + hasContent.className.split(' ')[0] : '') : 'none',
 | ||
|         templateClass: templateClass || 'none',
 | ||
|         pageTitle: title ? title.textContent.trim() : 'none',
 | ||
|         bodyClassList: bodyClasses
 | ||
|       };
 | ||
|     });
 | ||
|     
 | ||
|     console.log('\n📊 Page Analysis:');
 | ||
|     console.log('- WordPress Page ID:', pageInfo.pageId);
 | ||
|     console.log('- Is 404 Page:', pageInfo.is404);
 | ||
|     console.log('- Has Content Area:', pageInfo.hasContent);
 | ||
|     console.log('- Content Selector:', pageInfo.contentSelector);
 | ||
|     console.log('- Template Class:', pageInfo.templateClass);
 | ||
|     console.log('- Page Title:', pageInfo.pageTitle);
 | ||
|     
 | ||
|     // Try alternate URL formats
 | ||
|     console.log('\n📋 Testing alternate URL formats...');
 | ||
|     
 | ||
|     // Try without trailing slash
 | ||
|     const response2 = await page.goto('https://upskill-staging.measurequick.com/master-trainer/master-dashboard', {
 | ||
|       waitUntil: 'networkidle'
 | ||
|     });
 | ||
|     console.log('- Without trailing slash - Status:', response2.status(), 'URL:', response2.url());
 | ||
|     
 | ||
|     // Try the old dashboard URL
 | ||
|     const response3 = await page.goto('https://upskill-staging.measurequick.com/master-trainer/dashboard/', {
 | ||
|       waitUntil: 'networkidle'
 | ||
|     });
 | ||
|     console.log('- Old dashboard URL - Status:', response3.status(), 'URL:', response3.url());
 | ||
|     
 | ||
|     // Check what's in the HTML source
 | ||
|     const htmlContent = await page.content();
 | ||
|     console.log('\n📊 HTML Content Analysis:');
 | ||
|     console.log('- Contains "Master Dashboard":', htmlContent.includes('Master Dashboard'));
 | ||
|     console.log('- Contains "System Overview":', htmlContent.includes('System Overview'));
 | ||
|     console.log('- Contains template debug comment:', htmlContent.includes('DEBUG: template-hvac-master-dashboard.php loaded'));
 | ||
|     console.log('- Contains hvac-page-wrapper:', htmlContent.includes('hvac-page-wrapper'));
 | ||
|     
 | ||
|     // Look for any PHP errors in the source
 | ||
|     const phpErrors = htmlContent.match(/Fatal error:|Warning:|Notice:|Parse error:/gi);
 | ||
|     if (phpErrors) {
 | ||
|       console.log('\n⚠️  PHP Errors found:', phpErrors);
 | ||
|     }
 | ||
|     
 | ||
|     // Take screenshot
 | ||
|     await page.screenshot({ 
 | ||
|       path: '/tmp/playwright-mcp-output/wp-page-check.png',
 | ||
|       fullPage: false 
 | ||
|     });
 | ||
|     console.log('\n📸 Screenshot saved to /tmp/playwright-mcp-output/wp-page-check.png');
 | ||
|     
 | ||
|     console.log('\n🔍 Keeping browser open for 10 seconds...');
 | ||
|     await page.waitForTimeout(10000);
 | ||
|     
 | ||
|   } catch (error) {
 | ||
|     console.error('Error during testing:', error);
 | ||
|   } finally {
 | ||
|     await browser.close();
 | ||
|     console.log('✅ Test completed');
 | ||
|   }
 | ||
| })(); |