Releases: kitodo/kitodo-presentation
Kitodo.Presentation 5.1.0-rc2
Feature Release (Candidate 2)
This release contains new features as well as a security fix.
New Features
- As a result of the 2023 development fund @frank-ulrich-weber updated and extended the Solr support in Kitodo.Presentation introducing support for Apache Solr 9.x, query time field boosting, soft commits for faster indexing, a performance-optimized configuration, scheduler tasks for index maintenance, automated schema changes, and a reworked suggester feature. Please read the documentation on how to migrate from earlier versions.
- The internal document handling was hardened by @beatrycze-volk in order to prevent invalid documents to get indexed and cause problems because of missing mandatory fields. She also added some new CLI commands to ease administrative work. @fschoelzel added generic MIME-type filtering in order to only regard certain file types as valid image formats or download options.
- The experimental support for 3D objects by @beatrycze-volk was extended and finalized by @markusweigelt and is considered an official feature now. Kitodo.Presentation integrates Google's popular open source model-viewer, but also allows for other viewers to be used instead. See the documentation for details on how to set Kitodo.Presentation up for 3D objects.
- As a pre-requisite for a future validation service @markusweigelt added a generic framework for validation using configurable validator middlewares.
- Experimental support for digitized musical sources, multi-document views and multi-level metadata mapping was added by @fraschz, @chrizzor and @haogatyp. This includes rendering musical scores in MEI format using Verovio and allowing to navigate through the document bar by bar. Please keep in mind this is still experimental and most likely quite broken at the moment!
What's Changed
- [BUGFIX] Fix highlighting for words by @beatrycze-volk in #1397
- [BUGFIX] Fix GEO JSON by @beatrycze-volk in #1399
- [BUGFIX] Fix collection search by @beatrycze-volk in #1396
- [BUGFIX] Fix displaying document count in statistics by @beatrycze-volk in #1400
- [MAINTENANCE] Update dependencies by @sebastian-meyer
Full Changelog: v5.1.0-rc1...v5.1.0-rc2
Kitodo.Presentation 5.0.7
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [BUGFIX] Iterate over metadata ids only if there are any metadata sections by @beatrycze-volk in #1356
- [BUGFIX] Fix highlighting for words by @beatrycze-volk in #1397
- [BUGFIX] Fix GEO JSON by @beatrycze-volk in #1399
- [BUGFIX] Fix collection search by @beatrycze-volk in #1396
- [BUGFIX] Fix displaying document count in statistics by @beatrycze-volk in #1400
- [MAINTENANCE] Update dependencies by @sebastian-meyer
Full Changelog: v5.0.6...v5.0.7
Kitodo.Presentation 5.1.0-rc1
Feature Release (Candidate 1)
This release contains new features as well as a security fix.
New Features
- As a result of the 2023 development fund @frank-ulrich-weber updated and extended the Solr support in Kitodo.Presentation introducing support for Apache Solr 9.x, query time field boosting, soft commits for faster indexing, a performance-optimized configuration, scheduler tasks for index maintenance, automated schema changes, and a reworked suggester feature. Please read the documentation on how to migrate from earlier versions.
- The internal document handling was hardened by @beatrycze-volk in order to prevent invalid documents to get indexed and cause problems because of missing mandatory fields. She also added some new CLI commands to ease administrative work. @fschoelzel added generic MIME-type filtering in order to only regard certain file types as valid image formats or download options.
- The experimental support for 3D objects by @beatrycze-volk was extended and finalized by @markusweigelt and is considered an official feature now. Kitodo.Presentation integrates Google's popular open source model-viewer, but also allows for other viewers to be used instead. See the documentation for details on how to set Kitodo.Presentation up for 3D objects.
- As a pre-requisite for a future validation service @markusweigelt added a generic framework for validation using configurable validator middlewares.
- Experimental support for digitized musical sources, multi-document views and multi-level metadata mapping was added by @fraschz, @chrizzor and @haogatyp. This includes rendering musical scores in MEI format using Verovio and allowing to navigate through the document bar by bar. Please keep in mind this is still experimental and most likely quite broken at the moment!
What's Changed
- [FEATURE] Add command for document delete by @beatrycze-volk in #1142
- [FEATURE] Use MODS reader library by @beatrycze-volk in #1194
- [FEATURE] Implement document validation before document is saved to database by @beatrycze-volk in #1149
- [FEATURE] Implement document validation before document is saved to SOLR by @beatrycze-volk in #1158
- [FEATURE] Query time boosting by @frank-ulrich-weber in #1120
- [FEATURE] Scheduler tasks for indexing, reindexing and harvesting of documents by @frank-ulrich-weber in #1119
- [FEATURE] 3D viewers integration by @markusweigelt in #1259
- [FEATURE] Support for musical sources, multi-level metadata and experimental annotations by @sebastian-meyer in #1281
- [FEATURE] Solr 9 compatibility by @frank-ulrich-weber in #1122
- [FEATURE] Support for soft commits and scheduler tasks for index optimisation by @frank-ulrich-weber in #1285
- [FEATURE] Add model download with configurable file group by @markusweigelt in #1287
- [FEATURE] Use Solr suggester component for search hints by @frank-ulrich-weber in #1289
- [FEATURE] Add MIME type filter to ensure only supported image files are downloaded by @fschoelzel in #1319
- [FEATURE] General reusable validation implementation and middleware for validating DOMDocument by @markusweigelt in #1313
- [FEATURE] Implement MIME type filtering for files in Helper class by @fschoelzel in #1338
- [BUGFIX] Iterate over metadata ids only if there are any metadata sections by @beatrycze-volk in #1356
- [BUGFIX] Fix logger for score file groups by @beatrycze-volk in #1358
- [MAINTENANCE] Fix some typos in configuration, documentation and code comments by @stweil in #1360
- [MAINTENANCE] Update requirements documentation by @sebastian-meyer
- [FEATURE] Update schema using Solr Schema API by @frank-ulrich-weber in #1369
- [MAINTENANCE] Update dependencies by @sebastian-meyer
- [SECURITY] Update Symfony components to mitigate security issues by @sebastian-meyer in #1371
Full Changelog: v5.0.6...v5.1.0-rc1
Kitodo.Presentation 5.0.6
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [MAINTENANCE] Fix braces in
Client
classes by @beatrycze-volk in #1351 - [MAINTENANCE] Improve reading of file groups by @beatrycze-volk in #1353
- [BUGFIX] Fix exception when showing metadata of a document by @thomaslow in #1344
- [BUGFIX] Setup
pageStep
if FlexForm is not working by @beatrycze-volk in #1346 - [BUGFIX] Fix errors caused by missing keys in entry array by @beatrycze-volk in #1347
- [RELEASE] Update dependencies and version by @sebastian-meyer
Full Changelog: v5.0.5...v5.0.6
Kitodo.Presentation 5.0.5
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [BUGFIX ] Translation of structure type doesn't work by @BFallert in #1316
- [FEATURE] Add MIME type filter to ensure only supported image files are downloaded by @fschoelzel in #1319
- [BUGFIX] Check if array is not null before checking for the existence of the key by @beatrycze-volk in #1322
- [MAINTENANCE] Sanitize settings from FlexForm by @beatrycze-volk in #1324
- [BUGFIX] Fix broken URL generation for routes in GridView by @csidirop in #1327
- [MAINTENANCE] Upgrade solr-ocrhighlighting to v0.9.1 for Solr 9.7 by @thomaslow in #1335
- [BUGFIX] Initialize
logger
inAbstractController
by @beatrycze-volk in #1340 - [BUGFIX] Fix functional tests for PHP 8+ by @thomaslow in #1332
- [BUGFIX] Call
sanitizeSettings
function inloadDocument
ofAbstractController
by @beatrycze-volk in #1334 - [BUGFIX] Change metadata to keep arrays instead of strings by @beatrycze-volk in #1339
- [MAINTENANCE] Update dependencies and version by @sebastian-meyer
New Contributors
- @thomaslow made their first contributions in #1332 and #1335
Full Changelog: v5.0.4...v5.0.5
Kitodo.Presentation 5.0.4
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [MAINTENANCE] Migrate from
docker-compose
v1 to v2 by @sebastian-meyer in #1295 - [BUGFIX] Children without links should be enclosed in span element with class a by @beatrycze-volk in #1292
- [MAINTENANCE] Update dependencies by @sebastian-meyer
- [BUGFIX] Remove constrain to display pageStep setting by @beatrycze-volk in #1303
- [BUGFIX] Remove redundant useInternalProxy setting from the TS config by @beatrycze-volk in #1304
- [MAINTENANCE] Use camelCase names in navigation configuration by @beatrycze-volk in #1305
- [BUGFIX] Removal of () around link of the Solr OCR Highlighting plugin by @BFallert in #1307
- [BUGFIX] Refactor type casting for pid in SearchInDocument by @fschoelzel in #1309
- [BUGFIX] Document type switch throws error if no document is set by @BFallert in #1310
- [MAINTENANCE] Update dependencies and version by @sebastian-meyer
Full Changelog: v5.0.3...v5.0.4
Kitodo.Presentation 5.0.3
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [MAINTENANCE] Bump phpstan/phpstan from 1.11.1 to 1.11.7 by @dependabot in #1269
- [BUGFIX] Fix SearchInDocument middleware by @beatrycze-volk in #1248
- [BUGFIX] Fix 'Undefined array key
fulltext
' inSolrSearch
by @beatrycze-volk in #1270 - [BUGFIX] Add $field to the facetset otherwise the name of the field does not exist by @chrizzor in #1271
- [BUGFIX] Add fallback for
SC_OPTIONS
for case when it is defined inext_localconf.php
by @beatrycze-volk in #1274 - [MAINTENANCE] Bump vlucas/phpdotenv from 5.6.0 to 5.6.1 by @dependabot in #1282
Full Changelog: v5.0.2...v5.0.3
Kitodo.Presentation 5.0.2
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance.
What's Changed
- [MAINTENANCE] Fix calling registerPlugin with vendor name by @beatrycze-volk in #1243
- [BUGFIX] Adjust setting of the default page by @beatrycze-volk in #1244
- [BUGFIX] Make any date manipulation only if at least one date parameter exists by @beatrycze-volk in #1245
- [BUGFIX] Check if collection key exists by @beatrycze-volk in #1246
- [MAINTENANCE] Adjust cache initialization for arrays by @beatrycze-volk in #1247
- [BUGFIX] Call
setPage()
inMetadataController
to avoid error caused by missing page parameter by @beatrycze-volk in #1249 - [BUGFIX] Fix check for empty metadata array by @beatrycze-volk in #1250
- [BUGFIX] Check if given array element is set and if its value is true by @beatrycze-volk in #1251
- [BUGFIX] Fix condition check for non existent
query
key by @beatrycze-volk in #1253 - [BUGFIX] Fix for potential security risk related to file include by @beatrycze-volk in #1261
- [BUGFIX] Check if language key exists in document metadata array by @beatrycze-volk in #1254
- [MAINTENANCE] Simplify usage of metadata sections by @beatrycze-volk in #1255
- [MAINTENANCE] Adjust variable names to match naming standards by @beatrycze-volk in #1256
- [MAINTENANCE] Get encryption key using configuration manager instead of global access by @beatrycze-volk in #1257
- [MAINTENANCE] Get options for hooks from local configuration instead of global access by @beatrycze-volk in #1258
- [MAINTENANCE] Remove unused functions from
Helper
class by @beatrycze-volk in #1260 - [BUGFIX] Fix params array for searching collections by @beatrycze-volk in #1262
- [BUGFIX] Fix
getEntry()
function inBasketController
by @beatrycze-volk in #1263 - [MAINTENANCE] Increase code readability in TableOfContents controller by @beatrycze-volk in #1265
- [MAINTENANCE] Adjustments and minor fixes in Hooks by @beatrycze-volk in #1266
- [MAINTENANCE] Split
magicGetPhysicalStructure()
function to increase readability by @beatrycze-volk in #1267
Full Changelog: v5.0.1...v5.0.2
Kitodo.Presentation 5.0.1
Bugfix Release
This release contains only bugfixes and refactoring for code maintenance. Please open and save extension configuration once after updating!
What's Changed
- [BUGFIX] Add
languageUid
toindex_name
to make it unique for structures too by @csidirop in #1211 - [BUGFIX] Fix versions in
ext_emconf.php
by @beatrycze-volk in #1214 - [BUGFIX] Restore usage of DataHandler by @beatrycze-volk in #1212
- [MAINTENANCE] Replace Sphinx with new Typo3 documentation variant by @markusweigelt in #1213
- [BUGFIX] Fix cache assignment in
ext_localconf.php
for arrays by @beatrycze-volk in #1216 - [MAINTENANCE] Use nested extension configuration by @beatrycze-volk in #1150
- [MAINTENANCE] Update GitHub workflows by @sebastian-meyer in #1217
- [MAINTENANCE] Run workflows on 5.x branch by @sebastian-meyer in #1218
- [BUGFIX] Fix assignment of
storagePid
and streamlineinitializeRepositories
inBaseCommand
by @beatrycze-volk in #1219 - [MAINTENANCE] Adjust compability with PHP 8 for XML loading by @beatrycze-volk in #1223
- [BUGFIX] Return in
SearchController
if no search parameters exist by @beatrycze-volk in #1221 - [BUGFIX] Fix access to non existent key in array by @beatrycze-volk in #1222
- [BUGFIX] Remove
uid
from serialization by @beatrycze-volk in #1224 - [BUGFIX] Assign snippets only if they exists for given id by @beatrycze-volk #1225
- [MAINTENANCE] Adjust reading of page uid in controller by @beatrycze-volk in #1220
- [BUGFIX] Fix warning for undefined array key page by @beatrycze-volk in #1226
- [BUGFIX] Fix warnings for undefined array keys in
Mods
class by @beatrycze-volk in #1227 - [BUGFIX] Fix warnings for undefined keys in
$settings
array by @beatrycze-volk in #1228 - [BUGFIX] Return null in case when there is no file info for id by @beatrycze-volk in #1229
- [BUGFIX] Fix usage of
$this->settings['basketButton']
by @beatrycze-volk in #1230 - [BUGFIX] Assign document only if there is document for given id by @beatrycze-volk in #1232
- [BUGFIX] Safely get the next and previous page numbers by @beatrycze-volk in #1233
- [BUGFIX] Check if core exists in registry array by @beatrycze-volk in #1234
- [BUGFIX] Fix checking if file group exists by @beatrycze-volk in #1235
- [BUGFIX] Fix check if fulltext file group exists in
ToolboxController
by @beatrycze-volk in #1237 - [BUGFIX] Fix reading
storagePid
fromsettings
array by @beatrycze-volk in #1238 - [BUGFIX] Adjust reindexing command in given range by @beatrycze-volk in #1240
- [BUGFIX] Fix configuration for
forceAbsoluteUrl
property by @beatrycze-volk in #1239 - [BUGFIX] Correctly check if
storagePid
key exists in array by @beatrycze-volk in #1241 - [BUGFIX] Use empty array if wrap for given property doesn't exists by @beatrycze-volk in #1236
New Contributors
- @markusweigelt made their first contribution in #1213
Full Changelog: v5.0.0...v5.0.1
Kitodo.Presentation 5.0.0
Major Release
This release contains security improvements and bugfixes. It is also the first release for the 5.x branch (supporting TYPO3 v10 and v11).
New features include support for ALTO v3 and v4, a reintroduction of in-document search and improvements in newspaper support.
What's Changed
- [MAINTENANCE] TYPO3 v11 compatibility by @chrizzor in #885
- [MAINTENANCE] Bump guzzlehttp/psr7 from 2.4.3 to 2.6.1 by @dependabot in #1016
- [MAINTENANCE] Bump typo3/testing-framework from 6.16.9 to 7.0.4 by @dependabot in #1017
- [BUGFIX] PageRepository class moved to Core by @chrizzor in #1020
- [MAINTENANCE] Change initialization of DocumentRepository in DocumentTypeFunctionProvider by @beatrycze-volk in #960
- [MAINTENANCE] Rename Doc class to AbstractDocument by @beatrycze-volk in #990
- [DOCUMENTATION] Fix documentation for toolbox by @beatrycze-volk in #999
- [BUGFIX] Reassign viewData['requestData'] after page is validated by @beatrycze-volk in #1000
- [BUGFIX] Fix returns in controllers' main functions by @beatrycze-volk in #1001
- [FEATURE] Reimplement SearchInDocument tool to create results' links in backend by @beatrycze-volk in #1002
- [MAINTENANCE] Remove not needed sanitize for double parameter by @beatrycze-volk in #1006
- [MAINTENANCE] Use Middlewares instead of eID scripts by @beatrycze-volk in #1003
- [FEATURE] Use getFileInfo function for getting file url and mime type by @beatrycze-volk in #1008
- Display and index hyphenated words as normal words by @beatrycze-volk in #1009
- [MAINTENANCE] Consistently use namespace declaration and avoid namespaces in code by @beatrycze-volk in #1010
- [MAINTENANCE] Remove {@inheritdoc} from functions by @beatrycze-volk in #1011
- [MAINTENANCE] Unify and improve PHPDocs for classes by @beatrycze-volk in #1012
- [MAINTENANCE] Unify and improve PHPDocs for class properties by @beatrycze-volk in #1013
- [MAINTENANCE] Unify and improve PHPDocs for functions by @beatrycze-volk in #1014
- [MAINTENANCE] Consistently use type declaration for parameters and return values - part 1 by @beatrycze-volk in #1018
- [BUGFIX] Fix calls for Indexer::add function by @beatrycze-volk in #1019
- [BUGFIX] Fix returns in functions of IiifManifest class by @beatrycze-volk in #1027
- [BUGFIX] Fix initialization and checks for rawData in API profiles by @beatrycze-volk in #1025
- [BUGFIX] Fix getting AbstractDocument instance from cache by @beatrycze-volk in #1026
- [BUGFIX] Remove documentRepository from Indexer constructor by @beatrycze-volk in #1028
- [MAINTENANCE] Update MetadataController with AbstractDocument usage by @beatrycze-volk in #1030
- [BUGFIX] Fix call findOneByIndexName by @beatrycze-volk in #1031
- [MAINTENANCE] Adds curly braces around blocks in loops and conditionals by @frank-ulrich-weber in #1032
- [BUGFIX] Fix property type for feCruserId in Collection model by @beatrycze-volk in #1033
- [BUGFIX] Fix namespaces in DocumentTypeFunctionProvider class by @beatrycze-volk in #1034
- [BUGFIX] Remove check for $this->document not null by @beatrycze-volk in #1035
- [BUGFIX] Fix var declaration for PageRender by @beatrycze-volk in #1036
- [BUGFIX] Adds missing semicolons by @frank-ulrich-weber in #1037
- [BUGFIX] Removes unnecessary semicolons by @frank-ulrich-weber in #1038
- [BUGFIX] Change check for empty result set by @beatrycze-volk in #1039
- [SECURITY] Fixes security issues #4526, #4523 und #4522 reported by CodeQL by @frank-ulrich-weber in #1041
- [BUGFIX] Fixes incorrect usage of getFileLocation() instead of getFileInfo() by @frank-ulrich-weber in #1051
- [DOCUMENTATION] Fixes in docs of Solr classes by @beatrycze-volk in #1046
- [MAINTENANCE] Check object properties before using them by @frank-ulrich-weber in #1043
- [MAINTENANCE] Fixes ESLint_camelcase warnings by @frank-ulrich-weber in #1044
- [MAINTENANCE] Fix docs and types in AbstractDocument and its child classes by @beatrycze-volk in #1047
- [MAINTENANCE] Fixes Phpmd CamelCaseParameterName Warnings by @frank-ulrich-weber in #1048
- [MAINTENANCE] Fixes Phpmd CamelCaseMethodName warnings by @frank-ulrich-weber in #1049
- [BUGFIX] Fixes wrong type and missing initialization of $recordId by @frank-ulrich-weber in #1050
- [MAINTENANCE] Consistently use type declaration for parameters and return values - part 2 by @beatrycze-volk in #1045
- [BUGFIX] Fixes incomplete renaming $index_name to $indexName of #1048 by @frank-ulrich-weber in #1058
- [BUGFIX] Type must be string, null given in Classes/Controller/SearchController.php by @BFallert in #1056
- [BUGFIX] Fix getOaiDocumentList() by @beatrycze-volk in #1057
- [BUGFIX] Do not assume that return value from
Extbase\Persistence\Repository::findOneByRecordId
is not null by @csidirop in #1062 - [BUGFIX] Make Toolbox render again by @frank-ulrich-weber in #1024
- [FEATURE] Display ORDERLABEL as year in the search results if the structure type is year by @beatrycze-volk in #1005
- [MAINTENANCE] Introduce usage of PHPStan checks for new PR by @beatrycze-volk in #1052
- [BUGFIX] Rename tool to tools in typoscript setup by @beatrycze-volk in #1063
- [MAINTENANCE] Added format unit tests. by @haogatyp in #894
- [MAINTENANCE] Added additional repository functional test instead of unit tests. by @haogatyp in #895
- [MAINTENANCE] Add ViewHelper functional tests instead of unit tests. by @haogatyp in #902
- [MAINTENANCE] Add test for IiifUrlReader by @oliver-stoehr in #909
- [MAINTENANCE] Complete tests for MetsDocument by @oliver-stoehr in #919
- [BUGFIX] Fix a typo in a condition, {{ insted of { by @BFallert in #1066
- [MAINTENANCE] Convert database XML fixtures into CSV format by @beatrycze-volk in #1064
- [MAINTENANCE] Additional fixes in the test classes by @beatrycze-volk in #1065
- [BUGFIX] Fix call to extension configuration by @csidirop in #1067
- [BUGFIX] Remove assignment of nonexistent $widgetPage by @beatrycze-volk in #1068
- [BUGFIX] Cast
$min
and$max
to int in CalendarController by @beatrycze-volk in #1070 - [BUGFIX] Move assignment of
storagePid
into try block to avoid undefined error by @beatrycze-volk in #1071 - [BUGFIX] Define
$scheme
to avoid undefined warning by @beatrycze-volk in #1072 - [BUGFIX] Remove second
if
checking the same condition by @beatrycze-volk in #1073 - [BUGFIX] Make
useOriginalIiifManifestMetadata
class parameter by @beatrycze-volk in #1074 - [MAINTENANCE] Rename getTitledata to getToplevelMetadata by @beatrycze-volk in #1081
- [MAINTENANCE] Split code in ...