v4.1.0 (2026-02-05)
Bug Fixes
-
Add command-line usage instructions for CombineDbFilesTask and UpgradeDbTask causing phpstan issue (
bea840d) -
Add default value handling in ConfigurationFile::GetKey method (
0f785cb) -
Add null check in EnsureNull method (
1bda603) -
Api group update will create a new group rather than updating the group (
b939389) -
Availability edit button disappears after editing schedule (
f12d65f) -
Cannot access offset type on ShibbolethConfigKeys (
a853e09) -
Changed wrong auth details response code to 401 (
da4d633) -
Database migration for 4.0 (
0b6c844) -
Display current reservation on tablet view and refine layout (#803,
570b889) -
Edited plugin config example to use nested layout (
1b14b35) -
Error in keycloak/oauth url generation (
eb548ff) -
Error in reservation.start.time.constraint (
98b72b4) -
Exporter page broken after config validation (
f7c6c3d) -
Flatpickr week start day ignored for Starts Today schedules (
a46c31a) -
GetConfigGroup and ConfiKeys in API (
12fc5dc) -
Ignore invalid configs in ManageConfiguration (
711e01e) -
Include conditionally displaying title and description (#941,
46d3069) -
Informational log message changed to more appropriate level (DEBUG instead of ERROR) (
dadca6b) -
Null error on unknown key (
a8363f1) -
Reorder PSR12 rule (
7c3473a) -
Show option key rather than values on config wrong choice (
e35a030) -
Standardize log messages and improve error handling in configuration tests (
0214c6d) -
Trumbowyg fails to load when use.local.js.libs is set to true (
ccaba0b) -
Update environment variable keys and add resource options in config files (
5cbd1a1) -
Update manual database setup documentation (
9c175bf) -
Use BooleanConverter for TABLET_VIEW_ALLOW_RESERVATIONS (
d941886) -
Use ConfigKey instead of hard-coded name (
62a1e9b) -
Use default logging level of 'error' (
0e850d3) -
Use lower-case log_level (
44ca668) -
Wrong section for slack token (
f407878) -
auth: Prevent auto-registration when self-registration is disabled (
9f24a5a) -
auth: Updated plugin configuration keys into nested structures (
1cfe196) -
AutocompleteUser: Handle potential null values (
d90b7ab) -
chore: Resolve many html escape issues (
c8a6396) -
config: Preserve unknown subkeys in original structure for validation and improve error logging for invalid config values (
723f238) -
config: Update configurator to new plugin config (
3fe962b) -
htaccess: Prevent redirect loop for /Web path without trailing slash (
ad8bde2) -
image-upload: Use correct directory for uploading image (
88cb94a) -
ldap: Rename debug configuration key for consistency (
f8efae3) -
ldap: Update default search filter to be optional with improved description (
7c17c7c) -
pdf: Enhance PDF generation error handling and improve table formatting (
b165000) -
pdf: Handle default values for repeat options and reservation details in PDF generation (
fda8a76) -
profile: Resolve loading the profile page when multiple attributes (
e5e423f) -
profile: Resolve saving of unchecked checkbox in the profile (
2672584) -
reservation: Resolve html rendering in announcement emails (
1fad3be) -
reservation: Resolve weekly series checkbox status on load (
d7a62b4) -
Resources: Improve string retrieval logic (
7e27ac5) -
schedule: Correct date display and layout issues (
d684695) -
templates: Replace regex check with empty check in Italian email templates (
1e71f81) -
test: Update configuration key test (
3444e6c) -
tests: Update symbolic link creation and improve PHPUnit error handling (
ae628bc)
Chores
-
Update phpstan-baseline.neon (
200517a) -
git: Enforce LF line endings (
85a929f) -
git: Normalize all line endings to LF (
b211a9a) -
phpstan: Update for 2.1.25 release (
86594c1) -
phpstan: Update phpstan-baseline.neon (
79ac102) -
scripts: Remove jQuery Timepicker plugin files (
1632653) -
templates: Remove unused Timepicker includes (
9d25543)
Code Style
-
Enhance PHP-CS-Fixer rules with Symfony standards (
a42d5f8) -
Redesign API help page with Bootstrap and improved UI (
3f13add) -
vscode: Add initial
.vscode/settings.json(afae984)
Continuous Integration
-
Mark the 'develop' branch as a release branch (
02c4e20) -
Prevent merge-commits in a PR (
ebe5589) -
cz-lint: Give a more helpful message when 'cz' fails (
4a3a105) -
release: Add the 'id-token' permissions (
9b6b28a) -
release: Setup an automated release system (
464e117) -
release: Use the 'release' environment (
397e1bf) -
release: Use the release token for the git checkout action (
bd1e881) -
release: Use the RELEASE_GITHUB_TOKEN (
1bdd93d)
Documentation
-
Add info on privacy.view.schedules config option (
9fed6b2) -
Update comment for privacy->view.schedules (
8ae0a5f) -
auth: Add detailed configuration instructions for LDAP and Active Directory authentication (
40b00f6) -
auth: Enhance description for Admin Username in Active Directory configuration (
c150e2f) -
auth: Enhance description for properties in plugins (
12dfeea)
Features
-
Improved error handling for missing configkey and api (
adc4637) -
reservation: Highlight negative durations (
6c5a229) -
resource-display.php: Add allow-reservations config for tablet view (
ba22074)
Refactoring
-
Pageload in Login presenter (
2a554b1) -
Replaced die for proper server response (
4c75a91) -
Unify time formats using period_time (
35f6295) -
Url generation for external login (
26511e3) -
date-helper: Drop moment.js for native dates (
0533579) -
date-helper.js: Centralize midnight handling in time-range validation (
c85fb34) -
manage_blackouts: Use dateHelper for timepickers (
3fe1f8a) -
manage_peak_times: Use raw times and centralize formatting (
f099d00) -
manage_quotas: Integrate dateHelper & collapse in UI (
63b1782) -
manage_schedules: DateHelper for peak pickers & validation (
348329b) -
search-availability: Use select pickers for time inputs (
a87100a)
Testing
-
Allow unit tests to be run without setup (
d1221ff) -
Prevent flaky tests caused by midnight boundary issues (
c004670) -
Update AuthenticationWebServiceTest to expect response codes (
9c690f6) -
auth: Add comprehensive tests for authentication plugin configuration loading and validation (
5522764) -
config: Changed expected test values to reflect intended behavior of expecting a default value (
9f253ef) -
timezone: Replace deprecated US/* timezones with IANA equivalents (
8e7645b)
Detailed Changes: v4.0.0...v4.1.0