This major release brings a range of new improvements and bug fixes as well as compatibility with current versions of PHP (up to PHP 8.4) and MySQL 8.x.
What's Changed
- NOJIRA - Fix trimming of original value in
transformValuesUsingWorksheet
by @kehh in #253 - Bug solving in source id restrictions for browsing and accessing object through URL by @albertocpbranco in #256
- PROV-1297 New configuration sync feature by @stefankeidel in #257
- PROV-1727 Add global view for change log by @stefankeidel in #259
- NOJIRA Fix expression parser evaluation when running import scripts by @kehh in #260
- NOJIRA Add trim and join support to expression parser by @kehh in #262
- Minor changes to localize strings. by @yelto in #264
- Advanced Search forms were not being saved, adding some quotes seems to satisfy jQuery by @yelto in #265
- Correct the path for the fonts, from din/ to fonts/ in error.css by @yelto in #266
- NOJIRA Fix Search by sets widget by @kehh in #269
- Fix DOCX export in PHP7 by @kehh in #268
- i18n small adjustments. by @yelto in #270
- Add hidden field advanced search form bundle by @kehh in #271
- Fix: make CSVDelimitedDataReader formats coherent with caUtils import-data help message by @brunetton in #272
- Fix: Fr translation mistake by @brunetton in #278
- Tiny i18n _t() additions by @yelto in #279
- PROV-1960 Add notice when list element not found and not created due … by @brunetton in #280
- Prov 1962: make non valid json in option a fatal error for mapping import + fix: no warnings while importing mapping from console by @brunetton in #283
- NOJIRA Minor: add quotation marks around refineries values in logs by @brunetton in #284
- PROV-1962: add json format error for options column in mapping file... by @brunetton in #285
- Wrap a few messages in _t() by @yelto in #292
- More _t() for UI messages by @yelto in #294
- More tiny i18n fixes by @yelto in #295
- More i18n message fixes by @yelto in #296
- PROV-2146 Added space to generate correct HTML when adding attributes by @yelto in #297
- NOJIRA Include list item type and settings in profile export. by @kehh in #301
- NOJIRA Add sourceLevelAccessControl to configuration exporter. by @kehh in #300
- Support SSL by detection rather than global.conf by @kehh in #303
- NOJIRA Support IPv6 in all
ip_addr
columns. by @kehh in #321 - NOJIRA Add exit codes to CLI tools. by @kehh in #323
- Adding new customizable InformationService for SPARQL queries, Wikida… by @chirale in #333
- NOJIRA Don't disable indexes in primary tables when reindexing content. by @kehh in #337
- NOJIRA make
allDescendants
work for .children within aunit
. by @kehh in #338 - Fix single table indexing for ElasticSearch 5.x by @kehh in #339
- add existing media representation by @naeemmuhammad in #342
- Add "Default Dashboard" Button by @bruceklotz in #346
- update MALHM by @alexandradm in #352
- PROV-2724 Propagate dryRun to data importer by @miceno in #361
- PROV-2423 Propagate locale from mapping by @miceno in #362
- PROV-2795 Dates are shown on the wrong locale by @miceno in #366
- NOJIRA Add a special source for current date. by @miceno in #371
- Allow logging on reprocess media by @miceno in #372
- NOJIRA Add a new command to list tasks on the queue. by @miceno in #374
- NOJIRA Add missing checks for Mesh external application. by @miceno in #376
- NOJIRA Show detected external PDF applications. by @miceno in #377
- Harden/ci by @miceno in #378
- Add editorconfig configuration, based on Wordpress with very few tweaks. by @miceno in #364
- Add logging to
exec
calls by @miceno in #379 - BUG Media viewer does not use image tile size. by @miceno in #391
- Show max upload limit on every file upload. by @miceno in #390
- Improve track widget available information by @miceno in #388
- FIX Use log level from the command line options, not from the class. by @miceno in #395
- FIX Remove duplicate for
lifespan
intrinsic attribute. by @miceno in #396 - NOJIRA Add configuration to allow setting curl connection timeout. by @miceno in #399
- Mark tests as incomplete when web service lookup fails. by @miceno in #404
- ISSUE #401 Update editor_ui screens cache on screen delete. by @miceno in #405
- Refactor common code in Getty Information Service code. by @miceno in #402
- Force loading a clean setup from the dist file. by @miceno in #403
- Add tests for PHPSpreadsheet new code by @miceno in #406
- Fix for broken tests and update profile schema. by @miceno in #407
- Allow additional arguments for ImageMagick external applications by @miceno in #408
- Install PHP Redis on Vagrant machine. by @miceno in #411
- Small refactor on caUtils, solve some typos and show global options by @miceno in #410
- Allow caching test env for faster test execution by @miceno in #380
- Improve coverage of tests for import helpers. by @miceno in #413
- Remove short alias on global options to avoid conflicts on subcommands. by @miceno in #414
- Several fixes on import media by @miceno in #415
- FIX Several typos on import media command and add new TODOs. by @miceno in #417
- Update Spanish translation. by @miceno in #418
- Remove empty folder. by @miceno in #419
- FIX Fuzzy search caused infinity recursion by @miceno in #420
- Solve some typos on SQLSearch by @miceno in #423
- Compact time progress format. by @miceno in #428
- FIX Add polyfill for array_key_first by @miceno in #426
- FIX Show hidden "run another import" link after an import with long debug messages. by @miceno in #431
- #427 Allow configuring which controllers will not use compression. by @miceno in #430
- FIX undefined variable in refactored code by @miceno in #433
- PR-433 Fix it again by @SethKaufman in #435
- PROV-2868 Pass converted array by @SethKaufman in #436
- PROV-2889 Prevent warning when mapping to intrinsic by checking for n… by @SethKaufman in #437
- PROV-2890 Allow *_enforce_strict_type_hierarchy to operate when top-l… by @SethKaufman in #438
- NOJIRA Use gettext for log messages, otherwise values aren't subtitut… by @SethKaufman in #439
- PROV-2891 Make list non-clickable while loading by @SethKaufman in #440
- Expand logging; correct option description by @SethKaufman in #442
- PROV-2893 Use "@@" as separator, allowing ":" to be a legal character… by @SethKaufman in #443
- NOJIRA Restore parameterized length limit by @SethKaufman in #444
- PROV-2866 prevent double application of log entries when pulling miss… by @SethKaufman in #446
- PROV-2898 Use correct value for display by @SethKaufman in #448
- PROV-2896 Don't show internal "searches" facet in facet list; don't s… by @SethKaufman in #449
- PROV-2899 Implement dontInferQualifiedRanges datetime.conf option to … by @SethKaufman in #450
- PROV-2901 Extract metadata for PDFs; remove extra metadata extraction by @SethKaufman in #452
- Merge representation bundle revamp feature by @SethKaufman in #454
- PROV-2899 Adjust test config by @SethKaufman in #455
- Merge external export framework feature by @SethKaufman in #456
- PROV-2902 Implement representation reuse by @SethKaufman in #457
- PROV-2906 Make get() behavior with modified and lastModified consiste… by @collectiveaccess in #459
- NOJIRA compatibility changes for wkhtmltopdf 0.12.6 by @SethKaufman in #460
- PROV-2908 Make boolean operators in expression syntax case-insensitive by @SethKaufman in #461
- PROV-2908 Expand tests by @SethKaufman in #462
- PROV-2793 Various fixes for "return to home location" feature by @SethKaufman in #463
- PROV-2910, PROV-2911 Improvements to expression parser by @SethKaufman in #464
- NOJIRA Ensure container sub-fields are named properly on forms by @SethKaufman in #465
- NOJIRA make error messages more descriptive by @SethKaufman in #466
- PROV-2793 Oops by @SethKaufman in #467
- NOJIRA Pass through options for display by @SethKaufman in #468
- NOJIRA Set lot pref label when set in mapping by @SethKaufman in #469
- PROV-2793 formatting changes by @SethKaufman in #470
- PROV-2914 Add new importer options for "parents" by @SethKaufman in #471
- PROV-2915 Make editAttributes() consider null as target value of change by @SethKaufman in #472
- NOJIRA Accept log option as defined in function documentation by @SethKaufman in #473
- Ignore common invalid default value for basePath; expand MediaInfo importer to handle sidecar files by @SethKaufman in #475
- PROV-2916 Add numPerPage option by @SethKaufman in #476
- PROV-2914 Add PARENT_IDNO tag support to generic splitter by @SethKaufman in #477
- PROV-2917 Use user preferred locale when parsing dates by @SethKaufman in #478
- NOJIRA Test params to value to avoid cache errors by @SethKaufman in #479
- NOJIRA Fix for broken delimited data parsing of data with mac line breaks by @SethKaufman in #480
- NOJIRA increase field size to avoid spacing issues by @SethKaufman in #481
- PROV-2918 Honor idno duplication preference by @SethKaufman in #482
- PROV-2919 Use EXIFTOOL to extract metadata from Office files by @SethKaufman in #483
- PROV-2920 Do full snapshot for ca_attributes and ca_attribute_values by @SethKaufman in #484
- PROV-2921 Add yearOnly date format by @SethKaufman in #485
- PROV-2902 Catch case where reused relationship already exists and skip by @SethKaufman in #486
- PROV-2923 Add support for ^value_raw tag, making possible evaluation … by @SethKaufman in #487
- PROV-2924 Fix browse facet assessment issues by @SethKaufman in #488
- PROV-2869 Add detailed field-level logging by @SethKaufman in #490
- NOJIRA Change search indexing load increment size to 100 by @SethKaufman in #491
- PROV-2869 Improve detailed logging by @SethKaufman in #492
- PROV-2927 Set rank starting with 1 by @SethKaufman in #493
- PROV-2869 Improve detailed logging content; use CSV as detailed log format by @SethKaufman in #494
- PROV-2931 Add PDF.js-based PDF viewer by @SethKaufman in #495
- NOJIRA Smaller default for max_indexing_buffer_size (5000) by @SethKaufman in #496
- PROV-2929, PROV-2925 Fix field saving issues with revised ca_object_representations bundle by @SethKaufman in #497
- NOJIRA restore setting of system guid constant by @SethKaufman in #498
- NOJIRA When rewriting searches only apply rules configured for the current table by @SethKaufman in #499
- PROV-2915 improve null handling by @SethKaufman in #500
- Fix minor caUtils issues by @SethKaufman in #501
- NOJIRA remove additional redundant quiet opt declarations by @SethKaufman in #502
- PROV-2892 Improvements to external export system by @SethKaufman in #503
- PROV-2931 Remove hardcoded path in PDF.js support by @SethKaufman in #504
- PROV-2934 Extend SearchResult::get() syntax to allow convenient retur… by @SethKaufman in #505
- PROV-2935 Add new app.conf setting for default display templates for editor relationship bundles by @SethKaufman in #506
- PROV-2869 Use instance, not static by @SethKaufman in #507
- PROV-2937 Add stripTags option to remove HTML from export output by @SethKaufman in #510
- NOJIRA fix warnings resulting from sizeof being executed on null values. by @kehh in #509
- PROV-2866 Improve data replication system by @SethKaufman in #511
- NOJIRA Replace glob call with Zend\Stdlib\Glob::glob by @kehh in #508
- NOJIRA Add CA_DONT_UPDATE_HISTORY_TRACKING_CACHE flag by @SethKaufman in #512
- PROV-2892 Add option to skip records without media (CTDA requirement) by @SethKaufman in #513
- PROV-2938 Urls with trailing double slash ("//") can cause crashes by @SethKaufman in #514
- NOJIRA initialize system guid by @SethKaufman in #515
- PROV-2788 Add missing quote around rank field by @SethKaufman in #516
- NOJIRA Add "start" option to find(); apply start and limit at query level by @SethKaufman in #517
- PROV-2939 Resolve relationship "count" indexing issues by @SethKaufman in #518
- NOJIRA fix typo that breaks BaseModel::get() "returnPath" option for media by @SethKaufman in #519
- NOJIRA force use of media paths rather than URLs when "forReport" option is set by @SethKaufman in #520
- Misc import fixes by @SethKaufman in #521
- NOJIRA add PDF extension to downloads by @SethKaufman in #522
- PROV-2940 Don't ignore the ignorers by @SethKaufman in #523
- Initial minimal implementation of Munich media upload UI by @SethKaufman in #524
- PROV-2912 Add css by @SethKaufman in #525
- PROV-2935 Make storage location default show full hierarchy by default by @SethKaufman in #526
- NOJIRA Fix item tag issues by @SethKaufman in #527
- PROV-2890 Sub-types in menus don't show below first enabled type by @SethKaufman in #528
- PROV-2944 Don't cut off menu when near right hand side of window by @SethKaufman in #531
- PROV-2945 Implement options for skipping mappings/groups/rows when placeholder values are empty by @SethKaufman in #532
- PROV-2946, PROV-2947 Fix various user generated content management UI issues by @SethKaufman in #534
- PROV-2946, PROV-2947 Fixes for user generated content management UI by @SethKaufman in #535
- Update expected description for wikipedia test. by @miceno in #536
- NOJIRA prevent warning by @SethKaufman in #537
- NOJIRA Don't wipe the ES index on profile updates, just write the config changes. by @kehh in #539
- Clear ElasticSearch mapping when saving metadata elements. by @kehh in #538
- PROV-2827, PROV-2892 Various fixes by @SethKaufman in #541
- TD-54 Add label text to media overlay "close" icon by @SethKaufman in #542
- PROV-2950 Add filesize metadata data type by @SethKaufman in #543
- Eliminate extraneous string in file header (cosmetic) by @yelto in #546
- Correct functional typo in ca_guids.php by @yelto in #545
- Remove duplicated code in BrowseEngine.php by @yelto in #544
- NOJIRA Add Color to the installation profile schema. by @kehh in #547
- NOJIRA add Filesize to schema. by @kehh in #549
- PROV-2951 "Before" dates not working with ElasticSearch by @SethKaufman in #550
- Make REST API session lifetime configurable by @artturimatias in #551
- PROV-2951 by @SethKaufman in #552
- PROV-2954 Implement "template" row type for data exporter; fix issue that may prevent live update of editor bundles by @SethKaufman in #553
- PROV-2914 idno normalization should use default value for element when specified by @SethKaufman in #555
- PROV-2827 Sort full set of relations by @SethKaufman in #556
- PROV-2955 Escape chars when stripCDATA is set by @SethKaufman in #557
- PROV-2892 Strip problem chars from file names by @SethKaufman in #558
- NOJIRA Allow
_guid
values to be returned in display templates. by @kehh in #559 - fix PR #551 REST api session lifetime by @artturimatias in #562
- NOJIRA don't create list items when they are marked as deleted in the profile by @kehh in #560
- NOJIRA Fix ALA NSL information service. by @kehh in #563
- PROV-2935, PROV-2956, PROV-2951 Display config update, getID3 update, ElasticSearch 5.x support by @SethKaufman in #564
- PROV-2957 Implement BETWEEN operator in find() by @SethKaufman in #565
- PROV-2860 Strip file extensions off of generated download file names by @SethKaufman in #566
- NOJIRA prevent warnings; slightly improve logging by @SethKaufman in #567
- Tolerate invalid dependent value template tags by @SethKaufman in #570
- PROV-2912 Add functionality by @SethKaufman in #571
- PROV-2912 by @SethKaufman in #573
- PROV-2912 Cleanup by @SethKaufman in #574
- PROV-2959,2960, 2961, 2962, 2965 Various bug fixes by @SethKaufman in #575
- TD-72 Ad 'inHomeLocation' facet to browse engine by @SethKaufman in #576
- PROV-2887 Patch to properly handle 180 degree orientation flip by @SethKaufman in #577
- Fix broken wikipedia test by @miceno in #579
- PR-572 Anchor lookup lists by @SethKaufman in #580
- NOJIRA add ability to accept direct LCSH urls by @SethKaufman in #581
- Refactor to use AAT query mocks by @miceno in #582
- Fix a missing closing comment on the schema by @miceno in #584
- PROV-2967 Normalize BCE dates correctly by @SethKaufman in #585
- Dev/geonames warning by @SethKaufman in #586
- PROV-2976 Use attribute mappings for Shibboleth authentication by @SethKaufman in #587
- PROV-2977 by @SethKaufman in #588
- PROV-2978 Don't expand hierarchically by @SethKaufman in #589
- PROV-2979 add strip newlines option to data exporter by @SethKaufman in #590
- PROV-2983 Return full identifier by @SethKaufman in #594
- PROV-2982 Avoid SQL error when querying on numeric fields by @SethKaufman in #593
- PROV-2981 When get()'ing values for media metadata attributes, if no … by @SethKaufman in #592
- PROV-2980 Excel-format download of search/browse result data should n… by @SethKaufman in #591
- Use ZendFramework from Composer by @miceno in #583
- PROV-2985 Alter matching behavior to use default media prefix and to fall back to simple matching by @SethKaufman in #595
- PROV-2987 Use placement_id as identifier for column in spreadsheet editor by @SethKaufman in #596
- PROV-2988 Add IDNO_DELIMITERS search indexing option by @SethKaufman in #597
- PROV-2990 New "add" and "replace" options for data import mappings by @SethKaufman in #599
- PROV-2991 Default user_id in replicated record to service user when no matching user existing on target by @SethKaufman in #600
- PROV-2989 Authority metadata element lookups broken in advanced search by @SethKaufman in #598
- NOJIRA Support SSL for ElasticSearch hosts. by @kehh in #569
- PROV-2992 Apply unit length parameter for units when relative to refs other than relationships by @SethKaufman in #602
- NOJIRA Don't spam ElasticSearch checking for the record's existence for every single field. by @kehh in #601
- PR-561 Add index and task queue; merge in pending schema changs from media uploader UI by @SethKaufman in #603
- PR-341 Add public sets to list subject to user preference by @SethKaufman in #605
- PROV-2993 Remove an extra "r" by @SethKaufman in #606
- NOJIRA Allow filterTypes option to be comma or semicolon separated list by @SethKaufman in #607
- PROV-2994 Add object representations to quick search by @SethKaufman in #609
- PROV-2996, PROV-2997 Representation bundle fixes by @SethKaufman in #610
- PROV-2999 Fix for distorted derivative images when using Gmagick and EXIF orientation tag is set by @SethKaufman in #611
- PROV-3002 Update mimetype used for WAV by @SethKaufman in #612
- PAWX-188 Add Pawtucket changes to address facet visibility issues when MULTIPLE facets are present. by @SethKaufman in #614
- PROV-2969 Add support for year/month ISO ranges by @SethKaufman in #615
- PROV-2971 Make all dates display as YYYY.MM.DD by @SethKaufman in #616
- PROV-2974 Add existing record policies that operate on CollectiveAccess primary key ids by @SethKaufman in #617
- PROV-3002 Update mime type for WAV files by @SethKaufman in #618
- PROV-3003 Object representation editor bundle "download all" omits files by @SethKaufman in #619
- PROV-3004, PROV-3005 Library fixes by @SethKaufman in #620
- Add abilityto disable mediaDirRecursiveExpensiveCheck by @vatoz in #621
- Fix to allow ca_lists::getListCodes() to tolerate cache drop-outs by @SethKaufman in #623
- NOJIRA Set place hierarchy to default when no parent_id is set for place record by @SethKaufman in #622
- PROV-3012 "Could not add parent collection to object" error thrown when saving object within collection by @SethKaufman in #624
- PROV-3013 Editor delete "remap" option includes deleted child items in counts by @SethKaufman in #625
- PROV-3009 Add option to omit specific access_statuses values for tables by @SethKaufman in #626
- NOJIRA Set secure and httponly flags on session cookies. by @SethKaufman in #627
- NOJIRA update old tour editor code to work with current libraries by @SethKaufman in #628
- PROV-3021 Add formatting controls for set editor export file names by @SethKaufman in #632
- PROV-3019 Add support for domPDF 0.8.6 by @SethKaufman in #633
- PROV-3018 Allow ingest of media representations via service-specific urls by @SethKaufman in #635
- PROV-3022 Use correct path when attempting to run ImageMagick by @SethKaufman in #636
- PROV-2922 Add ability to create a placeholder for object representation record by @SethKaufman in #638
- PROV-2984 Implement configurable summary download names by @SethKaufman in #639
- PROV-2970 Render yes/no checkbox on single line by @SethKaufman in #640
- PROV-2975 Allow identifiers to be used for setSpecs by @SethKaufman in #641
- NOJIRA add "dateless" support to storage locations by @SethKaufman in #642
- PROV-3016 enhance deaccession bundle by @SethKaufman in #644
- PROV-3006 Add "filters" option to search indexer allowing filtering of indexed content on simple field criteria by @SethKaufman in #645
- PROV-2973 Implement download all functionality for media metadata elements by @SethKaufman in #646
- PROV-2931 Generalize pdf.js support to view attribute and site page media by @SethKaufman in #647
- PROV-2989 Fix regression that would cause authority lookups to fail to save in editing UI by @SethKaufman in #648
- PROV-3026 Restore VTT and SRT support by @SethKaufman in #649
- NOJIRA Remove un-needed link call by @SethKaufman in #650
- Upgrade fontawesome to v5, with v4 shims by @kehh in #653
- validate file size when uploading by @kehh in #652
- NOJIRA Fix metadata element usage counts to reflect changes in bundle… by @kehh in #651
- NOJIRA Fix CLITools errors by @SethKaufman in #654
- NOJIRA misc fixes by @SethKaufman in #656
- PROV-3033 Fix paging when multiple bundles are on the same screen by @SethKaufman in #655
- PROV-3036 Add support for default controller actions by @SethKaufman in #657
- PROV-3037 "from" support broken for some OAI-PMH provider invocations by @SethKaufman in #658
- PROV-3035 Extend SimpleService to only return records created or modified after a specific change log log_id by @SethKaufman in #659
- PROV-3038 Make blank_label_text configurable on a per-table basis by @SethKaufman in #660
- PROV-3940 Add support for GlobalNames taxonomy resolver by @SethKaufman in #663