All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Delete Data on Uninstall: New option in Settings to optionally remove all plugin data (events table and Agenda page) when uninstalling the plugin
- Proper uninstall cleanup: Added
uninstall.phpto clean up translation files and options on plugin removal - Translation installation: Translations are now automatically copied to WordPress languages directory on activation
- E2E language tests: Added comprehensive tests for translation verification across all supported languages
- Removed Swiss French (fr_CH) and Swiss Italian (it_CH) translations as WordPress core doesn't support these locales
- Improved build script to include
uninstall.phpin distribution package
- SQL injection prevention: Added proper escaping for database table name in uninstall script
- WordPress.org Compliance: Renamed shortcode from
[acsagma_agenda]to[acsagma_agenda]with proper unique prefix - Improved admin menu branding: renamed top-level menu from "Agenda" to "ACS Agenda" for better identification
- Complete Japanese translation now available
- Updated all translation files (.po/.mo) with new shortcode name references
- Help page and settings page updated to display the correct shortcode
- Comprehensive E2E test coverage with new test files:
advanced-fields.spec.ts- Tests for partial attendance, advance payment, external URLs, and price fieldshelp.spec.ts- Tests for help page content and navigationimage-management.spec.ts- Tests for image upload, preview, and removalsettings.spec.ts- Tests for plugin settings pagevalidation.spec.ts- Tests for form validation (required fields, URL validation, date format)
- Improved test fixtures with dynamic agenda page URL detection and better event search handling
- Fixed global variable naming in
templates/help-page.phpto comply with WordPress coding standards$toc→$acsagma_toc$agenda_page→$acsagma_agenda_page$page_label→$acsagma_page_label
- Updated test environment setup to exclude all development files for Plugin Check compliance
- Added exclusions:
.github/,.distignore,node_modules/,package.json,composer.json, etc. - Only compiled
.motranslation files are included (.poand.potexcluded)
- Added exclusions:
- Integrated Plugin Check tool in Docker test environment for automated compliance validation
- WordPress.org Compliance: Updated all prefixes from 'acs' (3 chars) to 'acsagma' (7 chars) for uniqueness requirements
- Fixed AJAX action names to use proper
acsagma_prefix instead of generic names - Fixed menu slugs throughout the plugin after prefix rename (
agenda→acsagma-agenda) - Fixed JavaScript
filterEvents()function to use correct menu slug - Fixed E2E tests after identifier changes:
- Calendar navigation tests now read dropdown values instead of concatenated text
- Frontend test creates events with future dates for proper visibility
- Search/filter tests use
waitForPageReload()for better reliability - Updated all test fixtures with new menu slugs
- All constants now use
ACSAGMA_prefix (wasACS_) - All classes now use
ACSAGMA_prefix (wasACS_) - All options now use
acsagma_prefix (wasacs_or mixed) - All menu/submenu slugs now use
acsagma-prefix - All AJAX actions now use
acsagma_prefix - JavaScript localized objects now use
acsagmaprefix
- Automated screenshot generation for WordPress.org plugin assets
- GitHub Actions workflow for automated WordPress.org deployment
- SELinux compatibility for Docker volume mounts (
:zflag)
- MySQL 8.4 authentication compatibility with WP-CLI container
- Docker test environment setup script permissions
- Japanese language support (ja)
- Success notifications for event create/update operations
- In-dialog validation error messages (no longer appear behind modal)
- Backend date validation to sanitize invalid date formats
- New translation strings for validation messages
- Split CSS into 3 files for better organization:
acs-common.css: Shared variables, buttons, spinneracs.css: Frontend-only stylesacs-admin.css: Admin-only styles
- Modernized admin form with card-based sections (Basic Info, Schedule, Media, Links & Pricing)
- Improved jQuery UI dialog button styling with calculated min-height
- Updated all translation files (.pot, .po, .mo) with new strings
- Date field now filters out invalid/garbage text when using calendar picker
- Dialog buttons no longer clipped at bottom
- Form validation errors now display inside the modal dialog
- Image lightbox: Click on event images to view full-size in a popup overlay
- Close button for calendar date picker
- Calendar tests in E2E test suite (15 new tests)
- Modern frontend design with CSS Grid layout
- Enhanced image display with hover effects and shadows
- Accessibility improvements for images (keyboard navigation, focus states)
- Redesigned frontend agenda page with modern color palette
- Improved date column with gradient background and glass-morphism badges
- Updated responsive design for better mobile experience
- Refactored calendar date picker to read field value dynamically
- Enhanced "Read more" button styling with outline design
- Calendar now properly grays out and disables past dates for new events
- Calendar respects manually cleared date field
- ESLint formatting issues in JavaScript files
- Build exclusions for Plugin Check compliance
- E2E test suite using Playwright
- Event management tests (create, edit, delete, bulk delete)
- Frontend display tests
- Search and filter tests
- Convenience script
test/run-e2e.shfor running E2E tests
- "Headers already sent" error when deleting events from admin panel
- Complete plugin rewrite with modern PHP 7.4+ code
- New class-based architecture with proper separation of concerns
- Dedicated classes: ACS_Database, ACS_Event, ACS_Template, ACS_Admin, ACS_Options
- Separated JavaScript files for admin and frontend
- Template files for admin pages
- Comprehensive inline PHPDoc documentation
- Pre-commit hooks configuration for code quality
- Docker-based testing environment
- User guide integrated in admin panel
- WordPress.org compatible readme.txt
- Complete internationalization with 6 locales:
- French (fr_FR, fr_CH)
- Italian (it_IT, it_CH)
- German (de_DE, de_CH)
- New POT template file for translators
- Improved security with better input sanitization and nonce verification
- Modernized admin UI with updated dialogs and form handling
- Optimized database queries for better performance
- Better internationalization support
- CSS refactored with CSS variables for easy customization
- Legacy monolithic code structure
- Inline JavaScript in PHP files
- Deprecated WordPress function calls
- French (fr_FR, fr_CH) translations
- Italian translation support
- Various bug fixes for date handling
- Improved compatibility with PHP 8.0
- Initial public release
- Multi-date event support
- Media library integration
- Shortcode for agenda display
- Admin interface for event management
- Initial development version