Table of Contents
VuFind® Newsletter: March, 2024
Development Highlights and Project News
Development Progress
At the March 5, 2024 Community Call, the release date for VuFind® 10.0 was discussed. While an exact date has not been scheduled yet, a late spring/early summer target is likely. The next call will include discussion of whether to set a May or June date for the release.
There are two major lines of development that need to be completed before the release can be made, both aimed at “future-proofing” the project and eliminating outdated components: the first is completing the Bootstrap 5 theme, which will allow the project to move past some old versions of front end dependencies; the second is beginning to refactor database code and introduce interfaces so that significant incremental progress can be made toward the eventual replacement of Laminas\Db with Doctrine, a necessary step due to the lack of ongoing support for the Laminas\Db library. Significant progress was made on both of these threads during March, and more work will be completed in April.
In addition to maintenance tasks and assorted bug fixes, March development also included the introduction of some new features: support for citation searching in the Primo backend; support for deeply-nested static content pages; and support for multi-page selection in user favorites.
Project Management Committee Report
At their March meeting, the Project Management Committee continued to make progress on documentation maintenance planning and conference planning. The group also appointed a new treasurer, Craig Murdoch, to fill the position vacated by Hajo Seng. (Thanks to both Hajo and Craig for their service to the project).
Conference News
The call for papers is open for WOLFcon 2024, taking place September 24-26 at the University of London. The conference will include VuFind®-related sessions, and you are encouraged to submit your own proposals if you plan to attend. PMC Community Manager Demian Katz will be present and would be happy to meet with and talk to other VuFind® users at the conference; please feel free to reach out to him.
To accommodate the largest possible audience, planning is also underway for a separate VuFind® Summit (including both in-person and free online components) to follow and complement WOLFcon; more information will be shared on this shortly.
Recently Completed / Resolved Issues
The following items were completed in the past month and will be included in release 9.1.2:
- Add library card support to switch_db_hash command: #3476
- Encrypt existing library cards during security setup: #3475
- Fix conditional filter listener to check the backend id: #3513
- Fix date range handling and date sanitization for leap years: #3465
- Fix date validation in OAI server: #3481
- Improve example account config in EDS.ini: #3524
- Sierra: Display all fines: #3477
The following items were completed in the past month and will be included in release 10.0:
- Add account menu to catalog login screens: VUFIND-1583 / #3458
- Add an option to run psql without sudo in Phing: #3508
- Add option to override the theme used for Mink tests: #3493
- Add support for OpenID Connect Discovery: #3536
- Assorted controller code simplifications: #3504
- Begin adding getters and setters to UserEntityInterface: #3503
- Clean up record collection factories: VUFIND-1628 / #3528
- Convert DOM events to stored functions: #3361
- Create asset pipeline cache directory on demand: #3525
- Deprecate isLoggedIn() method: #3459
- Double check for “PHP version 7” in file comments: VUFIND-1612
- Eliminate setlocale() call from Bootstrapper: VUFIND-1618 / #3526
- Fix check for OpenURL resolver URL: #3474
- Fix displaying of explain after paging and improve looks: #3495
- Fix: don't override toggleAttrs in menu-button: #3381
- Fix favorites search with PostgreSQL: #3507
- Fix illegal token value in js-translations.phtml: #3470
- Fix layout when sidebar is empty: #3460
- Fix PHP doc: #3518
- Fix sandal search tabs hover color in search results etc.: #3482
- Fix typos: #3473
- FOLIO: make holdingsRecordId and itemID optional in getMyHoldings: #3451
- HeadLink helper: Fix invalid types in doc comments: #3455
- Implement text domain fallback in translator: #3471
- Improve ILS error handling during installation process: VUFIND-1639 / #3529
- Introduce UserService to centralize logic: #3485
- Make custom status handling in NoILS driver more robust: #3532
- Move password encryption handling to ILSAuthenticator: #3537
- Move tag CRUD operations out of record drivers: #3509
- Multi page selection in favorite list: #3142
- Pop up holdings catalog login in lightbox: #3469
- Refactor the setting of collectionID: #3445
- Remove deprecations from 9.x: VUFIND-1584 / #3472
- Rename offcanvas to vufind-offcanvas to avoid clash with Bootstrap 5: #3484
- Replace deprecated Interop container interfaces in factories: #3464
- Sandal: Fix wonky focus highlight in the search field: #3483
- Sandal: Move tabs back up, tweak paddings and margins of searchbox: #3453
- Sandal theme: Fix style on facet more/less button: #3487
- Standardize event namespace for search backend: VUFIND-1547 / #3497
- String type related fixes: #3531
- Tweak add tag button and the look of tags: #3530
- Updated commonDocReady from jquery to vanilla javascript: #3516
- Updated dependencies: #3488, #3491, #3498, #3505, #3510, #3522, #3523, #3527, vufindcode#15, vufinddate#11, vufindharvest#21, vufindhttp#27, vufind-marc#12
- Upgrade deprecated GitHub Actions tasks: #3511
- Upgrade to Solr 9.5.0: #3480
- Use annotations for forward-compatibility with Symfony/Console 7: #3490, vufindharvest#19
- Use ::class instead of hard-coded class strings: #3517
- Use components and icon helper with offcanvas, fix issues: #3521
- Use new database entity and service interfaces in OAuth2 classes: #3499
- VuFindHarvest: Avoid passing null to strtolower(): vufindharvest#20
- XCNCIP2: enforce itemUseRestrictionTypesForStatus to be array: #3454
- Warn about file ownership in browscap console tool: #3506
These pull requests have been (or will be) superseded by other work and are no longer needed; they were closed without being merged:
New Issues
The following items were reported / begun in the past month, but are not yet completed:
Code in Progress
- Add and use VuFind\Db\Service\TagServiceInterface: #3539
- Add more database entity interfaces: #3541
- Add test to demonstrate broken combined AJAX DOI functionality: #3534
- Clarify language and menu interface for saved items: VUFIND-1592 / #3489
- CSV importer: Inject dependencies into static callback classes: #3515
- Fix bug: trigger Print not firing: VUFIND-1676 / #3512
- Improve table layout and text wrapping on narrow screens: #3542
- Make user field for oauth subject configurable: #3486
- Remove redundant language codes; use aliases: #3494
Issue Report / Discussion Only
- Add setting to include extra URLs in sitemap index: VUFIND-1678
- Implement Javascript unit tests: VUFIND-1666
- Modal close button doesn't want to let focus go: VUFIND-1667
- Moravian Library Accessibility Report (Progress Tracking): VUFIND-1668 (supersedes #3039 and includes several sub-tasks)
- Page length settings should persist regardless of how the user initiates their next search: VUFIND-1665
- Prepare for laminas-view v3: VUFIND-1677
- Show count of saved items in account menu: VUFIND-1674
- Top menus are formatted strangely in Sandal in narrow-window view: VUFIND-1675
Active Issues
The following items saw significant progress / activity during the past month:
- Add bootstrap5 theme: #3222
- Add Notifications CMS functionality: #3103
- Adding the option to make html elements sticky: #3226
- Convert from Laminas\Db to Doctrine: #2233
- Display the date and destination of transitting items: #3312
- Open ID Connect implementation: #1230
- Replace jumpMenu controls with menu-button components: #2814
- Use Psalm for static code analysis: #1764