# CHANGELOG

## v3.0.1 – 2025-12-02

### Added

- Simultaneous editing of iDevice and box titles
- Support for opening editable EPUB files
- Progress dialog added for uploads and imports
- Full Styles review and documentation
- Allow custom favicons in styles
- New project subtitle property
- New "Hide title" option in page settings
- New "Highlight page" option in page settings with styles compatibility
- New Mermaid diagrams plugin added to the TinyMCE Insert menu
- Added touch support for drag-and-drop iDevices (Classify, Sort, Drag and drop, Complete) to improve mobile interaction.
- Complete iDevice: added custom font color and configurable background image support
- Form iDevice improvements: edition/form.js refactor and new feedback/hint options
- Responsive improvements in Puzzle and Word Search iDevices
- Allow text/xml files (like .gpx) and .gltf files
- eXeLearning version added to the export structure
- Extract sources for video, audio, images and pictures; improved multimedia handling
- Default profile image added if no internet connection
- Support for converting old .elp files via REST API
- Support for exporting contents via REST API
- Domain used for generating temporary emails for CAS/OpenID users is now configurable
- Improvements for binded directories on Windows
- New `make.bat` file for Windows
- Upgraded default proxy settings
- Increased default minimum values for `client_max_body_size`, `post_max_size`, and `upload_max_filesize`
- Added new environment variables: `memory_limit=512M`, `max_execution_time=600`, and `max_input_time=600` to raise PHP memory and execution time limits
- Added new environment variables (`APP_ENV`, `APP_PORT`, `APP_ONLINE_MODE`, `APP_AUTH_METHODS`, and default test user credentials) to the Dockerfile for improved configuration and onboarding
- Align asset paths with `BASE_PATH` when deploying behind an Nginx subdirectory
- Updated deployment documentation, including new Ansible deployment instructions and Keycloak integration
- Improved test management and reliability, with support for running resource-intensive tests separately
- Translations revision and cleanup
- Complete translations: Catalan (CA), Basque (EU), Galician (GL), Spanish (ES), Romanian (RO), and Valencian (VA)
- New Portuguese and French translations (partially automated)
- Automatic Esperanto translation

### Fixed

- Optimizations for handling large files (over 100MB) in the ODE import workflow
- Path normalization on Windows (fix incorrect directory separators)
- Styles and iDevices import and installation issues (user-specific files served from new directories)
- File + Upload to: added missing icon
- Sanitize JSON to avoid errors caused by unescaped control characters in legacy iDevices
- ".elpx" extension missing in the Save As dialog
- Multiple Word Search iDevice instances per page
- Feedback button functionality issues in the Text iDevice
- Puzzle iDevice presentation on mobile devices
- Improved Crossword iDevice performance and word placement
- Floated images overflowing in Form iDevice questions
- Case Study iDevice: missing feedback button CSS class
- Crossword iDevice: background image display issue
- SCORM fixes: improved score recovery and better suspend_data handling
- Metadata error in profiler when using MariaDB
- PostgreSQL compatibility issues caused by use of reserved keywords
- TinyMCE fullscreen mode z-index issue (last line selection)
- TinyMCE image and media plugins bugs

### Upgraded

- Upgraded base image to `erseco/alpine-php-webserver:3.22.2` with PHP/Symfony performance tweaks
- actions/checkout: 5 → 6
- api-platform/core: 4.2.1 → 4.2.6
- doctrine/doctrine-bundle: 2.18.0 → 3.0.0
- doctrine/doctrine-migrations-bundle: 3.5.0 → 3.7.0
- doctrine/orm: 3.5.2 → 3.5.3
- electron: 38.5.0 → 39.0.0
- friendsofphp/php-cs-fixer: 3.88.2 → 3.90.0
- symfony/browser-kit: 7.3.2 → 7.3.6
- symfony/css-selector: 7.3.0 → 7.3.6
- symfony/debug-bundle: 7.3.4 → 7.3.5
- symfony/console: 7.3.4 → 7.3.5
- symfony/flex: 2.8.2 → 2.10.0
- symfony/framework-bundle: 7.3.5 → 7.3.6
- symfony/http-foundation: 7.3.5 → 7.3.7 (in the composer group across 1 directory)
- symfony/intl: 7.3.4 → 7.3.5
- symfony/mailer: 7.3.4 → 7.3.5
- symfony/maker-bundle: 1.64.0 → 1.65.0
- rector/rector: 2.2.6 → 2.2.8
- symfony/serializer: 7.3.4 → 7.3.5
- symfony/validator: 7.3.4 → 7.3.7
- symfony/yaml: 7.3.3 → 7.3.5

### Removed

- Doctrine deprecations
- "Include a copy of the source file" preference
- Old "- Page title -" JavaScript solution for highlighted pages

---

## v3.0.0 – 2025-10-28

- First official release of eXeLearning 3.0
- Includes all features and fixes introduced during the beta and release candidate testing
- Improved iDevices, interface, translations, and installer workflows across platforms
- Full support for Linux, Windows, and macOS desktop versions
- Collaborative editing available in the online version

---

## v3.0.0-rc6 – 2025-10-28

### Added

- New "Import (.elpx…)" functionality in the "File" menu to import .elpx, .elp, and editable .zip files

### Fixed

- Incorrect links generated by the File Manager in the Windows desktop version
- Hidden buttons in the File Manager .txt file editor
- Font-weight issue in the "Zen" style: missing bold

### Upgraded

- actions/download-artifact: 5 → 6
- actions/upload-artifact: 5 → 6
- brianium/paratest: 7.14.1 → 7.14.2
- doctrine/doctrine-migrations-bundle: 3.4.2 → 3.5.0
- rector/rector: 2.2.3 → 2.2.6
- symfony/security-bundle: 7.3.3 → 7.3.4

---

## v3.0.0-rc5 – 2025-10-27

### Added

- Local Windows installer signing
- New Windows installation icons
- New iDevice icons in all styles
- Reviewed iDevice icons and positions in the iDevices panel
- Map iDevice translations
- New full translation: Catalan (ca)
- Expanded browser locale detection for all supported languages

### Fixed

- Fixed Windows auto-update process
- "Invalid data" error in the "Open" dialog
- Internal links in eXe with the new UI
- Problems with special characters and symbols in page titles and exported HTML files
- Multiple toast notifications appear after editing the project title
- Missing confirmation before closing a project
- "Save As" default extension: elp → elpx
- Export of a block or an iDevice in the offline version left a blank window open
- Text iDevice with feedback: `fieldset` open by default
- Issues with style information
- Missing font file in the "Zen" style
- Effects not initialized immediately after saving an iDevice
- TinyMCE templates presentation issues (missing CSS)
- Problem with image selection in predefined templates
- TinyMCE image plugin: recognition data removed when opening another tab
- Resources report / Broken links report column titles
- Minor UI presentation issues

### Upgraded

- Licenses: attributions for third-party libraries

### Removed

- Fluent Emoji icons from the "Flux" and "Neo" styles
- Lucide icons from the "Nova" and "Zen" styles

---

## v3.0.0-rc4 – 2025-10-23

### Added

- New button to minify an iDevice in the work area
- New "Insert template" button in TinyMCE
- Declared .elpx as a file association in the Electron builder configuration
- Updated packaging scripts for Debian/Ubuntu (APT) and RPM-based distributions, including GPG key and source configuration
- Improved application update mechanism with robust checks to ensure the embedded PHP runtime works correctly, especially on Windows
- Several improvements and fixes in the Windows installer workflow
- Full translations: Basque (eu), Galician (gl), Valencian (va)
- Updated translations (automated): Catalan (ca), Esperanto (eo)

### Fixed

- "Visible in export" preference in exported contents
- Import of a block or an iDevice on a page
- Removed unnecessary `data-idevice-json-data` and `data-idevice-template` attributes in Text iDevices
- Progress Report iDevice: sort iDevices by block order on each page
- Enable MathJax rendering when previewing and printing
- Untranslated strings in TinyMCE

---

## v3.0.0-rc3 – 2025-10-22

### Added

- New default file extension: elp → elpx
- Notarization of the macOS version
- New screenshots of styles
- Information about styles (detailed descriptions and recognitions)

### Fixed

- Rubric iDevice median score calculation
- JavaScript errors when more than one UDL iDevice is present on a page
- Accessibility issues in the Favorite iDevices panel

---

## v3.0.0-rc2 – 2025-10-21

### Added

- New "Flux", "Neo", "Nova" and "Zen" styles
- Improved iDevices presentation
- Bootstrap switches replacing system checkboxes in iDevices and the work area
- Several improvements and refactoring of the Windows installer build process
- Full translation: Valencian (va)

### Fixed

- Interactive Video iDevice decoding issue
- True/False iDevice errors on Save and Cancel actions
- Presentation and functionality issues in the new UI
- "Download CSV" functionality in the "Progress Report" and "Link Validation" tools
- Share URL link when running the application from a subfolder instead of the root directory

### Upgraded

- actions/setup-node: 5 → 6
- node: 24-alpine → 25-alpine
- symfony/form: 7.3.3 → 7.3.4
- symfony/http-client: 7.3.3 → 7.3.4
- symfony/phpunit-bridge: 7.3.3 → 7.3.4
- symfony/runtime: 7.3.1 → 7.3.4
- symfony/web-profiler-bundle: 7.3.3 → 7.3.4

### Removed

- "Test" style (used for testing only)
- Export "Metadata (XML)"

---

## v3.0.0-rc1 – 2025-10-19

### Added

- New print functionality in the "File" menu
- New E2E tests
- Full translation: Spanish (es)
- Updated translations (automated): Catalan (ca), Basque (eu), Galician (gl), Valencian (va), Esperanto (eo)
- New score bar icons in the Games
- Improved installation logic in the Electron installers
- Session expiration detection and automatic login redirect
- Automatic CSS generation from SCSS
- Allow Electron version auto-updates
- New `make test-playwright` command to run local Playwright collaborative tests

### Fixed

- Improvements to the Chocolatey packaging workflow
- Issues in Windows and macOS versions (control PHP INI settings via environment variables)
- Application icons and logos across all versions
- Form iDevice presentation (partial revision)

### Upgraded

- Deploy documentation
- Node.js: 20 → 24

### Removed

- Unused strings in translation files
- "API Reference" link
- Provisional warning for beta versions
- Main CSS file (now generated automatically from SCSS files)

---

## v3.0.0-beta8 – 2025-10-16

### Added

- Improved collaborative editing mode in the new interface
- New temporary files cleanup feature and related documentation
- Configurable system for rendering user profile avatars
- Added a `data-testid` attribute to various UI components to facilitate automated testing
- Refactored E2E tests with factories, real-time improvements, and cleaner output
- Restricted guest login endpoint to authorized sources to prevent abuse
- New `make css` and `make css-dev` commands for building production and development CSS
- New "Base" style colors
- iDevices:
  - New icons and styling
  - Checklist & Progress Report: Enabled PDF report download (with PNG fallback)
  - New tab for AI-based question generation in some iDevices
  - Identify: New button to play the help audio

### Fixed

- SQLite PRAGMA handling
- Reduced Mercure and app log output
- Changed the default shell to `/bin/ash` for Alpine compatibility and enabled error handling
- Added active polling for eXeLearning.exe after NSIS installation to avoid race conditions
- Chocolatey publishing process
- Packaging and version management (improved application upgrade process)
- Presentation and usability issues in the new UI
- iDevices:
  - Complete: Fixed jQuery UI loading issue
  - AZ Quiz Game: Added support for accent marks and special characters

### Upgraded

- dama/doctrine-test-bundle: 8.3.1 → 8.4.0
- github/codeql-action: 3 → 4
- liip/imagine-bundle: 2.14.0 → 2.15.0
- node: 20-alpine → 24-alpine
- phpunit/phpunit: 12.4.0 → 12.4.1
- rector/rector: 2.1.7 → 2.2.3
- symfony/mailer: 7.3.3 → 7.3.4

### Removed

- SCORM 2004 export (temporarily)

---

## v3.0.0-beta7 – 2025-10-12

### Added

- New user interface
- New iDevice icons
- Updated Spanish (es) translation
- Build and test automation for Electron desktop installers
- Secure code signing for macOS installers
- Improved Electron build workflow and documentation
- New jobs to build and publish the application to Chocolatey and Winget
- Doctrine middleware to improve SQLite connection performance under concurrent load
- iDevice HTML revision

### Fixed

- Moodle publish process
- CAS authentication compatibility with different `BASE_PATH` values
- Incorrect iDevice order on pages
- Handling of orphaned iDevices in `content.xml`
- Prevent “invalid data” error when saving iDevices
- Standardized serialization across all controllers
- `make create-user` command on Windows

### Upgraded

- actions/checkout: 4 → 5
- actions/download-artifact: 4 → 5
- actions/setup-python: 5 → 6
- actions/upload-pages-artifact: 3 → 4
- api-platform/core: 4.2.0 → 4.2.1
- brianium/paratest: 7.13.0 → 7.14.1
- friendsofphp/php-cs-fixer: 3.87.2 → 3.88.2
- peter-evans/dockerhub-description: 4 → 5
- phpunit/phpunit: 12.3.14 → 12.3.15
- postgres: 17-alpine → 18-alpine in /doc/deploy
- symfony/debug-bundle: 7.3.0 → 7.3.4
- symfony/framework-bundle: 7.3.3 → 7.3.4
- symfony/intl: 7.3.3 → 7.3.4
- symfony/serializer: 7.3.3 → 7.3.4
- symfony/translation: 7.3.3 → 7.3.4
- symfony/twig-bundle: 7.3.2 → 7.3.4

### Removed

- VirusTotal scanning step from the Electron installer build workflow

---

## v3.0.0-beta6 – 2025-09-27

### Added

- Desktop version–specific Save / Open / Export options
- Online version "Save as" option
- Keyboard shortcuts
- New iDevice categories
- Export to folder (unzipped website) option
- Teacher mode (teacher-only iDevices and boxes)
- New "Test" style (for testing only)
- Project title visible in all export formats
- New `make destroy` command for developers
- Parallel testing support
- New REST API: Users and projects, JWT authentication and admin tools
- New settings to enable or disable the iDevices and styles import option in the online version
- New option to import a style from an .elp file or exported content
- Updated translations: Spanish (es), Galician (gl)

### Fixed

- iDevice ID mismatch between data and exported HTML
- Refactor iDevice feedback handling and remove old rendering logic
- Performance improvements:
  - Directory and file removal, ZIP handling and related tests
  - User handling and session cleanup
  - Offline version startup
- Security: Defensive programming, type safety and test reliability
- Style management errors
- Caching and logging management
- Electron app configuration: secret environment variable
- Mounting of public/bundles (permission errors)
- jQuery UI compatibility issues
- Untranslated JavaScript strings
- Progress Report iDevice: real-time score updates and repeated alert fix
- Accessibility toolbar presentation and duplicated CSS loading error

### Upgraded

- Documentation
- Improved support for OpenID Connect
- Refactored common iDevice JavaScript code
- Symfony Process Component: 7.3.0 → 7.3.3
- Symfony Security Component (Core): 7.3.2 → 7.3.3
- PHPUnit: 12.3.6 → 12.3.12
- PHPUnit Bridge: 7.3.1 → 7.3.3
- Symfony Translation Component: 7.3.2 → 7.3.3
- Symfony Yaml Component: 7.3.2 → 7.3.3
- Symfony WebProfilerBundle: 7.3.2 → 7.3.3
- Symfony Serializer Component: 7.3.2 → 7.3.3
- API Platform for Symfony: api-platform/api-platform 4.1.22 → api-platform/core 4.2
- PHP CS Fixer: 3.86.0 → 3.87.1
- Doctrine ORM support for API Platform: 4.1.22 → 4.2.0
- Doctrine Bundle: 2.15.1 → 2.16.1
- Electron: 3.86.0 → 3.87.1
- setup-node Action: 4 → 5
- Hadolint Action: 3.1.0 → 3.3.0

---

## v3.0.0-beta5 – 2025-08-29

### Added

- New Security Improvements: Disabled directory listing and prevented execution of uploaded scripts
- New Automate Workflows
- New Make commands for developers
- Question type iDevices: Send prompt to IA button

### Fixed

- Improved provider support for LMS and other platforms
- Update iDevices and styles when installing a new version
- Download source file iDevice presentation issues
- Improved XDebug handling for developers
- Faster Test Suite

### Upgraded

- Documentation
- Checkout action: 4 → 5
- Doctrine: 3.5.1 → 3.5.2
- MariaDB: 11.8 → 12.0
- PHP: 8.3 → 8.4
- PHPUnit: 12.3.0 → 12.3.6
- Rector: 1.2.10 → 2.1.4
- Symfony Flex: 2.8.1 → 2.8.2

---

## v3.0.0-beta4 – 2025-07-23

### Added

- Case Study iDevice
- Magnifier iDevice
- iDevice Manager enabled
- Style Manager enabled
- New LaTeX Equation Editor: EdiCuaTeX
- Console commands for generating and managing API tokens for users
- Full translation: Spanish (es)
- Updated translations: Catalan (ca), Basque (eu), Galician (gl), Valencian (va), Esperanto (eo)

### Fixed

- File Manager: Mixed content errors under HTTPS
- TriviExt iDevice: Open-ended response questions always marked as correct
- Licenses: Revised attributions for third-party libraries
- Localization: String extraction issues

### Upgraded

- Electron: 36.3.2 → 37.1.0

### Removed

- Previous JavaScript Equation Editor: FMath
- Unused fonts

---

## v3.0.0-beta3 - 2025-06-30

### Added

- Complete translations: es (Español), va (Valencià)
- Updated translations: ca (Català), eu (Euskara), gl (Galego), eo (Esperanto)
- Form iDevice: Slideshow mode and "Check capitalization" options
- True/False iDevice: Slideshow mode
- Transitions for collapsing/expanding feedback content and boxes
- Function to know who is editing an iDevice in collaborative mode
- Make commands: up-local and test-local
- UI customization via CSS and JavaScript

### Fixed

- Reviewed English texts throughout the application
- Errors when opening old .elp files
- Broken internal links in old .elp files
- "Visible in export" page preference
- Encoding issues in HEAD and page footer
- Advanced page preferences (SEO title and description)
- Child pages from other sections showing in the navigation menu
- Navigation menu errors in ePub exports
- Scrollbar growth in auto-resizing iframes (e.g., eXe Moodle viewers)
- Insufficient contrast between elements in the work area
- Missing icons when using Google Translate
- Display of the "Not appropriate" license on pages
- Box order issues in collaborative editing
- Conflicts between Bootstrap tooltips and iDevices using jQuery UI
- Image Gallery iDevice: Missing image titles from old .elp files
- Form iDevice: Validation issues
- Rubric iDevice: "Apply rubric" errors
- Text iDevice:
  - Missing images in old .elp files
  - Support for two different texts in the feedback button
- Old Wikipedia iDevice: Content presentation revision
- Effects: Color adjustments
- Mercure connection issues when APP_PORT differs from 8080
- Errors in platform integration tests

### Upgraded

- Bootstrap: v5.1.3 → v5.3.6
- Electron: 30.5.1 → 36.3.2
- jQuery: v3.6.0 → v3.7.1
- MariaDB: 11.7 → 11.8 (in /doc/deploy)
- Symfony: 7.2 → 7.3
- SSE setup documentation for Mercure

### Removed

- Deprecated classification fields: Only Title, Language, Authorship, License, and Description remain
- AppImage generation (sandboxing issues in Ubuntu 24.04+)

---

## v3.0.0-beta2 - 2025-06-02

- First eXeLearning 3.0 beta release with source code
- License changed to AGPL 3.0
- Complete Spanish translation
- Updated installation instructions
- "Version control" preference temporarily hidden

---

## v3.0.0-beta1 - 2025-05-27

- eXeLearning 3.0 first beta release available for testing and collaborating
