Commit graph

16 commits

Author SHA1 Message Date
ben
91873c6a9c feat: implement comprehensive featured image system for events, organizers, and venues
- Add featured image field to main event creation form with WordPress media uploader
- Implement featured image upload in organizer and venue creation modals
- Update AJAX handlers to process and validate featured image attachments
- Add comprehensive media upload UI with preview and removal functionality
- Include proper permission validation for administrator, trainer, and master trainer roles
- Create authoritative documentation for complete event creation page functionality

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 20:24:31 -03:00
ben
c3806f01c3 fix: resolve markdown list processing and TinyMCE timing issues
- Rewrite markdown conversion to handle lists before other formatting
- Fix conflict between * for lists and * for italic text formatting
- Improve list detection with proper "* " pattern matching
- Add WordPress tinymce-editor-init event listener for proper initialization
- Store editor reference globally for reliable content insertion
- Enhanced TinyMCE readiness detection with fallback mechanisms

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 19:13:21 -03:00
ben
875315e2f5 debug: add comprehensive TinyMCE timing and markdown testing
- Improved TinyMCE initialization detection with hvacTinyMCEReady flag
- Added robust retry mechanism for content insertion (20 attempts with 250ms intervals)
- Enhanced debugging with console logging for markdown conversion process
- Added global testMarkdownConversion() function for browser console testing
- Implemented proper timing coordination between WordPress editor and AI Assistant

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 19:03:52 -03:00
ben
d5239d7a3f fix: improve markdown conversion and advanced fields visibility
- Enhanced markdown to HTML conversion with proper list handling
- Added support for H4, H5, H6 headers in TinyMCE editor configuration
- Improved bullet list processing with proper <ul> wrapping
- Fixed advanced fields visibility by adding CSS display:none default
- Timezone selector and advanced options (capacity, cost) now properly hidden

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 18:16:47 -03:00
ben
b7e5514e8e feat: replace custom rich text editor with WordPress TinyMCE and add markdown conversion
- Replace custom contenteditable rich text editor with WordPress native TinyMCE editor
- Implement comprehensive markdown to HTML conversion for AI responses
- Support headers (H1-H3), bold/italic text, bullet lists, and paragraphs
- Integrate markdown conversion into AI Assistant response handling
- Maintain backward compatibility with existing textarea fallback

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 16:18:02 -03:00
ben
00f88070b8 fix: resolve trainer event creation page issues and implement modal forms
- Fix AI Assistant timeout issue (frontend: 35s → 50s)
- Fix AJAX action name mismatch for categories (categorys → categories)
- Fix nonce mismatch (hvac_general_nonce → hvac_ajax_nonce)
- Add modal forms for creating new organizers, categories, and venues
- Add comprehensive AJAX endpoints with security validation
- Implement role-based permissions for category creation
- Fix searchable selectors action mapping

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 16:07:56 -03:00
ben
2353d8a4be feat: implement dynamic searchable selectors and fix AI Assistant description population
## AI Assistant Fixes
- Fix description population for rich text editor by syncing contenteditable div
- AI now properly populates both hidden textarea and visible rich text editor

## Dynamic Searchable Selectors
- Convert organizer field to multi-select with autocomplete (max 3 selections)
- Convert category field to multi-select with role-based permissions
- Convert venue field to single-select with autocomplete and modal creation
- Add comprehensive search, filtering, and selection management

## Advanced Options Toggle
- Fix invisible timezone selector by implementing progressive disclosure
- Add functional "Advanced Options" toggle with proper JavaScript and CSS
- Advanced fields now properly show/hide with smooth animations

## Technical Implementation
- Create reusable HVACSearchableSelector JavaScript class
- Implement comprehensive styling with accessibility features
- Add role-based permissions (trainers vs master trainers)
- Include responsive design and high contrast mode support

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 15:09:25 -03:00
ben
6039be6fb9 fix: resolve event form field rendering issues and JavaScript compatibility
- Fix missing CSS file causing 404 error (hvac-tec-tickets.css)
- Add custom field type handling in HVAC_Event_Form_Builder for venue/organizer/categories
- Restore missing form fields (venue, organizer, category dropdowns now populated)
- Fix cross-browser JavaScript loading restrictions (was Safari-only)
- Add jQuery noConflict mode compatibility for WordPress
- Add missing hvacToggleAdvancedOptions function for advanced options toggle
- Increment plugin version to 2.0.1 for cache busting

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 09:12:56 -03:00
ben
c0175f51e3 security: implement comprehensive security fixes for OWASP Top 10 vulnerabilities
**Critical Security Fixes:**
- Fix AJAX endpoints to require POST requests with proper nonce verification
- Implement XSS protection with wp_kses_post() and comprehensive data sanitization
- Add role-based access control with granular capability checks
- Secure debug logging with environment and user permission validation
- Add file inclusion security with path validation and directory traversal protection

**Specific Changes:**
- HVAC_Event_Form_Builder: Enhanced AJAX handlers with POST-only validation
- Template data sanitization to prevent stored XSS attacks
- Debug logging restricted to authorized users and development environments
- File inclusion protected against directory traversal and PHP injection
- Improved capability checks for template management operations

**Security Standards:**
- All user input properly sanitized using WordPress security functions
- Output escaped with appropriate WordPress functions (esc_html, wp_kses_post)
- Nonce verification implemented consistently across all AJAX endpoints
- File paths validated to prevent local file inclusion vulnerabilities
- Debug information exposure limited to development environments only

All changes tested and validated for syntax correctness.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 15:41:27 -03:00
ben
63d7f5efa3 fix: implement code review fixes for form builder
Critical fixes:
- Implement get_current_form_data() method for template saving functionality
- Add sanitize_field_value() method with comprehensive field sanitization

High priority fixes:
- Add pagination limits (100) to venue and organizer queries to prevent performance issues
- Add capability checks to AJAX template handler for proper access control

Medium priority fixes:
- Add comprehensive documentation for hvac_event_form_after_basic_fields integration hook
- Add debug logging for cache initialization failures when WP_DEBUG is enabled

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 14:36:41 -03:00
ben
9cc5624d0d feat: implement TEC ticketing integration and template system updates
- Add comprehensive TEC ticketing integration with HVAC_TEC_Tickets class
- Replace hardcoded sample templates with real template data from cleaned reference
- Extend HVAC_Event_Form_Builder with ticketing fields and integration hooks
- Add mandatory attendee information collection (first name, last name, fieldset integration)
- Implement complete ticketing UI with pricing, capacity, RSVP, and sales periods
- Add responsive CSS styling and JavaScript for ticket field management
- Update template modal with enhanced template cards showing duration, difficulty, pricing
- Integrate ticketing system with event creation workflow and form submission

Phase 2B TEC integration complete with real template data and full ticketing functionality.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 14:24:41 -03:00
ben
09a15f874c feat: complete Phase 2B template system enhancements
 Enhanced Template Selector:
- Grouped templates by category with descriptions
- Template preview modal with field data display
- Apply template functionality with AJAX loading
- Enhanced UI with preview icons and better UX

 Save as Template Functionality:
- Complete save template dialog with validation
- Template name, description, and category fields
- Public/private template sharing options
- AJAX integration with error handling and success feedback

 Progressive Disclosure:
- Advanced options toggle with smooth animations
- Fields marked as advanced (capacity, cost, timezone)
- Local storage for user preference persistence
- Staggered reveal animations for better UX

 Enhanced Auto-save:
- Intelligent auto-save with field-type specific delays
- Draft recovery with age information and user confirmation
- Error handling with fallback to essential fields only
- Visual feedback with status indicator and animations
- Auto-save on page visibility change

 AJAX Infrastructure:
- Template preview handler (hvac_get_template_preview)
- Template loading handler (hvac_load_template_data)
- Template saving handler (hvac_save_template)
- Comprehensive error handling and security validation

🎨 UI/UX Enhancements:
- Modern modal dialogs with backdrop overlays
- Responsive design for mobile devices
- Smooth animations and transitions
- Status indicators with rotating save icons
- Comprehensive styling for all new components

🚀 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 09:06:03 -03:00
ben
d0fe0c439d feat: complete Phase 2A template system integration and form builder fixes
Major accomplishments:
- Successfully integrated Phase 2A template functionality with Phase 1 foundation
- Fixed critical form builder inheritance and property visibility issues
- Resolved cache initialization and method accessibility problems
- Updated templates to use native form builder with template support

Technical fixes:
- Fixed null cache initialization in HVAC_Event_Form_Builder constructor
- Changed form builder properties from private to protected for inheritance
- Made critical methods (get_form_attributes, render_field, etc.) accessible to child classes
- Updated create-event template to use native form with template mode enabled
- Added null checks for cache operations to prevent fatal errors

Form builder improvements:
- Template-enabled forms now render correctly with data-template-enabled="1"
- Form output increased from 2,871 to 37,966 characters (full field set)
- Proper event_title, event_start_datetime, venue, and organizer fields
- Template selector and template actions integrated seamlessly

Testing results:
- Phase 2A comprehensive tests now successfully locate template-enabled forms
- All Phase 2A classes (Template Manager, Bulk Manager, Form Builder) operational
- TEC Core compatibility maintained with tribe_events post type
- Database schema and template management fully functional

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 07:02:36 -03:00
ben
e4b3940cce fix: remove non-existent HVAC_Event_Cache dependency
Resolves fatal error: 'Class "HVAC_Event_Cache" not found'
- Removed strict typing for cache property
- Made cache initialization optional with placeholder for future implementation
- Prevents deployment blocking error

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 20:15:18 -03:00
ben
b3a487a53f fix: implement Phase 2A code review fixes for production readiness
Applied comprehensive fixes identified in Kimi K2 code review:

1. **PHP Strict Typing**: Added `declare(strict_types=1);` to Bulk Event Manager
   for improved type safety and runtime error detection

2. **MySQL Compatibility**: Replaced ENUM fields with VARCHAR + CHECK constraints
   in database schema to ensure broader MySQL version compatibility

3. **Input Validation**: Added comprehensive validation for event creation with
   detailed error messages and security sanitization

4. **AJAX Reliability**: Implemented timeout (10s) and retry mechanisms with
   exponential backoff for improved network resilience

5. **Internationalization**: Added complete i18n support with __() functions
   for all user-facing messages in PHP and JavaScript localized strings

**Files Modified:**
- includes/class-hvac-event-template-manager.php: 25+ i18n strings
- includes/class-hvac-event-form-builder.php: 12+ i18n strings
- includes/class-hvac-bulk-event-manager.php: Strict typing + 15+ i18n strings
- assets/js/hvac-event-form-templates.js: Template name validation fix

**Production Impact:**
- Enhanced security through strict typing and validation
- Improved user experience with localized error messages
- Better network resilience for template operations
- Broader database compatibility for deployment environments

Ready for staging deployment and user testing.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 20:13:35 -03:00
ben
f127e33b03 feat: implement Phase 2A Event Templates & Bulk Operations foundation
Comprehensive template system implementation including:

HVAC_Event_Template_Manager (700+ lines):
- Full CRUD operations for event templates
- Security-first design with nonce verification and user permissions
- Performance-optimized with 15-minute caching and efficient data loading
- Template validation, sanitization, and version control
- Public/private template support with access control
- Usage tracking and popularity-based sorting
- Complete AJAX API for seamless UI interactions

HVAC_Event_Form_Builder (1000+ lines):
- Extended base form builder with event-specific functionality
- Full template integration with selection and population capabilities
- Comprehensive field types: datetime, venue, organizer, capacity, cost
- Template loading with AJAX-powered real-time updates
- Save-as-template functionality with modal interface
- Advanced validation including datetime and numeric ranges
- Venue/organizer creation with dynamic field visibility
- Timezone support with cached options

Key Features:
- Template schema with metadata, categories, and validation rules
- Field-level template population and validation rule inheritance
- Cache-optimized performance with 15-minute TTL
- Complete security framework with proper sanitization
- Modern PHP 8+ patterns with strict typing and singleton architecture
- Extensible design ready for bulk operations and UI components

Foundation complete for Phase 2A Week 1-2 implementation goals.
Next: UI components, JavaScript integration, and bulk operations.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 18:04:07 -03:00