LORIS Release v25.0.0
What's Changed
- [EEG] Database Architecture for HED Tags by @jesscall in #8036
- [dashboard][Study Progression] Add tooltip visualising of Total in line chart by @satvik-tha-god in #8123
- [candidate_list] Remove meaningless Latest_Visit_Status column by @driusan in #7759
- [publication] Add columns to publications by @pierre-p-s in #7361
- [Core] Remove duplicated getActiveModules function by @driusan in #7446
- [Form.js] No required min/max for numeric elements by @driusan in #8197
- [new_profile] Use API for candidate creation and swal for success by @driusan in #7755
- [EEG Browser] Add ability to view annotations in event panel and overlaid on signal viewer by @laemtl in #8235
- [login] Add code sanitizer before dangerouslySetInnerHTML by @CamilleBeau in #7491
- [EEG Browser] Annotations: Add new and HED tags by @laemtl in #8236
- [dashboard] Use user site permissions for dashboard charts by @CamilleBeau in #8132
- QueryEngine interface by @driusan in #8215
- [DB schema] UNIQUE Project name by @xlecours in #8243
- [instrument_builder] ADDED: field warnings for maximum length in Instrument Builder module by @satvik-tha-god in #8112
- Add PHP 8.2 support, drop 8.0 support by @driusan in #8264
- [bvl_feedback][dashboard] Add project/site specs to widget by @CamilleBeau in #7848
- [Core] Allow parallel handling of requests from same session by @driusan in #7445
- [LorisInstance] add getModule function by @driusan in #8221
- [dataquery] Define new swagger schema for data query API by @driusan in #8219
- [new_timepoint] only show null language option when multiple exist by @CamilleBeau in #8253
- Add CITATION.cff file by @driusan in #7513
- [candidate_parameters] Add date restriction for consent withdrawal by @zaliqarosli in #8298
- [Modules] Replace Module->getDataDictionary with Module QueryEngine dictionary. by @driusan in #8260
- [survey_accounts] Clean up after Email col removed by @zaliqarosli in #8313
- [mri_violations] Convert module to React and update UI by @driusan in #7473
- [Instrument] Remove exception from NDB_BVL_Instrument::factory by @driusan in #8290
- [core] Remove \Module::factory, update remaining instances to $loris->getModule() by @driusan in #8287
- [Core] Remove Database::singleton function by @driusan in #8427
- Make the number of days since last login before making a user inactive a config by @cmadjar in #8416
- [instruments] Display Candidate Age at Death if postMortem is true by @zaliqarosli in #8362
- [session] Add date of status change to session table by @CamilleBeau in #8350
- [candidate_parameters] Allow clearing of consent status by @CamilleBeau in #7772
- [instruments/instrument_manager] Migrate instrument permissions from config.xml to database by @driusan in #8302
- [Form.js] Add support for step to NumericElement by @driusan in #8413
- [Form.js] Add placeholder option for TextareaElement by @driusan in #8412
- [Form.js] Add DateTimeElement wrapper by @driusan in #8410
- [Form.js] Add support for vertical Radio button groups by @driusan in #8414
- [DQT] add delete feature by @kongtiaowang in #8078
- [jsx/Panel.js] Improved Panel component with optional multiple views by @maltheism in #8299
- [Issue tracker] change userID to full name by @regisoc in #8451
- [dashboard/statistics] Reactification by @laemtl in #8476
- [issue_tracker] Display attachments by @CamilleBeau in #8346
- [API] Sites endpoint by @xlecours in #7771
- [EEG] EEG Acquisition form by @regisoc in #8443
- [Document Repository] Upload multiple files at once by @jeffersoncasimir in #8289
- [EEG] EEG uploader module by @laemtl in #8409
- [conflict_resolver/candidate_profile] Fix loading of conflict widget by @driusan in #8569
- [media] changed permision check to media_read to enable media downloads by @KLaFleur in #8671
- [EEG Browser] Addition of new changes to signal plot of electrophysiology_browser module from EEGNet by @jeffersoncasimir in #8415
- [Imaging Browser] Fix caveat bug not showing when there are pipeline protocol violations by @cmadjar in #8661
- [MRI violations] Fix multiple rows for file protocol violations not resolvable by @cmadjar in #8662
- [candidate] Allow dob format Y-m by @CamilleBeau in #8648
- [EEG Uploader] Handle Checksum value by @laemtl in #8729
- [module_manager] Visibility of 'My Preferences' in menu reflects state by @jeffersoncasimir in #8726
- [new_profile] Fix date requirements and formats with EDC by @charlottesce in #8767
- [new_profile] DateElement in 'Y-m' Fix by @skarya22 in #8775
- [Timepoint List] Hide visits that are from user unaffiliated projects by @skarya22 in #8723
- [data_release] Permission not added to unversioned files if version specified by @charlottesce in #8768
- [battery_manager] use visit controller to fetch visit list by @ridz1208 in #8485
- [Core] PSCID uniqueness by @xlecours in #8411
New Contributors
- @satvik-tha-god made their first contribution in #8146
- @jeffersoncasimir made their first contribution in #8223
- @violetwei made their first contribution in #8321
- @GeorgeMurad made their first contribution in #8278
- @KLaFleur made their first contribution in #8671
- @charlottesce made their first contribution in #8720
- @skarya22 made their first contribution in #8724
Full Changelog: v24.1.4...v25.0.0
Notes For Existing Projects
- API: Modified in v0.0.4-dev the candidate instrument data format returned by a GET request or provided as the body of a PUT/PATCH request. The values of all fields are now defined by the
Data
key instead of$InstrumentName
(PR #7857)
Notes For Developers
- Require jsodc comments to have correct
@return
and@param
values in javascript (PR #8266) - Disable ESLint on build (prod instances) (PR #8229)
Upgrade Process
24.1.x to 25
-
Get the 25.0.0 source code
-
Source the
SQL/Release_patches/24.1_To_25.0_upgrade.sql
SQL file into your database. -
Run the following scripts:
php tools/configuration_check.php
This script is used to validate the configuration of LORIS. It checks configuration settings and server paths to make sure that the application and underlying architecture are set up to allow LORIS to run properly.php tools/single_use/migrate_instrument_permissions.php
This script migrates instrument permissions from the config.xml to the new database tables that now store them.php tools/single_use/update_violations_resolved_hashes.sql.php
This script is intended for a one-time use only to update the hasing of the violations_resolved table. Not doing so will result in duplication of data in theviolations_resolved
tale when users update a resolution status for a violation.
-
Run
make all
from the LORIS root directory. -
OPTIONAL: Run any cleanup patches in
SQL/Archive/25.0/Cleanup/
-
OPTIONAL: Remove the
<instrumentPermissions>
tag from your config.xml which is no longer used after running the migration script.