Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[COPN] Loris core base branch based off v25.0.1 #43

Open
wants to merge 90 commits into
base: copn_loris_v25.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
eb88669
[Issue tracker] - fix can't Delete attachment (#8337)
kongtiaowang Mar 28, 2023
334e7f0
[configuration] Fix error messages & saving with null Alias (#8349)
CamilleBeau Apr 5, 2023
40079cb
[webpack] remove util shortcut as it is unusedand causes conflicts (#…
ridz1208 Apr 25, 2023
0ef18d1
[Tools] double_escape_report tool breaking on non-string values (#8484)
ridz1208 Apr 25, 2023
522440d
[issue tracker] Populate reporter dropdown (#8469)
regisoc Apr 26, 2023
914db5f
[examiner] Column for 'Instrument' in certification menu appears narr…
miladheshmati Apr 26, 2023
a228c6a
[tools] support JSON instruments in fix_candidate_age.php (#8286)
CamilleBeau Apr 26, 2023
4c58152
[bvl_feedback] Fix Permissions for Feedback Summary & Thread List (#7…
suzanne-lee Apr 26, 2023
577e3a7
[new_profile/sex] Remove strtolower() and force uppercase (#8633)
ridz1208 May 2, 2023
d7e1de1
[NDB_BVL_Feedback] Fixing 500 error on instrument list page (#8694)
AlexandraLivadas May 30, 2023
d0cf5e0
[Login] Case insensitive comparison of Authentication header
driusan Jun 1, 2023
7a5f94e
Fix PHPCS (#8719)
driusan Jun 2, 2023
0bf1a25
Fix nonaggregated column error in mri_violation provisioner (#8716)
laemtl Jun 2, 2023
7f39aa0
[EEG Uploader] Handle Checksum value (#8729)
laemtl Jun 7, 2023
737b67e
[instruments] Fix properly disabling/enabling 'Delete instrument data…
zaliqarosli Jun 7, 2023
5ec5f3a
Merge remote-tracking branch 'aces/24.1-release' into Push241To25
driusan Jun 7, 2023
2399db4
[electrophysiology_uploader] Added 'Help' content for the elctrophysi…
jeffersoncasimir Jun 7, 2023
3c52767
[module_manager] Visibility of 'My Preferences' in menu reflects stat…
jeffersoncasimir Jun 7, 2023
4e3ff96
[Media] Fix Input callback not set (#8720)
charlottesce Jun 7, 2023
9c0f84d
Merge pull request #8735 from driusan/Push241To25
driusan Jun 7, 2023
863e8a5
[battery_manager] React warning messages in console (#8724)
skarya22 Jun 7, 2023
8dad7c2
[user_accounts] Update TestPlan wording (#8718)
CamilleBeau Jun 7, 2023
239859c
24.1 to 25.0 release patch (#8715)
kongtiaowang Jun 8, 2023
1d0ba1e
[document_repository] Include steps to test for multiple files (#8758)
jeffersoncasimir Jun 8, 2023
c6e1a28
[document_repository] Update help content (#8761)
jeffersoncasimir Jun 8, 2023
120ede0
[user_accounts] Update TestPlan.md (#8754)
jeffersoncasimir Jun 8, 2023
344a251
[acknowledgements] Update test plan (#8763)
driusan Jun 8, 2023
55974fd
[instrument & instrument_manager] test plans update (#8765)
regisoc Jun 9, 2023
690b8a8
[dashboard] Load project description from ajax and run through DOMPur…
driusan Jun 12, 2023
f768560
[configuration] Use unsafeInsert/unsafeUpdate for saving values (#8759)
driusan Jun 12, 2023
e16fb67
[new_profile] Fix date requirements and formats with EDC (#8767)
charlottesce Jun 13, 2023
309a665
[Media] Fix warning invalid prop options (#8722)
charlottesce Jun 13, 2023
e98ce56
[Survey] Fix loading of survey instruments (#8647)
driusan Jun 14, 2023
c5db96c
[new_profile] Fix Date Picker (#8775)
skarya22 Jun 14, 2023
1b78796
[api] Test multiple versions (#8778)
driusan Jun 14, 2023
c88bcc4
[survey_accounts] Fix help text (#8789)
zaliqarosli Jun 15, 2023
e2ef3ab
[Timepoint List] Hide visits that are from user unaffiliated projects…
skarya22 Jun 15, 2023
c2a9c20
[Candidate] Fix wrong comments to avoid confusion in future (#8791)
zaliqarosli Jun 15, 2023
706cd78
[raisinbread] Update EEG Acquisition Form (#8675)
regisoc Jun 16, 2023
189a43d
[candidate_parameters] Fix candidate_parameters permission problem (#…
sanjay-thiyagarajan Jun 19, 2023
f1c1327
[API] Accessing CommentID using accessor function (#8796)
xlecours Jun 20, 2023
fd3f9cc
Merge remote-tracking branch 'aces/24.1-release' into Push24To25
driusan Jun 20, 2023
aeea588
[dashboard/issue tracker] Fix for "My Issues" link in dashboard (#8799)
sanjay-thiyagarajan Jun 20, 2023
baac2f4
[data_release] Permission not added to unversioned files if version s…
charlottesce Jun 20, 2023
9a19807
[API] Using accessor to access instrument's commentid (#8801)
xlecours Jun 20, 2023
d7b3d97
Merge remote-tracking branch 'aces/24.1-release' into Push24To25
driusan Jun 20, 2023
5e24ac0
[Tests] Remove duplicated login test (#8783)
driusan Jun 20, 2023
c164986
Merge pull request #8800 from driusan/Push24To25
driusan Jun 20, 2023
1cd5f07
[api/tests] Run API tests in separate job (#8802)
driusan Jun 20, 2023
c2f41af
[instruments] Remove CommentID from getInstanceData. (#8805)
driusan Jun 21, 2023
12cbd16
[battery_manager] use visit controller to fetch visit list (#8485)
ridz1208 Jun 21, 2023
c521659
[Core] PSCID uniqueness (#8411)
xlecours Jun 27, 2023
bdba5b5
Merge remote-tracking branch 'aces/24.1-release' into Merge241To25
driusan Jun 27, 2023
5ebdc33
[test] Fix order of schema sourcing (#8806)
driusan Jun 27, 2023
a1c3780
Merge remote-tracking branch 'aces/25.0-release' into Merge241To25
driusan Jun 27, 2023
6a77a28
Merge pull request #8817 from driusan/Merge241To25
driusan Jun 27, 2023
5221cf0
[test/api] Add tests for getting instrument data from API. (#8810)
driusan Jul 4, 2023
ba6ee93
[Issue Tracker] Change upload error message to be more specific (#8814)
sanjay-thiyagarajan Jul 4, 2023
f8f123d
[API] Using isAccessibleBy on candidate endpoint (#8824)
xlecours Jul 4, 2023
3758ade
[tests] Increase speed by removing duplication of work between jobs (…
driusan Jul 5, 2023
032afb1
[mri_violations] Update Help (#8772)
skarya22 Jul 5, 2023
9ff9d4c
[Release] move files to archive + new clean up patch for quality cont…
ridz1208 Jul 10, 2023
0cbdb9d
[Release] move cleanup patches to archive (#8832)
ridz1208 Jul 11, 2023
cff79e5
[DQT] Array and link support in cell data (#8344)
laemtl Jul 11, 2023
cbd9cd0
[EEG Uploader] Update status (#8798)
laemtl Jul 11, 2023
babbd6f
[survey_accounts] Update test plan (#8797)
zaliqarosli Jul 11, 2023
9cbeee2
[instrument_manager] Permission modification button fix (#8821)
jeffersoncasimir Jul 11, 2023
4542f06
[issue_tracker] Fix for inactive module based issues (#8828)
sanjay-thiyagarajan Jul 11, 2023
23f6875
[document_repository] Improper error handling #8760 (#8818)
kongtiaowang Jul 11, 2023
25a1c7d
[Docs] Update references from LORIS 24 to LORIS 25 in documentation (…
driusan Jul 17, 2023
2efc61e
[25.0 release] Update raisinbread dataset (#8843)
ridz1208 Jul 20, 2023
28ae33e
[25.0 Release] Hotfixes for demo (#8840)
ridz1208 Aug 8, 2023
d180ef6
[imaging_qc] Improve Error Message (#8779)
skarya22 Aug 10, 2023
14418af
[survey_accounts] notices, warnings and filter options (#8859)
ridz1208 Aug 10, 2023
d69d61e
[LorisForm] add required to checkboxes (#8860)
ridz1208 Aug 10, 2023
c6c05ae
[Libraries] Feedback panel - fix fieldnames setting (#8848)
charlottesce Aug 16, 2023
6705373
[tools][CouchDB_MRI_Importer] Fix date in MRI data (#8851)
charlottesce Aug 16, 2023
3baac58
[issue_tracker] Resolves special characters in titles (#8842)
charlottesce Aug 16, 2023
b381816
[LINST/Dictionary] Add Numeric elements to dictionary (#8869)
driusan Aug 16, 2023
b74e4ba
[bvl_feedback] Edit comment section (#8790)
skarya22 Aug 24, 2023
81a76fc
[Core] Changed order of module directories (#8870)
jeffersoncasimir Aug 24, 2023
80740e4
[imaging_uploader] Fix auto-populating VisitLabel (#8881)
zaliqarosli Sep 12, 2023
6d6d0d9
[Dict] Skip hidden fields in data dictionary (#8882)
ridz1208 Sep 12, 2023
48d4d0e
[Configuration] Fix values of email fields (#8891)
laemtl Sep 21, 2023
72bd0fd
[configuration] Escape values in config module (#8901)
driusan Sep 28, 2023
9b08f46
[media] Fix problematic SQL (#8908)
driusan Oct 3, 2023
e1de313
Merge remote-tracking branch 'aces/24.1-release' into Push2415To25
driusan Oct 3, 2023
56a636b
Merge pull request #8909 from driusan/Push2415To25
driusan Oct 3, 2023
91ceee1
[media] React Warning on Upload Tab (#8721)
skarya22 Oct 17, 2023
e060275
Merge remote-tracking branch 'aces/25.0-release' into 2023-11-02-Upda…
zaliqarosli Nov 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,7 @@ indent_size = 2

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2

35 changes: 0 additions & 35 deletions .github/ISSUE_TEMPLATE/module_testing.md

This file was deleted.

202 changes: 199 additions & 3 deletions .github/workflows/loristest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,207 @@ on:
- push
- pull_request

env:
EEG_VIS_ENABLED: 'true'

jobs:
build:
buildjs:
env:
EEG_VIS_ENABLED: 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- name: Install EEG package dependencies
# We only need to install protobuf-compiler
# Other deps were added to fix an apt dependency issue introduced by a new github Ubuntu image
# (see https://github.com/actions/runner-images/blob/releases/ubuntu22/20230305/images/linux/Ubuntu2204-Readme.md)
# that updated the list of installed apt packages/apt repositories. That issue may disappear in future Ubuntu images.
run: |
sudo apt install -y imagemagick-6-common libmagickcore-6.q16-6 libmagickwand-6.q16-6 \
libprotobuf-dev libprotobuf23 libprotoc23 protobuf-compiler
cd modules/electrophysiology_browser/jsx/react-series-data-viewer/
protoc protocol-buffers/chunk.proto --js_out=import_style=commonjs,binary:./src/

- name: Install npm modules
run: npm ci

- name: Compile LORIS javascript
run: npm run compile

- name: Create LORIS JS tarball
run: tar cfvz lorisjs.tar.gz htdocs/js/components/ modules/*/js/*

- name: Create node_modules tarball
run: tar cfvz node_modules.tar.gz node_modules

- uses: actions/upload-artifact@v3
name: Upload node_modules artifact
with:
name: node_modules
path: node_modules.tar.gz

- uses: actions/upload-artifact@v3
name: Upload lorisjs.tar.gz artifact
with:
name: lorisjs
path: lorisjs.tar.gz

buildphp:
runs-on: ubuntu-latest
strategy:
matrix:
php: ['8.1', '8.2']
steps:
- uses: actions/checkout@v2

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: zip, php-ast

- name: Validate composer.json and composer.lock
run: composer validate

- name: Cache Composer packages
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"

- name: Composer cache
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }}
restore-keys: ${{ runner.os }}-composer-

- name: Install composer dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress --no-suggest

- name: Create vendor tarball
run: tar cfvz vendor-php${{matrix.php}}.tar.gz vendor

- uses: actions/upload-artifact@v3
name: Upload vendor-php${{matrix.php}}.tar.gz artifact
with:
name: vendor-php${{matrix.php}}
path: vendor-php${{matrix.php}}.tar.gz

api:
runs-on: ubuntu-latest
needs:
- buildjs
- buildphp

env:
DB_DATABASE: LorisTest
DB_USER: SQLTestUser
DB_PASSWORD: TestPassword
LORIS_DB_CONFIG: project/config.xml
DOCKER_WEB_SERVER: http://localhost:8000/
strategy:
fail-fast: false
matrix:
php: ['8.1', '8.2']
apiversion: ['v0.0.3', 'v0.0.4-dev']
steps:
- uses: actions/checkout@v2

- uses: actions/download-artifact@v3
name: Download node_modules artifact
with:
name: node_modules
path: .

- uses: actions/download-artifact@v3
name: Download compiled LORIS javascript artifact
with:
name: lorisjs
path: .

- uses: actions/download-artifact@v3
name: Download PHP dependencies artifact
with:
name: vendor-php${{matrix.php}}
path: .


- name: Extract node_modules
run: tar xfvz node_modules.tar.gz

- name: Extract compiled JS
run: tar xfvz lorisjs.tar.gz

- name: Extract composer vendor directory
run: tar xfvz vendor-php${{matrix.php}}.tar.gz

- name: Generate VERSION file
run: make VERSION

- name: Setup project/ directory
run: |
mkdir -p project/instruments
cp test/config.xml project/config.xml
cp test/test_instrument/NDB_BVL_Instrument_testtest.class.inc project/instruments/
cp -r raisinbread/instruments/* project/instruments/
sed -i 's/<sandbox>1<\/sandbox>/<sandbox>0<\/sandbox>/g' project/config.xml
sed -i 's/<adminUser>SQLTestUser<\/adminUser>/<adminUser>root<\/adminUser>/g' project/config.xml
sed -i 's/<adminPassword>TestPassword<\/adminPassword>/<adminPassword>root<\/adminPassword>/g' project/config.xml
sed -i 's/<host>db<\/host>/<host>localhost<\/host>/g' project/config.xml
cat project/config.xml

- name: Set up MySQL
run: |
sudo /etc/init.d/mysql start
mysql -e 'CREATE DATABASE ${{ env.DB_DATABASE }};' -uroot -proot
mysql -e "CREATE USER '${{env.DB_USER}}'@'localhost' IDENTIFIED BY '${{env.DB_PASSWORD}}'" -uroot -proot
mysql -e "GRANT UPDATE,INSERT,SELECT,DELETE,CREATE TEMPORARY TABLES ON ${{env.DB_DATABASE}}.* TO '${{env.DB_USER}}'@'localhost'" -uroot -proot

- name: Source default schema and Raisinbread
run: |
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-00-schema.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-01-Modules.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-02-Permission.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-03-ConfigTables.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-04-Help.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < SQL/0000-00-05-ElectrophysiologyTables.sql
find raisinbread/instruments/instrument_sql -name *.sql -exec sh -c "echo Sourcing {}; mysql ${{ env.DB_DATABASE}} -uroot -proot < {}" \;
find raisinbread/RB_files/ -name *.sql -exec sh -c "echo Sourcing {}; mysql ${{ env.DB_DATABASE}} -uroot -proot < {}" \;

- name: Source instrument schemas
run: |
find raisinbread/instruments/instrument_sql -name 0000-*.sql -exec sh -c "echo Sourcing {}; mysql ${{ env.DB_DATABASE}} -uroot -proot < {}" \;
echo Sourcing test/test_instrument/testtest.sql
mysql ${{ env.DB_DATABASE}} -uroot -proot < test/test_instrument/testtest.sql

- name: Set LORIS base path
run: |
echo UPDATE Config SET VALUE=\'`pwd`/\' WHERE ConfigID IN \(SELECT ID FROM ConfigSettings WHERE Name=\'base\'\)
echo UPDATE Config SET VALUE=\'`pwd`/\' WHERE ConfigID IN \(SELECT ID FROM ConfigSettings WHERE Name=\'base\'\) | mysql ${{env.DB_DATABASE}} -uroot -proot

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: zip, php-ast

- name: Start PHP Web Server
run: php -S localhost:8000 -t htdocs/ htdocs/router.php 2>error_log &

- name: Test server
run: |
sleep 1
curl -v http://localhost:8000


- name: Run Test Suite
run: |
vendor/bin/phpunit --configuration test/phpunit.xml --testsuite LorisAPITests --group api-${{ matrix.apiversion }}

- name: Print Error Logs
if: always()
run: cat error_log

docker:
runs-on: ubuntu-latest
strategy:
fail-fast: false
Expand Down
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: clean dev all check checkstatic unittests phpdev jslatest testdata
.PHONY: clean dev all check checkstatic unittests phpdev jslatest testdata fastdev jsdev

all: VERSION
composer install --no-dev
Expand All @@ -12,8 +12,12 @@ VERSION: .
phpdev:
composer install

dev: VERSION phpdev
dev: phpdev jsdev fastdev

jsdev:
npm ci

fastdev: VERSION
npm run compile

jslatest: clean
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ LORIS (Longitudinal Online Research and Imaging System) is a self-hosted web app

* Try the LORIS demo instance at https://demo.loris.ca.

This Readme covers installation of LORIS version <b>24.1</b> on <b>Ubuntu</b>.
This Readme covers installation of LORIS version <b>25.0</b> on <b>Ubuntu</b>.

([CentOS Readme also available](docs/wiki/00_SERVER_INSTALL_AND_CONFIGURATION/01_LORIS_Install/CentOS/README.md)).

Expand Down
2 changes: 1 addition & 1 deletion SQL/0000-00-05-ElectrophysiologyTables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@ CREATE TABLE `electrophysiology_uploader` (
`UploadedBy` varchar(255) NOT NULL,
`UploadDate` DateTime NOT NULL,
`UploadLocation` varchar(255) NOT NULL,
`Status` enum('Not Started', 'Extracted', 'In Progress', 'Complete', 'Failed', 'Archived') DEFAULT 'Not Started',
`Status` enum('Not Started', 'Extracted', 'Failed Extraction', 'In Progress', 'Complete', 'Failed', 'Archived') DEFAULT 'Not Started',
`SessionID` int(10) unsigned,
`Checksum` varchar(40) DEFAULT NULL,
`MetaData` TEXT DEFAULT NULL,
Expand Down
6 changes: 6 additions & 0 deletions SQL/9999-99-99-drop_tables.sql
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
-- 0000-00-05-ElectrophysiologyTables.sql
DROP TABLE IF EXISTS `physiological_event_parameter_category_level`;
DROP TABLE IF EXISTS `physiological_event_parameter`;
DROP TABLE IF EXISTS `physiological_event_archive`;
DROP TABLE IF EXISTS `physiological_event_file`;
DROP TABLE IF EXISTS `physiological_coord_system_electrode_rel`;
DROP TABLE IF EXISTS `physiological_coord_system_point_3d_rel`;
DROP TABLE IF EXISTS `point_3d`;
DROP TABLE IF EXISTS `physiological_coord_system`;
DROP TABLE IF EXISTS `physiological_coord_system_unit`;
DROP TABLE IF EXISTS `physiological_coord_system_name`;
DROP TABLE IF EXISTS `physiological_coord_system_type`;
DROP TABLE IF EXISTS `electrophysiology_uploader`;
DROP TABLE IF EXISTS `physiological_annotation_rel`;
DROP TABLE IF EXISTS `physiological_annotation_instance`;
DROP TABLE IF EXISTS `physiological_annotation_parameter`;
Expand Down Expand Up @@ -45,6 +50,7 @@ DROP TABLE IF EXISTS `issues`;
DROP TABLE IF EXISTS `issues_categories`;

-- 0000-00-02-Permission.sql
DROP TABLE IF EXISTS `testnames_permissions_rel`;
DROP TABLE IF EXISTS `user_perm_rel`;
DROP TABLE IF EXISTS `notification_modules_perm_rel`;
DROP TABLE IF EXISTS `permissions`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ INSERT INTO physiological_event_file (PhysiologicalFileID, FilePath, FileType)
UPDATE physiological_task_event te
SET EventFileID=(SELECT EventFileID FROM physiological_event_file WHERE PhysiologicalFileID=te.PhysiologicalFileID)
;
SET FOREIGN_KEY_CHECKS= 1;

-- Delete FilePath column in `physiological_task_event` table
ALTER TABLE physiological_task_event
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
DELETE FROM permissions WHERE code='quality_control';

Loading