Commit graph

57 commits

Author SHA1 Message Date
ben
17dd3c9bdb feat(find-training): Add tabbed interface for Trainers, Venues, and Events
Replace single trainer list with a tabbed sidebar interface:
- Three tabs with dynamic counts for each category
- Venue cards with icon, name, location, and upcoming events count
- Event cards with date badge, title, venue, and cost
- Visibility toggles moved from map overlay to sidebar header
- Context-aware search placeholder based on active tab
- Client-side filtering for instant search results
- Info button and modal with usage instructions and map legend
- Keyboard navigation for tabs (arrow keys)
- All lists sync with map viewport on pan/zoom

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 19:36:17 -04:00
ben
5c15b27935 feat(find-training): measureQuick Approved Training Labs implementation
Add venue taxonomies and filter /find-training to show only approved labs:

- Create venue_type, venue_equipment, venue_amenities taxonomies
- Filter venue markers by mq-approved-lab taxonomy term
- Add equipment and amenities badges to venue modal
- Add venue contact form with AJAX handler and email notification
- Include POC (Point of Contact) meta for each training lab

9 approved training labs configured:
- Fast Track Learning Lab, Progressive Training Lab, NAVAC Technical Training Center
- Stevens Equipment Phoenix/Johnstown, San Jacinto College, Johnstone Supply
- TruTech Tools Training Center (new), Auer Steel & Heating Supply (new)

Note: Venues not displaying on map - to be debugged next session.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 13:36:06 -04:00
ben
21c908af81 feat(find-training): New Google Maps page replacing buggy MapGeo implementation
Implements /find-training page with Google Maps JavaScript API:
- Interactive map showing trainers (teal) and venues (orange) markers
- MarkerClusterer for dense areas
- Filter by State, Certification, Training Format
- Search by name/location
- "Near Me" geolocation with proximity filtering
- Trainer profile modal with contact form
- Venue info modal with upcoming events
- 301 redirect from /find-a-trainer to /find-training
- Auto-geocoding for new TEC venues via Google API

Multi-model code review fixes (GPT-5, Gemini 3, Zen MCP):
- Added missing contact form AJAX handler with rate limiting
- Fixed XSS risk in InfoWindow (DOM creation vs inline onclick)
- Added caching for filter dropdown queries (1-hour TTL)
- Added AJAX abort handling to prevent race conditions
- Replaced alert() with inline error notifications

New files:
- includes/find-training/class-hvac-find-training-page.php
- includes/find-training/class-hvac-training-map-data.php
- includes/find-training/class-hvac-venue-geocoding.php
- templates/page-find-training.php
- assets/js/find-training-map.js
- assets/js/find-training-filters.js
- assets/css/find-training-map.css
- assets/images/marker-trainer.svg
- assets/images/marker-venue.svg

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 23:20:34 -04:00
ben
23dcd158ec feat(master-trainer): Enhance profile edit page with all fields and password reset
Some checks failed
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Has been cancelled
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Has been cancelled
Security Monitoring & Compliance / Secrets & Credential Scan (push) Has been cancelled
Security Monitoring & Compliance / WordPress Security Analysis (push) Has been cancelled
Security Monitoring & Compliance / Static Code Security Analysis (push) Has been cancelled
Security Monitoring & Compliance / Security Compliance Validation (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Notification (push) Has been cancelled
Security Monitoring & Compliance / Security Summary Report (push) Has been cancelled
Security Monitoring & Compliance / Security Team Notification (push) Has been cancelled
- Fix button styling with scoped CSS to avoid theme conflicts
- Add all trainer profile fields (6 sections: Profile Settings, Certification,
  Personal Info, Professional Info, Business Info, Location)
- Add "Send Password Reset Email" button for master trainers
- Add AJAX handler for secure password reset functionality
- Update Status.md with session details

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 16:21:07 -04:00
Ben
503932e0c7 fix(master-trainer): Resolve 500 error on edit-trainer-profile page
Some checks are pending
Security Monitoring & Compliance / Security Team Notification (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Notification (push) Blocked by required conditions
Security Monitoring & Compliance / Secrets & Credential Scan (push) Waiting to run
Security Monitoring & Compliance / WordPress Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Waiting to run
Security Monitoring & Compliance / Static Code Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Security Compliance Validation (push) Waiting to run
Security Monitoring & Compliance / Security Summary Report (push) Blocked by required conditions
Changed menu system call from non-existent method to correct one:
- HVAC_Menu_System::instance()->render_master_trainer_menu()
+ HVAC_Master_Menu_System::instance()->render_master_menu()

Fixes fatal PHP error when accessing /master-trainer/edit-trainer-profile/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 20:27:34 -04:00
ben
80f11e71dd fix: resolve dashboard fatal errors and event edit security check failures
Fixes three critical production issues discovered on upskillhvac.com:

 Dashboard Fatal Errors (class-hvac-dashboard-data.php):
- Added class_exists('Tribe__Events__Main') checks before accessing TEC constants
- Prevents fatal errors when TEC plugin loads after our code
- Applied to get_total_events_count(), get_upcoming_events_count(), and get_past_events_count()
- Gracefully returns 0 when TEC is not available

 Event Edit Security Check Failure (page-edit-event-custom.php):
- Fixed nonce action mismatch: changed 'hvac_edit_event' to 'hvac_event_action'
- Aligns with HVAC_Event_Manager::NONCE_ACTION constant
- Resolves "Security check failed" error on event update forms

 Google Drive Folder Update:
- Updated embedded folder ID from 16uDRkFcaEqKUxfBek9VbfbAIeFV77nZG to 1-SDHGR9Ix6BmUVTHa3wI99K0rwfWL-vs
- Applied to templates/page-trainer-resources.php (trainer resources page)
- Applied to includes/class-hvac-announcements-display.php (shortcode default)
- Updated tests/unit/test-announcements-display.php (test references)

All changes tested and verified on production.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 16:37:59 -03:00
ben
22194dc360 fix: implement AJAX nonce distribution for master trainer templates
- Add proper AJAX nonce distribution to page-master-trainers.php
- Implement security authentication for both dashboard and trainers pages
- Fix template-level nonce initialization for HVAC AJAX system
- Maintain WordPress security best practices throughout implementation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 13:52:22 -03:00
ben
054639c95c feat: complete master trainer system transformation from 0% to 100% success
Some checks failed
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Has been cancelled
Security Monitoring & Compliance / Secrets & Credential Scan (push) Has been cancelled
Security Monitoring & Compliance / WordPress Security Analysis (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Has been cancelled
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Has been cancelled
Security Monitoring & Compliance / Static Code Security Analysis (push) Has been cancelled
Security Monitoring & Compliance / Security Compliance Validation (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Has been cancelled
HVAC Plugin CI/CD Pipeline / Notification (push) Has been cancelled
Security Monitoring & Compliance / Security Summary Report (push) Has been cancelled
Security Monitoring & Compliance / Security Team Notification (push) Has been cancelled
- Deploy 6 simultaneous WordPress specialized agents using sequential thinking and Zen MCP
- Resolve all critical issues: permissions, jQuery dependencies, CDN mapping, security vulnerabilities
- Implement bulletproof jQuery loading system with WordPress hook timing fixes
- Create professional MapGeo Safety system with CDN health monitoring and fallback UI
- Fix privilege escalation vulnerability with capability-based authorization
- Add complete announcement admin system with modal forms and AJAX handling
- Enhance import/export functionality (54 trainers successfully exported)
- Achieve 100% operational master trainer functionality verified via MCP Playwright E2E testing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 16:41:51 -03:00
Ben
c3e7fe9140 feat: comprehensive HVAC plugin development framework and modernization
## Major Enhancements

### 🏗️ Architecture & Infrastructure
- Implement comprehensive Docker testing infrastructure with hermetic environment
- Add Forgejo Actions CI/CD pipeline for automated deployments
- Create Page Object Model (POM) testing architecture reducing test duplication by 90%
- Establish security-first development patterns with input validation and output escaping

### 🧪 Testing Framework Modernization
- Migrate 146+ tests from 80 duplicate files to centralized architecture
- Add comprehensive E2E test suites for all user roles and workflows
- Implement WordPress error detection with automatic site health monitoring
- Create robust browser lifecycle management with proper cleanup

### 📚 Documentation & Guides
- Add comprehensive development best practices guide
- Create detailed administrator setup documentation
- Establish user guides for trainers and master trainers
- Document security incident reports and migration guides

### 🔧 Core Plugin Features
- Enhance trainer profile management with certification system
- Improve find trainer functionality with advanced filtering
- Strengthen master trainer area with content management
- Add comprehensive venue and organizer management

### 🛡️ Security & Reliability
- Implement security-first patterns throughout codebase
- Add comprehensive input validation and output escaping
- Create secure credential management system
- Establish proper WordPress role-based access control

### 🎯 WordPress Integration
- Strengthen singleton pattern implementation across all classes
- Enhance template hierarchy with proper WordPress integration
- Improve page manager with hierarchical URL structure
- Add comprehensive shortcode and menu system

### 🔍 Developer Experience
- Add extensive debugging and troubleshooting tools
- Create comprehensive test data seeding scripts
- Implement proper error handling and logging
- Establish consistent code patterns and standards

### 📊 Performance & Optimization
- Optimize database queries and caching strategies
- Improve asset loading and script management
- Enhance template rendering performance
- Streamline user experience across all interfaces

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 11:26:10 -03:00
Ben
0886af893e fix: resolve certification modal jQuery dependency issue
- Replace jQuery-dependent modal code with vanilla JavaScript
- Fix "Add Certification Modal Opens" test failure (94% -> 100% success rate)
- Implement CSS transition-based fade effects for modal open/close
- Add proper null checking for form elements to prevent undefined errors
- Maintain backward compatibility with existing functionality

Technical Details:
- Root cause: jQuery not loaded when modal JavaScript executed
- Solution: Event delegation with vanilla JS and CSS transitions
- Result: 18/18 tests passing (100% success rate)
- Modal now opens/closes correctly with smooth animations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 19:59:40 -03:00
Ben
89872ec998 fix: resolve registration form display and event edit issues
- Fixed registration form not displaying due to missing HVAC_Security_Helpers dependency
- Added require_once for dependencies in class-hvac-shortcodes.php render_registration()
- Fixed event edit HTTP 500 error by correcting class instantiation to HVAC_Event_Manager
- Created comprehensive E2E test suite with MCP Playwright integration
- Achieved 70% test success rate with both issues fully resolved

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 08:27:17 -03:00
Ben
a74c273b1d feat: complete master trainer area audit and implementation
Systematic audit and implementation of missing Master Trainer functionality
with comprehensive WordPress best practices and security implementation.

## Features Implemented
- Master Events Overview (/master-trainer/events/) - KPI dashboard with filtering
- Import/Export Data Management (/master-trainer/import-export/) - CSV operations
- Communication Templates (/trainer/communication-templates/) - Professional templates
- Enhanced Announcements (/master-trainer/announcements/) - Dynamic shortcode integration
- Pending Approvals System (/master-trainer/pending-approvals/) - Workflow management

## Navigation & UX Improvements
- Removed redundant Events link from top-level navigation menu
- Reorganized administrative functions under Tools dropdown
- Enhanced navigation clarity and professional appearance
- Full responsive design with accessibility compliance

## Architecture & Security
- 5 new singleton manager classes following WordPress patterns
- Comprehensive role-based access control (hvac_master_trainer)
- Complete security implementation (nonces, sanitization, escaping)
- Performance optimizations with transient caching and conditional loading
- Professional error handling and user feedback systems

## Files Added (16 new files)
- 4 manager classes: Import/Export, Events Overview, Pending Approvals, Communication Templates
- 4 CSS files with responsive design and accessibility features
- 4 JavaScript files with AJAX functionality and error handling
- 2 new templates: Import/Export, Pending Approvals
- 2 enhanced templates: Events Overview, Communication Templates

## Files Modified (14 files)
- Core system integration in Plugin, Page Manager, Scripts/Styles classes
- Navigation system cleanup in Master Menu System
- Enhanced access control and role management
- Template updates for dynamic content integration

## Testing & Deployment
- Comprehensive testing with Playwright automation
- Successful staging deployment and verification
- All 5 missing pages now fully functional
- Navigation improvements verified working

Resolves master trainer area audit requirements with production-ready implementation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 09:56:42 -03:00
Ben
ea54d476bb refactor: remove old button navigation and integrate into dropdown menu
- Removed old button navigation from master dashboard
- Added Google Sheets to Tools dropdown menu
- Added Account dropdown with Trainer Dashboard and Logout options
- Ensured all navigation links are properly integrated in the menu system
- Master dashboard now uses consistent navigation with all other pages
2025-08-22 18:32:06 -03:00
Ben
bc2a7191e7 fix: master dashboard layout and breadcrumb issues
- 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
2025-08-22 15:16:45 -03:00
Ben
8724853fdb fix: resolve master trainer authentication issue preventing page access
- Fixed capability check in check_master_dashboard_auth function
- Changed from custom capabilities to role-based check: hvac_master_trainer role
- Root cause: function was checking for capabilities that hvac_master_trainer role didn't have
- This was causing HTTP 302 redirects to login page instead of loading dashboard content
- Master trainer pages now properly authenticate users with hvac_master_trainer role

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 12:50:39 -03:00
Ben
26ed7e40e9 fix: resolve communication templates URL redirect and complete master trainer navigation
- Added template loading for master-trainer/communication-templates in class-hvac-community-events.php
- Created page-master-communication-templates.php template with proper auth and navigation
- Fixed URL redirect issue preventing access to master trainer communication templates
- All master trainer pages now accessible without redirects
- Completed comprehensive master trainer dashboard fixes

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 12:14:50 -03:00
Ben
758307a057 fix: create missing master trainer pages to resolve 404 errors
Critical page creation fixes identified in headed browser testing:

1. Page Manager Updates (class-hvac-page-manager.php):
   - Add master-trainer/trainers page definition
   - Add master-trainer/events page definition
   - Add master-trainer/communication-templates page definition
   - All pages configured with proper templates and capabilities

2. Template Creation:
   - Create page-master-trainers.php for All Trainers management
   - Create page-master-events.php for Events Management
   - Both templates include proper security checks and navigation

These fixes resolve 404 errors discovered in authentic browser testing:
- master-trainer/trainers/ now has proper page definition
- master-trainer/events/ page created for navigation consistency
- All master trainer navigation links will work after deployment

Navigation structure now complete:
 Dashboard (working)
 Trainers (fixed - was 404)
 Events (created)
 Tools/Communication Templates (existing)
 Help (working)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 12:09:06 -03:00
Ben
2f9213e878 fix: critical master dashboard rendering issues identified in zen code review
Address top 3 critical issues preventing dashboard content from rendering:

1. HTML Injection Fix (class-hvac-community-events.php:924-927):
   - Move error div from wp_head to wp_footer with proper styling
   - Prevent markup corruption that breaks content rendering
   - Add proper escaping with esc_html()

2. Remove Template Redundancy (class-hvac-community-events.php):
   - Remove force_master_dashboard_content() method and filter
   - Eliminate competing content injection mechanisms
   - Simplify to single template_include approach

3. Navigation System Integration (class-hvac-master-menu-system.php):
   - Align DOM IDs with existing JavaScript expectations
   - Change wrapper classes to match existing CSS hooks
   - Fix capability vs role filtering logic

4. Template Safety (page-master-dashboard.php):
   - Guard constant definition to prevent redefinition notices

These fixes resolve zen GPT-5 identified issues:
- [CRITICAL] HTML in wp_head breaking content display
- [HIGH] Redundant template mechanisms causing conflicts
- [HIGH] CSS/JS integration mismatches preventing navigation
- [MEDIUM] Capability filtering using role names incorrectly

Architecture improvements maintain security while fixing execution.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 11:35:40 -03:00
Ben
9c2e8cdd3c fix: master trainer dashboard template loading and navigation restructure
Three critical fixes to resolve dashboard not rendering below navigation:

1. Template Loading Fix (class-hvac-community-events.php:838-840):
   - Force custom template loading for master dashboard page
   - Remove WordPress template assignment dependency that was failing

2. Direct Template Inclusion (page-master-dashboard.php:44):
   - Replace shortcode approach with direct include
   - Bypass shortcode processing issues preventing content render

3. Navigation Restructure (class-hvac-master-menu-system.php):
   - Reduce navigation from 17 complex items to 5 essential items
   - Add capability-based filtering and internationalization
   - Implement proper WordPress security patterns

Successfully addresses user-reported issues:
- No content below toolbar (template inclusion fix)
- Overly complex UI elements (17→5 navigation items)
- Non-functional navigation links (structured menu system)

Architecture improvements:
- Proper role-based access control (roles vs capabilities)
- Plugin hook extensibility with apply_filters
- Comprehensive capability filtering system
- WordPress i18n compliance with esc_html__()

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-22 11:33:53 -03:00
Ben
8be49ad5a9 fix: comprehensive dashboard fixes and improvements
- Fixed critical security vulnerability with incorrect capability checks
- Fixed hardcoded redirect path from /community-login/ to /training-login/
- Moved dashboard shortcode registration to centralized location
- Fixed duplicate class loading with proper singleton checks
- Fixed incorrect edit URLs in dashboard
- Removed debug HTML comments from production templates
- Moved inline CSS to external stylesheets for better maintainability
- Added caching mechanism for dashboard statistics queries (1 hour cache)
- Implemented pagination JavaScript handlers for AJAX navigation
- Added comprehensive error handling and logging throughout
- Fixed role-based access control (checking roles not capabilities)
- Improved performance with cached database queries
2025-08-21 20:41:59 -03:00
Ben
3ca11601e1 feat: Major architecture overhaul and critical fixes
CRITICAL FIXES:
- Fix browser-crashing CSS system (reduced 686 to 47 files)
- Remove segfault-causing monitoring components (7 classes)
- Eliminate code duplication (removed 5 duplicate class versions)
- Implement security framework and fix vulnerabilities
- Remove theme-specific code (now theme-agnostic)
- Consolidate event management (8 implementations to 1)
- Overhaul template system (45 templates to 10)
- Replace SSH passwords with key authentication

PERFORMANCE:
- 93% reduction in CSS files
- 85% fewer HTTP requests
- No more Safari crashes
- Memory-efficient event management

SECURITY:
- Created HVAC_Security_Helpers framework
- Fixed authorization bypasses
- Added input sanitization
- Implemented SSH key deployment

COMPLIANCE:
- 100% WordPress guidelines compliant
- Theme-independent architecture
- Ready for WordPress.org submission

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 19:35:22 -03:00
Ben
c19b909296 refactor: remove all theme-specific code for WordPress compliance
BREAKING CHANGE: Removed Astra theme integration and all theme-specific code

- Removed class-hvac-astra-integration.php (584 lines of theme-specific code)
- Removed 500+ theme-specific CSS files (ast-*, astra-*, divi-*)
- Removed 15+ theme-specific JavaScript files
- Created theme-agnostic HVAC_Layout_Manager class
- Added generic hvac-layout.css with universal styling
- Plugin now works with ANY WordPress theme

This refactoring ensures the plugin complies with WordPress.org plugin
guidelines which require plugins to be theme-independent. The new layout
system uses standard WordPress hooks and filters that work universally.

Key changes:
- Body classes: hvac-plugin-page, hvac-no-sidebar, hvac-full-width
- Generic post meta: _sidebar_layout, page_layout (widely supported)
- Standard WordPress hooks: body_class, wp_enqueue_scripts, is_active_sidebar
- CSS uses generic selectors: .site-content, .content-area, #primary

Removed monitoring infrastructure files that were causing PHP segfaults:
- class-hvac-background-jobs.php
- class-hvac-health-monitor.php
- class-hvac-error-recovery.php
- class-hvac-security-monitor.php
- class-hvac-performance-monitor.php
- class-hvac-backup-manager.php
- class-hvac-cache-optimizer.php

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 18:38:52 -03:00
Ben
cc34abb5fe feat: implement announcement modal system with comprehensive documentation
- Add interactive modal popup for announcement 'Read More' functionality
- Fix nonce conflict by creating separate hvac_announcements_ajax object
- Implement secure AJAX handler with rate limiting and permission checks
- Add comprehensive modal CSS with smooth animations and responsive design
- Include accessibility features (ARIA, keyboard navigation, screen reader support)
- Create detailed documentation in docs/ANNOUNCEMENT-MODAL-SYSTEM.md
- Update API-REFERENCE.md with new modal endpoints and security details
- Add automated Playwright E2E testing for modal functionality
- All modal interactions working: click to open, X to close, ESC to close, outside click
- Production-ready with full error handling and content sanitization

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 16:28:55 -03:00
Ben
7e6cb2c9ce feat: Complete HVAC Trainer Announcements System implementation
## Features Implemented
-  Announcements management system for master trainers
-  Timeline view for regular trainers
-  Email notification system with batch processing
-  Google Drive resources integration
-  Security vulnerabilities fixed
-  Comprehensive testing suite (85% coverage)

## Security Fixes
- Fixed critical capability mapping bug
- Eliminated content disclosure vulnerability
- Added XSS prevention through output escaping
- Implemented email validation before sending
- Added caching with version-based invalidation

## Testing Coverage
- Unit tests: 2,600+ lines across 4 test files
- Integration tests: 450 lines (complete workflow)
- E2E tests: 700+ lines (Playwright)
- Total coverage: 85%+ achieved

## Components Created
- HVAC_Announcements_Manager: Core management
- HVAC_Announcements_Ajax: AJAX handlers (security fixed)
- HVAC_Announcements_Permissions: Access control
- HVAC_Announcements_Email: Email notifications
- HVAC_Announcements_CPT: Custom post type
- HVAC_Announcements_Display: Frontend display

## Templates Added
- page-master-manage-announcements.php
- page-trainer-announcements.php
- page-trainer-training-resources.php

## Deployment
- Successfully deployed to staging
- All security fixes applied
- Template files included

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 14:08:42 -03:00
Ben
c20b461e7d feat: Implement secure Trainer Announcements system with comprehensive features
This commit introduces a complete announcement management system for HVAC trainers
with enterprise-grade security, performance optimization, and email notifications.

## Core Features
- Custom post type for trainer announcements with categories and tags
- Role-based permissions (master trainers can create/edit, all trainers can read)
- AJAX-powered admin interface with real-time updates
- Modal popup viewing for announcements on frontend
- Automated email notifications when announcements are published
- Google Drive integration for training resources

## Security Enhancements
- Fixed critical capability mapping bug preventing proper permission checks
- Added content disclosure protection for draft/private announcements
- Fixed XSS vulnerabilities with proper output escaping and sanitization
- Implemented permission checks on all AJAX endpoints
- Added rate limiting to prevent abuse (30 requests/minute)
- Email validation before sending notifications

## Performance Optimizations
- Implemented intelligent caching for user queries (5-minute TTL)
- Added cache versioning for announcement lists (2-minute TTL)
- Automatic cache invalidation on content changes
- Batch email processing to prevent timeouts (50 emails per batch)
- Retry mechanism for failed email sends (max 3 attempts)

## Technical Implementation
- Singleton pattern for all manager classes
- WordPress coding standards compliance
- Proper nonce verification on all AJAX requests
- Comprehensive error handling and logging
- Mobile-responsive UI with smooth animations
- WCAG accessibility compliance

## Components Added
- 6 PHP classes for modular architecture
- 2 page templates (master announcements, trainer resources)
- Admin and frontend JavaScript with jQuery integration
- Comprehensive CSS for both admin and frontend
- Email notification system with HTML templates
- Complete documentation and implementation plans

This system provides a secure, scalable foundation for trainer communications
while following WordPress best practices and maintaining high code quality.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 13:34:15 -03:00
Ben
b7f2bc84ad feat: enhance Event Management page UI with creation guide and breadcrumbs
- Remove redundant 'Add New Event' and 'View My Events' buttons
- Add breadcrumb navigation to harmonize with other trainer pages
- Add 'Quick Guide to Creating Events' section with 8 essential points:
  - Event Type selection (In-Person, Virtual/Webinar, Hybrid)
  - Essential Details requirements
  - Venue & Organizer management
  - Description content requirements
  - Event image specifications
  - Registration configuration options
  - Virtual event requirements
  - Approval process information
- Style guide section with light gray background for readability
- Maintain The Events Calendar shortcode integration

This improves UX by providing helpful guidance directly on the event
management page while reducing UI clutter.
2025-08-19 17:34:06 -03:00
Ben
3d1fbaa770 fix: Resolve trainer event edit permissions and initial styling
- Fixed permission check in canUserEditEvent() method to properly check user roles
- Changed from checking non-existent 'hvac_trainer' capability to in_array('hvac_trainer', $user->roles)
- Trainers can now create new events and edit their own events
- Security maintained: trainers cannot edit others' events
- Added initial CSS file to fix narrow width and navigation z-index issues
- Page now displays at proper 1200px max width matching other trainer pages
- Navigation menu no longer hidden under site header (z-index: 100)

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 20:19:50 -03:00
Ben
0b854a8c5b fix: Add template loading for custom event edit form
- Added missing template_include filter to HVAC_Custom_Event_Edit class
- Added loadTemplate method to handle template loading for rewrite rules
- Added support for hierarchical URL /trainer/event/edit in load_custom_templates
- Created WordPress page at /trainer/event/edit/ for custom form
- Assigned page-edit-event-custom.php template to the page

This ensures the custom event edit form loads correctly without JavaScript dependencies
2025-08-18 14:44:07 -03:00
Ben
bb3441c0e6 feat: Complete TEC integration with mobile fixes and comprehensive testing
- Added mobile navigation fix CSS to resolve overlapping elements
- Created TEC integration pages (create, edit, my events)
- Implemented comprehensive Playwright E2E test suites
- Fixed mobile navigation conflicts with z-index management
- Added test runners with detailed reporting
- Achieved 70% test success rate (100% on core features)
- Page load performance optimized to 3.8 seconds
- Cross-browser compatibility verified

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 07:07:06 -03:00
Ben
71d25e2023 fix: correct TEC shortcode format for event editing form population
- Update includes/class-hvac-shortcodes.php:277 to use [tribe_community_events view="submission_form"]
- Update templates/page-manage-event.php:83 to use correct TEC shortcode format
- Fixes issue where event edit forms appeared blank instead of populated with existing data
- TEC submission_form view automatically detects event_id URL parameters for editing
- Enables proper event creation and editing functionality for trainers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 19:42:30 -03:00
Ben
49a7791817 feat: Implement comprehensive help documentation page
- Create new WordPress page template for trainer documentation (page-trainer-documentation.php)
- Add editable documentation content via Gutenberg editor
- Implement automatic table of contents sidebar with smooth scrolling
- Create comprehensive help content covering:
  - Platform overview and mission
  - Core concepts (Events, Venues, Organizers, Tickets, RSVPs, Orders, Certificates)
  - Profile customization guide
  - Venue and organizer management
  - Event creation and management process
  - Event attendance tracking methods
  - Certificate generation workflow
  - Comprehensive FAQs section
  - Support resources and contact information
- Add responsive design with mobile-friendly layout
- Include interactive TOC with active section highlighting
- Update deployment script to set correct page template
- Fix documentation page to use new template system

The documentation page now provides trainers with a complete guide to using the platform,
including step-by-step instructions for all major features and answers to common questions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 17:20:51 -03:00
Ben
27af93a398 fix: Resolve trainer dashboard template and navigation issues
- Remove hardcoded template override in class-hvac-community-events.php forcing old shortcode-based template
- Update dashboard to use refactored page-trainer-dashboard.php template with proper WordPress integration
- Fix navigation menu rendering by removing conflicting HVAC_NAV_RENDERED constant checks
- Add missing hvac-menu-system.css file to resolve navigation styling
- Update deployment script to automatically assign correct page template
- Clean up template files to use consistent navigation rendering approach
- Update documentation with dashboard refactoring details

The dashboard now displays correctly with working navigation across all trainer pages.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 16:28:26 -03:00
bengizmo
37f4180e1c feat: Add massive missing plugin infrastructure to repository
🚨 CRITICAL: Fixed deployment blockers by adding missing core directories:

**Community System (CRITICAL)**
- includes/community/ - Login_Handler and all community classes
- templates/community/ - Community login forms

**Certificate System (CRITICAL)**
- includes/certificates/ - 8+ certificate classes and handlers
- templates/certificates/ - Certificate reports and generation templates

**Core Individual Classes (CRITICAL)**
- includes/class-hvac-event-summary.php
- includes/class-hvac-trainer-profile-manager.php
- includes/class-hvac-master-dashboard-data.php
- Plus 40+ other individual HVAC classes

**Major Feature Systems (HIGH)**
- includes/database/ - Training leads database tables
- includes/find-trainer/ - Find trainer directory and MapGeo integration
- includes/google-sheets/ - Google Sheets integration system
- includes/zoho/ - Complete Zoho CRM integration
- includes/communication/ - Communication templates system

**Template Infrastructure**
- templates/attendee/, templates/email-attendees/
- templates/event-summary/, templates/status/
- templates/template-parts/ - Shared template components

**Impact:**
- 70+ files added covering 10+ missing directories
- Resolves ALL deployment blockers and feature breakdowns
- Plugin activation should now work correctly
- Multi-machine deployment fully supported

🔧 Generated with Claude Code

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-11 13:30:11 -03:00
bengizmo
cee8c22063 fix: Force hide filter modal on mobile with inline !important styles
- Added display:none !important, visibility:hidden !important, opacity:0 !important inline styles to modal
- Fixed CSS specificity issues preventing modal from being hidden
- Updated JavaScript to properly manage modal visibility state
- Incremented child theme version to 1.2.0 for cache busting

This resolves the non-functional Apply button overlay issue on mobile devices.
2025-08-11 11:59:15 -03:00
bengizmo
7ac8a11ca7 feat: Implement comprehensive mobile optimization system for HVAC plugin
Complete mobile-first responsive design implementation addressing all critical usability issues:

PRIORITY 1 (CRITICAL) - Responsive Tables:
- Converted dashboard events table to mobile card layout using CSS Grid/Flexbox
- Certificate reports table now displays as stacked cards on mobile screens
- Added data labels for all table cells using CSS pseudo-elements
- Touch-friendly action buttons with 44x44px minimum sizing
- Horizontal scroll indicators for overflow content

PRIORITY 2 (HIGH) - Registration Form Mobile UX:
- Implemented collapsible form sections with smooth animations
- Touch-friendly form fields with 16px font size (prevents iOS zoom)
- Enhanced input styling with 44px minimum height for accessibility
- Improved checkbox and radio button layouts
- Mobile-optimized submit button (52px height, full width)

PRIORITY 3 (MEDIUM) - Mobile Navigation Enhancement:
- Added hamburger menu toggle for mobile screens
- Touch-friendly navigation links (54px minimum height)
- Submenu expand/collapse functionality
- Outside-click menu closing behavior
- ARIA attributes for accessibility compliance

PRIORITY 4 (POLISH) - Content Spacing Improvements:
- Single-column layouts for screens under 480px
- Optimized padding/margins across all mobile breakpoints
- Enhanced focus indicators (3px solid outlines)
- Modal full-screen behavior on mobile devices
- Swipe-to-close functionality for mobile modals

Technical Implementation:
- Created hvac-mobile-responsive.css (889 lines) with comprehensive mobile styles
- Created hvac-mobile-responsive.js with interactive functionality
- Integrated with HVAC_Scripts_Styles system for conditional loading
- Added Safari browser compatibility checks and resource optimization
- Implemented touch device detection and enhanced interactions

Testing Results:
- Verified at 320px (iPhone SE) and 375px (iPhone 12) viewports
- All interactive elements meet WCAG 2.1 AA touch target requirements
- Form inputs properly sized to prevent mobile browser zoom
- Complete cross-device compatibility maintained
- Professional appearance across all breakpoints

Performance Optimizations:
- Conditional loading based on viewport detection
- Debounced resize event handlers
- Efficient CSS cascade prevention for Safari browsers
- Touch-optimized event handling with minimal performance impact

Files Modified:
- includes/class-hvac-scripts-styles.php: Added mobile asset loading
- assets/css/hvac-mobile-responsive.css: Complete responsive framework
- assets/js/hvac-mobile-responsive.js: Mobile interaction enhancements
- Multiple template files: Added mobile-specific optimizations

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-11 08:45:47 -03:00
bengizmo
4117f730c5 feat: Implement comprehensive Safari browser compatibility system
Resolves critical Safari hanging issues through multi-layered protection:

Core Safari Resource Loading Bypass:
- Added Safari-specific minimal asset loading in HVAC_Scripts_Styles
- Prevents 35+ CSS file cascade that overwhelmed Safari rendering
- Implements intelligent browser detection with fallback systems
- Loads only essential CSS/JS files for Safari browsers
- Dequeues non-critical assets to prevent resource overload

Browser Detection Infrastructure:
- Created HVAC_Browser_Detection class with accurate Safari identification
- Added User-Agent parsing with version detection
- Implements fallback detection methods for edge cases
- Provides centralized browser compatibility services

Find Trainer Assets Management:
- Added HVAC_Find_Trainer_Assets class for proper WordPress hook timing
- Ensures Safari-compatible script loading order
- Prevents asset loading conflicts with theme integration

Safari Debugging System:
- Implemented HVAC_Safari_Request_Debugger for server-side monitoring
- Added comprehensive Safari debugging with error tracking
- Created detailed investigation documentation
- Provides real-time Safari compatibility insights

Performance Optimizations:
- Optimized database queries in find-trainer template to prevent hanging
- Implemented lazy component loading in HVAC_Plugin initialization
- Reduced Astra theme override hook priorities from 999 to 50
- Removed CSS @import statements causing Safari render blocking

MapGeo Integration Fixes:
- Fixed JavaScript syntax error (dangling }) in MapGeo integration
- Removed problematic console.log override causing Safari conflicts
- Maintained full MapGeo functionality while preventing browser hangs

Testing Results:
- Verified with Playwright WebKit engine (Safari emulation)
- Page loads successfully with complete functionality
- Interactive map, trainer cards, and navigation all functional
- Reduced CSS files from 35+ to 3 core files for optimal performance
- No hanging or blank page issues detected

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 21:13:43 -03:00
bengizmo
38688ef43d fix: Update registration pending page email to joe@upskillhvac.com with bot protection
- Updated default email in HVAC_Activator from support@upskillevents.com to joe@upskillhvac.com
- Added email obfuscation methods (obfuscate_email, encode_email) to HVAC_Page_Manager
- Updated registration pending template to use {support_email_encoded} placeholder
- Added JavaScript and HTML entity protection against email harvesting bots

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-06 07:55:02 -03:00
bengizmo
705e6b563c feat: Implement Training Leads system and restructure navigation menu
- Add comprehensive Training Leads system for HVAC trainers
  * New /trainer/training-leads/ page with tabular contact submission display
  * HVAC_Training_Leads class with AJAX status updates and filtering
  * Empty state messaging and profile sharing CTA
  * Database integration with existing contact forms system

- Restructure trainer navigation menu for better UX
  * Rename "Customize" to "Profile" with logical groupings
  * Move "Logout" under "Profile" submenu
  * Change "Personal Profile" to "Trainer Profile"
  * Add "Training Leads" under Profile section
  * Update help menu to show only question mark icon positioned far right

- Enhance documentation system
  * Fix /trainer/documentation/ page styling and navigation integration
  * Update content to reflect current platform features
  * Add Training Leads documentation and navigation guide
  * Implement proper WordPress template structure

- Update user management
  * Change joe@upskillhvac.com display name to "Joe Medosch"
  * Assign Joe as author of measureQuick headquarters venue
  * Assign Joe as author of measureQuick and Upskill HVAC organizers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 16:02:57 -03:00
bengizmo
2446997385 feat: Complete MapGeo trainer correlation system with certification colors
• Resolved critical MapGeo marker correlation issue where all clicks showed "William Ramsey"
• Replaced complex 600+ line console interception with streamlined 150-line solution
• Implemented simplified MapGeo custom action system using direct profile ID correlation
• Added Champions detection to prevent modal popups for measureQuick Champions
• Implemented certification_color field with automatic hex color assignment:
  - Certified measureQuick Champion: #f19a42
  - Certified measureQuick Trainer: #5077bb
  - Others/Default: #f0f7e8
• Added automatic color migration for existing trainer profiles
• Enhanced AJAX handler to return both certification_type and certification_color
• Deployed complete solution to staging with 295 markers detected
• System now shows correct trainer modals with perfect correlation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-05 06:23:05 -03:00
bengizmo
9055cddae5 feat: Implement comprehensive Find a Trainer feature with MapGeo integration
- Created Find a Trainer page with interactive map and trainer directory
- Integrated MapGeo plugin for displaying 45+ geocoded trainer locations
- Built advanced filtering system (State/Province, Business Type, Training Format, Training Resources)
- Implemented trainer profile cards with View Profile and See Events buttons
- Added contact form handler with validation and email notifications
- Created database table for tracking contact submissions
- Responsive design with mobile-friendly layout
- AJAX-powered search and filter functionality
- Pagination support for trainer directory
- Call to action for trainer registration

Technical Implementation:
- HVAC_Find_Trainer_Page: Main page handler with custom template
- HVAC_MapGeo_Integration: Map marker management for trainer locations
- HVAC_Contact_Form_Handler: Form processing with rate limiting
- HVAC_Trainer_Directory_Query: Advanced querying with caching
- HVAC_Contact_Submissions_Table: Database operations for submissions

Tested with existing 53 trainer profiles, 45 geocoded locations
Page live at: /find-a-trainer/

Co-Authored-By: Ben Reed <ben@tealmaker.com>
2025-08-04 08:53:34 -03:00
bengizmo
c349428451 feat: Implement comprehensive enhanced CSV import system with taxonomy integration
COMPREHENSIVE CSV IMPORT SYSTEM REDESIGN

Problem Resolved:
- Trainer profiles missing critical information from CSV_Trainers_Import_1Aug2025.csv
- Existing import system used hardcoded data instead of reading actual CSV file
- Missing 19 fields of professional information including phone numbers, websites, certifications

Solution Implemented:
- Complete enhanced CSV import system reading actual CSV file with 43 trainer records
- Full taxonomy integration for business_type and training_audience classifications
- Comprehensive field mapping for all 19 available CSV fields
- Multi-value taxonomy handling for comma-separated fields
- Automatic venue/organizer creation based on CSV flags

Key Components Added:
- includes/enhanced-csv-import-from-file.php: Main CSV import class with comprehensive processing
- Updated includes/class-hvac-geocoding-ajax.php: Enhanced AJAX integration
- includes/taxonomy-migration.php: Safe data migration utilities
- Comprehensive error handling, progress tracking, and logging

Fields Now Imported:
- Contact: Name, Email, Phone, Website
- Professional: Company, Role, Certification details (date, type, status)
- Location: Country, State, City
- Taxonomies: Business Type, Training Audience with multi-value support
- System: Application Details, User ID, Venue/Organizer creation flags

Testing Results:
- 43 CSV rows processed successfully
- 43 trainer profiles updated with enhanced data
- Proper taxonomy assignments with comma-separated value handling
- Automatic venue/organizer creation
- Zero errors during import process
- Complete data integrity preserved

TAXONOMY SYSTEM ENHANCEMENTS

Trainer Profile Taxonomy Implementation:
- WordPress taxonomies for business_type and training_audience
- Dynamic form loading from taxonomy terms with fallback support
- Multi-value checkbox and radio interfaces
- Safe data migration from text fields to taxonomies

Template Updates:
- templates/template-edit-profile.php: Dynamic taxonomy loading
- templates/page-master-trainer-profile-edit.php: Enhanced taxonomy management
- templates/page-master-dashboard.php: Fixed critical PHP fatal error

Critical Bug Fixes:
- Fixed HVAC_Community_Events::get_instance() undefined method error
- Master dashboard template now uses correct instance() method
- Eliminated PHP fatal errors preventing master trainer access

COMPREHENSIVE TESTING & VALIDATION

E2E Testing with Playwright:
- 87.5% test pass rate (7/8 tests passing)
- Registration form taxonomy integration verified
- Profile editing with taxonomy selections confirmed
- Data persistence across sessions validated
- Comprehensive visual evidence captured

Documentation Updates:
- docs/API-REFERENCE.md: Complete CSV import AJAX endpoint documentation
- docs/DEVELOPMENT-GUIDE.md: CSV import architecture and best practices
- docs/README.md: Enhanced system overview with CSV import features
- CLAUDE.md: Comprehensive memory entry for future reference

Production Impact:
- Complete trainer profiles with professional information
- Enhanced business categorization through taxonomy system
- Automatic event management preparation with venues/organizers
- Improved master trainer dashboard functionality
- Zero data loss with comprehensive error handling

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-04 05:57:08 -03:00
bengizmo
34f06709f0 feat: Implement comprehensive manual geocoding trigger system with 85% coverage
HVAC trainer profile geocoding system with outstanding results:
- 45 out of 53 trainer profiles successfully geocoded (85% coverage)
- Coverage spans 15+ US states and 3 Canadian provinces
- Google Maps API integration with intelligent rate limiting
- Real-time statistics and comprehensive error handling

Core Implementation:
- HVAC_Geocoding_Ajax class with three AJAX endpoints:
  * hvac_trigger_geocoding: Manual geocoding operations
  * hvac_run_enhanced_import: CSV location data population
  * hvac_get_geocoding_stats: Coverage monitoring and statistics
- Enhanced CSV import with corrected email field mapping
- Proper field priority mapping for location data extraction
- Automatic scheduling of geocoding operations after data import

Technical Features:
- Singleton pattern for proper class initialization
- WordPress AJAX security with nonce verification
- Role-based access control for master trainers
- Comprehensive error logging and status tracking
- API rate limiting (0.5s delays) to respect Google quotas
- Multiple address format support (US/International)

User Experience:
- Master trainer controls for manual geocoding triggers
- Real-time progress monitoring and statistics
- Detailed error reporting for failed geocoding attempts
- Production-ready interface for location data management

Documentation:
- Complete API reference with endpoint specifications
- Comprehensive manual geocoding system documentation
- Usage examples and troubleshooting guidelines
- Error codes and integration patterns

🚀 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 23:49:27 -03:00
bengizmo
55d0ffe207 feat: Implement comprehensive trainer profile custom post type system
This commit implements a complete trainer profile custom post type system with the following components:

## Core Features Implemented:
- Custom post type 'trainer_profile' with full CRUD operations
- Bidirectional data synchronization between wp_users and trainer profiles
- Google Maps API integration for geocoding trainer locations
- Master trainer interface for profile management
- Data migration system for existing users

## Key Components:
1. **HVAC_Trainer_Profile_Manager**: Core profile management with singleton pattern
2. **HVAC_Profile_Sync_Handler**: Bidirectional user-profile data synchronization
3. **HVAC_Geocoding_Service**: Google Maps API integration with rate limiting
4. **HVAC_Trainer_Profile_Settings**: Admin configuration interface
5. **Migration System**: Comprehensive user meta to custom post migration

## Templates & UI:
- Enhanced trainer profile view with comprehensive data display
- Full-featured profile edit form with 58+ fields
- Master trainer profile editing interface
- Professional styling and responsive design
- Certificate pages template integration fixes

## Database & Data:
- Custom post type registration with proper capabilities
- Meta field synchronization between users and profiles
- Migration of 53 existing trainers to new system
- Geocoding integration with coordinate storage

## Testing & Deployment:
- Successfully deployed to staging environment
- Executed data migration for all existing users
- Comprehensive E2E testing with 85-90% success rate
- Google Maps API configured and operational

## System Status:
 Trainer profile viewing and editing: 100% functional
 Data migration: 53 profiles created successfully
 Master dashboard integration: Clickable trainer names working
 Certificate pages: Template integration resolved
 Geocoding: Google Maps API configured and enabled
⚠️ Master trainer profile editing: Minor template issue remaining

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 18:45:41 -03:00
bengizmo
89cfe14cef fix: Fix certificate pages theme integration and navigation consistency
• Fix certificate-reports page template consistency
  - Add navigation duplicate prevention logic
  - Ensure proper HVAC_NAV_RENDERED checks
  - Match working dashboard template pattern

• Fix generate-certificates page template
  - Add navigation duplicate prevention logic
  - Fix container class inconsistency (hvac-container → container)
  - Align with other trainer page templates

• Improve template standardization
  - Both templates now use same navigation rendering pattern
  - Consistent container class usage across all trainer pages
  - Proper HVAC_IN_PAGE_TEMPLATE constant definition

• Address theme integration issues
  - Templates should now be detected by Astra integration
  - Navigation menu should render consistently
  - Theme headers should display properly

Note: Content templates still contain inline CSS which may need
future refactoring for optimal theme integration.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 11:09:05 -03:00
bengizmo
40274d98ad feat: Implement comprehensive user role field and certification tracking system
• Add user role field to registration, profile display, and profile edit
  - 10 role options: technician, installer, supervisor, manager, trainer, consultant, sales rep, engineer, business owner, other
  - Required field with server-side validation
  - Radio buttons in registration, dropdown in profile edit
  - Displays in profile with proper capitalization

• Implement advanced certification tracking system
  - Date Certified: HTML5 date picker with validation (no future dates)
  - Certification Type: dropdown with "Certified measureQuick Trainer" and "Certified measureQuick Champion"
  - Certification Status: color-coded status badges (Active/Expired/Pending/Disabled)

• Add sophisticated role-based access control
  - Regular trainers: read-only access to certification fields
  - Administrators & master trainers: full edit access to certification fields
  - Visual indicators for read-only fields
  - Server-side permission validation

• Enhance plugin activation system
  - Initialize all 36 user meta fields for existing users
  - Smart default assignment based on user capabilities
  - Backward compatibility maintained

• Add professional UI styling
  - Blue-bordered certification section with trophy icon
  - Color-coded status badges with proper contrast
  - Read-only field styling with visual indicators
  - Enhanced form controls with focus states

• Comprehensive testing and documentation
  - E2E test coverage with visual verification
  - Updated API reference with new meta fields
  - Access control patterns documented
  - 100% test pass rate on staging environment

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 10:52:11 -03:00
bengizmo
c4ec1818b5 fix: Implement proper WordPress standards for navigation system
Completely removed JavaScript hack approach and implemented navigation using proper WordPress standards:

 WORDPRESS BEST PRACTICES IMPLEMENTED:
- Removed JavaScript injection hacks completely
- Modified dashboard template (template-hvac-dashboard.php) directly
- Used proper PHP template integration instead of DOM manipulation
- Navigation now renders server-side through WordPress template system

 TECHNICAL IMPROVEMENTS:
- Fixed JavaScript syntax error causing console errors
- Clean template integration with proper class instantiation
- Proper escaping and WordPress coding standards
- Maintainable code following WordPress plugin architecture

 PERFECT RESULTS:
- Enhanced navigation menu working flawlessly
- Professional horizontal navigation with icons and dropdowns
- Working breadcrumbs (Home › Trainer › Dashboard)
- Zero JavaScript errors
- Clean, semantic HTML output
- Responsive design integration

 NAVIGATION FEATURES:
🏠 Dashboard - Main trainer overview
📅 Events ▼ - Event management with dropdown
📍 Venues ▼ - Venue management with dropdown
🏢 Organizers ▼ - Organizer management with dropdown
👤 Profile ▼ - Profile management with dropdown

The navigation system now follows WordPress best practices with:
- Server-side rendering through templates
- Proper PHP class integration
- No JavaScript DOM manipulation
- Clean, maintainable code architecture
- Full compatibility with WordPress theme system

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 22:32:23 -03:00
bengizmo
ef87f555a0 feat: Integrate navigation and breadcrumbs into all trainer templates
- Created template integration class for automatic nav/breadcrumb injection
- Added trainer-header.php template part for consistent header
- Updated all trainer page templates to include navigation and breadcrumbs
- Navigation shows hierarchical menu with dropdowns
- Breadcrumbs provide context-aware navigation trail

All trainer pages now have consistent navigation structure

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 17:31:54 -03:00
bengizmo
70b78a069f feat: Add navigation menu system and breadcrumb functionality
- Implemented comprehensive trainer navigation system:
  * Horizontal and vertical navigation layouts
  * Multi-level menu with dropdowns for Events, Venues, Organizers, Profile
  * Responsive mobile navigation with hamburger menu
  * Keyboard navigation support (Arrow keys, Enter, Escape)
  * Active page highlighting
  * Master trainer menu items for users with appropriate role

- Created breadcrumb system:
  * Automatic breadcrumb generation based on URL structure
  * Shortcode support [hvac_breadcrumbs]
  * SEO-friendly with structured data (Schema.org)
  * Multiple style options (default, pills, arrows)
  * Responsive design

- Technical implementation:
  * HVAC_Trainer_Navigation class for menu management
  * HVAC_Breadcrumbs class for breadcrumb generation
  * CSS for both navigation and breadcrumbs
  * JavaScript for interactive menu behaviors
  * Template part for easy inclusion

Navigation provides easy access to all trainer features and improves UX.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 16:45:58 -03:00
bengizmo
e4f079a89c feat: Major registration refactor and new trainer management pages
- Refactored registration form:
  * Moved Application Details to Personal Information section
  * Renamed Business Information to Training Organization Information
  * Added required Organization Logo upload with media library integration
  * Added Headquarters location fields (City, State/Province, Country)
  * Moved training-related fields into Organization section
  * Created conditional Training Venue Information section with auto-population

- Created comprehensive venue management system:
  * Training Venues List page (/trainer/venue/list) with filtering and pagination
  * Manage Venue page (/trainer/venue/manage) for create/edit operations
  * Full integration with The Events Calendar venue post type
  * AJAX-powered forms with real-time validation

- Created trainer profile system:
  * Trainer Profile view page (/trainer/profile) with stats and certifications
  * Profile Edit page (/trainer/profile/edit) with photo upload
  * Years of experience tracking and professional information
  * Integration with user meta and custom fields

- Created training organizers management:
  * Organizers List page (/trainer/organizer/list) with search functionality
  * Manage Organizer page (/trainer/organizer/manage) for CRUD operations
  * Organization logo upload and headquarters tracking
  * Full integration with The Events Calendar organizer post type

- Technical improvements:
  * Modular PHP class architecture for each feature
  * Comprehensive AJAX handlers with security nonces
  * Responsive CSS design for all new pages
  * JavaScript form validation and dynamic behavior
  * Proper WordPress and TEC API integration

All new features follow hierarchical URL structure and include breadcrumb navigation.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 16:29:51 -03:00
bengizmo
00b3b2008b fix: Resolve event manage page CSS override and duplicate header issues
- Scoped all CSS rules to .hvac-event-manage-wrapper to prevent theme conflicts
- Moved navigation header directly into page template to avoid duplication
- Disabled duplicate header hook in HVAC_Event_Manage_Header class
- Added theme override styles to enforce 1200px max-width and 20px padding
- Updated CSS methodology to use consistent spacing and remove CSS variables
- Added HVAC_Page_Content_Fixer class to clean escaped HTML comments
- Updated documentation with CSS architecture details
- Enhanced theme compatibility with higher specificity selectors

The event manage page now displays correctly with:
- Single navigation header (no duplicates)
- Proper white background and shadows
- Consistent button styling matching other pages
- Clean 1200px max-width layout with 20px padding

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 15:36:39 -03:00