diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 2437121e..8f02aa40 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -120,7 +120,8 @@ "Bash(UPSKILL_STAGING_URL=\"https://upskill-staging.measurequick.com\" wp --url=$UPSKILL_STAGING_URL --ssh=root@upskill-staging.measurequick.com post list --post_type=page --search=\"master\" --fields=ID,post_title,post_name,post_status)", "Bash(DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.90WDB3 node test-master-trainer-debug.js)", "Bash(DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.90WDB3 node test-page-source-debug.js)", - "Bash(DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.90WDB3 node test-logged-in-master.js)" + "Bash(DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.90WDB3 node test-logged-in-master.js)", + "Bash(DISPLAY=:0 XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.90WDB3 node test-master-nav-colors.js)" ], "deny": [] }, diff --git a/CLAUDE.md b/CLAUDE.md index 377b5ac3..eb14f67d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -260,6 +260,7 @@ The following systems are commented out in `/includes/class-hvac-plugin.php` lin - **Deployment and Verification (2025-06-17)**: Use `scripts/deploy-to-staging.sh` for deployments. Always run `scripts/verify-plugin-fixes.sh` after deployment. Plugin must be reactivated to create missing pages. Legacy redirects working at 100% success rate. Certificate reports 404 issue resolved. - **Plugin Fixes Status**: Certificate reports 404 error FIXED, legacy URL redirects enhanced and working 100%, duplicate shortcode registration removed, template URLs updated to hierarchical structure, comprehensive testing suite implemented. - **Master Dashboard CSS Fix (2025-06-18)**: Master dashboard CSS was broken due to missing get_header()/get_footer() calls in template. FIXED by adding WordPress integration, comprehensive CSS variables framework (--hvac-spacing-*, --hvac-radius-*), 200+ lines of master dashboard styles, proper AJAX handlers, and responsive design. Prevention system implemented with template validation scripts. +- **Master Dashboard Layout and Navigation Fixes (2025-08-22)**: Resolved critical master dashboard issues: 1) Fixed breadcrumb method error (render() → render_breadcrumbs()), 2) Fixed two-column layout issue by moving navigation inside content wrapper and adding hvac-master-dashboard.css to force single-column, 3) Fixed hierarchical URL detection for is_page() function, 4) Removed redundant button navigation bar (Google Sheets, Templates, Trainer Dashboard, Logout buttons), 5) Integrated all button links into proper dropdown menu structure (Google Sheets → Tools dropdown, Account dropdown with Trainer Dashboard/Logout). Navigation color styling issues identified but need additional work. All fixes documented in TROUBLESHOOTING.md. - **Directory Reorganization (2025-06-18)**: Root directory reorganized for maintainability. Development artifacts moved to `archive/` directory with structured subdirectories. Essential files (.env, core plugin files) restored to root. Deployment scripts moved to `scripts/` directory. Plugin redeployed successfully after reorganization - all functionality verified working. - **Test Data Seeding (2025-07-10)**: Updated all test data creation scripts to include JoeMedosch@gmail.com as a master trainer (password: JoeTrainer2025@) and joe@measurequick.com with both trainer and master trainer roles. Use `bin/create-comprehensive-test-data.sh` for complete staging setup. The main staging script `bin/create-staging-test-data.sh` also includes both Joe accounts. All seeding scripts now create test_trainer (regular trainer), JoeMedosch@gmail.com (master trainer), and assign dual roles to joe@measurequick.com automatically during staging deployment. - **Complete End-to-End Testing (2025-07-15)**: Comprehensive testing suite implemented and verified on staging server. Event creation workflow fully functional with 6/6 essential form elements accessible, form submission working without errors, and data persistence verified. Certificate generation workflow 100% operational with 16 events available, 3 active download links returning HTTP 200 status, and complete event-certificate integration. All tests pass including authentication (100%), certificate interface (100%), event creation (form accessibility and submission), and data persistence across sessions. System production-ready with 85-90% test coverage achieved. diff --git a/docs/README.md b/docs/README.md index e061fd70..7776df05 100644 --- a/docs/README.md +++ b/docs/README.md @@ -119,6 +119,36 @@ For issues or questions: ## Recent Fixes & Updates +### Master Dashboard Navigation Overhaul (August 22, 2025) ✅ +**Complete refactoring of master dashboard layout and navigation system** + +- **Problems Fixed**: + - Two-column layout issue with navigation appearing as unwanted sidebar + - Breadcrumb method error causing PHP fatal errors + - Hierarchical URL detection failure with `is_page()` function + - Redundant button navigation creating duplicate UI elements + - Content blocking from dual authentication systems + +- **Solutions Implemented**: + - Created `hvac-master-dashboard.css` to force single-column layout + - Fixed breadcrumb method call (`render()` → `render_breadcrumbs()`) + - Enhanced URL detection in `HVAC_Scripts_Styles::is_master_dashboard_page()` + - Removed old button-based navigation (Google Sheets, Templates, Trainer Dashboard, Logout) + - Integrated all functionality into organized dropdown menu structure: + - Google Sheets → Tools dropdown + - Communication Templates → Tools dropdown + - Trainer Dashboard → Account dropdown + - Logout → Account dropdown + +- **Files Modified**: + - `templates/page-master-dashboard.php` - Navigation moved inside content wrapper + - `assets/css/hvac-master-dashboard.css` - New CSS for layout control + - `includes/class-hvac-scripts-styles.php` - Added master dashboard detection + - `includes/class-hvac-master-menu-system.php` - Enhanced menu structure + - `templates/template-hvac-master-dashboard.php` - Removed button navigation + +- **Known Issues**: Navigation color scheme needs aesthetic improvements + ### Enhanced CSV Import System (August 4, 2025) ✅ **Comprehensive CSV import system with taxonomy integration** diff --git a/test-master-nav-colors.js b/test-master-nav-colors.js new file mode 100644 index 00000000..843a1a27 --- /dev/null +++ b/test-master-nav-colors.js @@ -0,0 +1,74 @@ +const { chromium } = require('playwright'); + +(async () => { + console.log('Starting master dashboard navigation color check...'); + + // Launch browser in headless mode to capture screenshots + const browser = await chromium.launch({ + headless: true, + args: ['--window-size=1920,1080'] + }); + + const context = await browser.newContext({ + viewport: { width: 1920, height: 1080 } + }); + + const page = await context.newPage(); + + try { + // Navigate to login page + console.log('Navigating to login page...'); + await page.goto('https://upskill-staging.measurequick.com/training-login/'); + + // Wait for login form + await page.waitForSelector('#user_login', { timeout: 10000 }); + + // Fill in login credentials for master trainer + console.log('Logging in as master trainer...'); + await page.fill('#user_login', 'test_master'); + await page.fill('#user_pass', 'TestMaster123!'); + + // Click login button + await page.click('#wp-submit'); + + // Wait for navigation to complete + console.log('Waiting for dashboard to load...'); + await page.waitForURL('**/master-trainer/master-dashboard/**', { timeout: 15000 }); + + // Wait for navigation menu to be visible + await page.waitForSelector('.hvac-trainer-menu', { timeout: 10000 }); + + // Take screenshot of the page + const timestamp = new Date().toISOString().replace(/[:.]/g, '-'); + const screenshotPath = `/tmp/master-dashboard-nav-${timestamp}.png`; + + console.log('Taking screenshot...'); + await page.screenshot({ + path: screenshotPath, + fullPage: false + }); + + console.log(`Screenshot saved to: ${screenshotPath}`); + + // Also take a screenshot focused on just the navigation + const navScreenshotPath = `/tmp/master-nav-only-${timestamp}.png`; + const navElement = await page.$('.hvac-trainer-menu-wrapper'); + if (navElement) { + await navElement.screenshot({ path: navScreenshotPath }); + console.log(`Navigation screenshot saved to: ${navScreenshotPath}`); + } + + // No need to keep browser open in headless mode + + } catch (error) { + console.error('Error:', error); + + // Take error screenshot + const errorScreenshot = `/tmp/master-nav-error-${Date.now()}.png`; + await page.screenshot({ path: errorScreenshot }); + console.log(`Error screenshot saved to: ${errorScreenshot}`); + } finally { + await browser.close(); + console.log('Browser closed.'); + } +})(); \ No newline at end of file