github craigk5n/webcalendar v1.9.13

13 hours ago

WebCalendar v1.9.13 Release Notes

New Features / Major Changes

  • New Bootstrap 5 single-page installer wizard -- Replaced the legacy install/ directory with a modern
    installer in wizard/ featuring step-by-step AJAX navigation, real-time validation, database upgrade
    detection, headless CLI mode for automated deployments, and post-install security recommendations (#608)
  • Switched rich text editor from CKEditor v4 to TinyMCE 7.x -- CKEditor v4 is no longer supported and has
    open vulnerabilities; CKEditor v5 is not open source, so TinyMCE was chosen as the replacement
  • Dark/light theme support -- Added user option to choose between dark and light themes
  • PostgreSQL improvements -- Full support for new installs and upgrades with PostgreSQL, including dev
    Dockerfile support
  • Unique PHP session names per install directory -- Allows multiple WebCalendar installs on the same
    server without login session conflicts
  • Added complete-translation.py tool -- Assists in completing partial translations using OpenAI

Security

  • Fixed XSS vulnerability in report name
  • Fixed CSRF vulnerability in reject_entry.php
  • Fixed privilege escalation in user profile -- Users editing their own profile could set themselves as
    administrator

Bug Fixes

  • Fix upgrade to v1.9.12 not extending the length of the user password field
  • Fix JSON parsing for layers
  • Fix reminders sent at the wrong time when recurring events cross DST boundaries
  • Fix "remember me" on login page (#527)
  • Fix undo button in UAC access.php (#530)
  • Fix week view display issues (#529)
  • Fix JavaScript global variables in edit_entry.php referring to non-distinct arrays
  • Fix "Export All" checkbox on the export page
  • Fix category bugs: could not create global categories (#510), global categories not loading after
    cat_owner NULL change, error when creating a new category (#496), could not set category for event (#507)
  • Fix advanced search crash when category filter was used
  • Fix username bug on groups.php -- usernames with special characters prevented editing groups
  • Fix PHP error when rejecting an event with no participants
  • Fix broken install/session when home directory contains invalid session name characters
  • Fix alignment of mini-calendars on month view
  • Fix purge.php -- missing database reference in FROM clause
  • Fix edit_entry.php -- PHP 8 no longer considers empty string equal to 0
  • Fix deleted users still being assignable to groups
  • Fix Event class -- allow null $_dueDate to prevent fatal error in month.php

PHP 8 Compatibility

  • Extensive fixes for PHP 8.0, 8.2, and 8.3 deprecation warnings and type errors across the codebase
  • Removed legacy mssql and mysql extension code (not supported in PHP 8); added blob handling for mysqli
  • Replaced deprecated HTML attributes and tags with HTML5 equivalents

Installer / Wizard

  • SQLite3 fixes for dbi4php.php and SQL used during install (#587)
  • Refactored headless installer with environment variable support and improved error handling
  • Added button in installer to view PHP details (version, modules, etc.)
  • Removed requirement to run MariaDB shell for install permissions

UI / UX Improvements

  • Improved base image styling and typography
  • Smooth scrolling instead of jumping
  • Better paragraph spacing and multi-line alignment
  • Layout fixes across calendar views
  • Converted elements to elements

Translations / i18n

  • Updated German translation with "Default Visibility" (#593) and completed missing entries
  • Updated and converted Spanish translation to UTF-8
  • Updated Polish (UTF-8) and French translations with missing entries
  • Fixed HTTP charset header -- Apache was sending UTF-8 regardless of the HTML meta tag, causing rendering
    issues for non-UTF-8 charsets (#448)
  • Standardized translation file naming and encoding; all new language files are UTF-8

Dependencies

  • Bumped actions/checkout from 2 to 6
  • Bumped actions/cache from 3 to 4
  • Bumped docker/build-push-action from 5 to 6
  • Bumped phpunit/phpunit to 9.6.16
  • Updated bootstrap-icons to latest version
  • Updated composer.json / composer.lock

CI / DevOps

  • Added new GitHub workflow to perform automated test install with SQLite3
  • Added PHP syntax checking GitHub workflow
  • Docker: added PostgreSQL dev container, removed PHP 7 Docker files, updated Dockerfile
  • Updated Docker Compose documentation to use docker compose (v2)

Code Quality / Maintenance

  • Numerous spelling corrections, redundant code removal, and code style standardizations
  • Added unit tests for Event.php class
  • Ensured admin.php remembers the DEFAULT_VISIBILITY setting (#592)
  • Added select_db call before queries in dbi_query function

Don't miss a new webcalendar release

NewReleases is sending notifications on new releases.