Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
dc87ba4
fix not post perm check
kongtiaowang Jun 22, 2026
d1bcc85
Refactor isAccessibleBy method and improve filename handling
kongtiaowang Jun 29, 2026
1fb1950
fix cs
kongtiaowang Jun 29, 2026
0b0bd1a
cs
kongtiaowang Jun 29, 2026
71b0cb0
Fix variable name from 'hidden_video' to 'hide_video'
kongtiaowang Jun 29, 2026
d653a6f
try to fix dropdown
kongtiaowang Jun 29, 2026
cc698bd
fix
kongtiaowang Jun 29, 2026
2022d6f
cs
kongtiaowang Jun 29, 2026
9ed21db
fix cs
kongtiaowang Jun 29, 2026
41accf1
Update files.class.inc
kongtiaowang Jun 30, 2026
f679480
[user_accounts] to add SweetAlert2 reject user (#10475)
priyavrat7 Jun 23, 2026
786466f
[dataquery] Updating TestPlan.md to specify admin pinned queries (#10…
lapadulamichael Jun 25, 2026
e04db89
[NDB_Notifier] Fix 'active_to' query (#10686)
CamilleBeau Jun 25, 2026
8b189a7
[login] Fix reset password email subject line (#10673)
shonibare Jun 29, 2026
98553a4
[data_release] Fixes issue where users able to upload files to projec…
racostas Jun 29, 2026
83aa1a0
[Makefile] Make make locales make all locales without hard coding (#1…
skarya22 Jun 29, 2026
f4c2c80
[dashboard | statistics] Add Project Size to dashboard charts (#10057)
jeffersoncasimir Jun 29, 2026
0ecf2c4
[electrophysiology_browser] On-demand file download tarring (#10481)
MaximeBICMTL Jun 29, 2026
4c4f924
[configuration] Add diagnosis trajectory help text (#10643)
CamilleBeau Jun 29, 2026
6f1354e
[tools] lorisform_parser multilingual domain (#10701)
regisoc Jun 29, 2026
abd39af
[Biobank] Add QueryEngine implementation for specimen data queries (#…
HenriRabalais Jun 29, 2026
a045ffa
[dataquery] Fix 'Modify Fields' name (#10641)
CamilleBeau Jun 29, 2026
142eee4
[dictionary] Added tests for getDataDictionary() modules (#10687)
hansfauer Jun 29, 2026
1e44e67
[dictionary] filter disabled logic + category filter disabling trigge…
regisoc Jun 29, 2026
680b6cb
[oidc] Fix json_decode (#10658)
jeffersoncasimir Jun 29, 2026
51430d9
[Instrument_List/Multilingual] Fix switching language with parameter …
skarya22 Jun 29, 2026
e8db6e8
[redcap] API endpoint routing fix (#10703)
regisoc Jun 30, 2026
a4f57f2
[electrophysiology_browser] Rendering fixes when chunksURL is non-exi…
jeffersoncasimir Jun 30, 2026
5929918
redcap - bugfix candID to candidateID issue update (#10708)
regisoc Jun 30, 2026
9df4d12
[instrument_manager] Page count fix (#10655)
fias06 Jun 30, 2026
d03a2b7
Translate update password login page (#10691)
Montekkundan Jun 30, 2026
df53cdc
[multilingual] Fix forbidden character string in Chinese (#10713)
driusan Jun 30, 2026
a68e0db
[electrophysiology_browser] Add missing string to pot file (#10706)
driusan Jun 30, 2026
05b0eb9
[module_manager] Fix po/pot files for module_manager (#10710)
driusan Jun 30, 2026
1b954f5
[imaging_uploader] Fix po files for imaging_uploader (#10709)
driusan Jun 30, 2026
1badcd3
[dataquery] Fix Candidate matches translations (#10705)
driusan Jun 30, 2026
7417fa4
[candidate_parameters] Add Consent Type and Consent Summary to pot fi…
driusan Jun 30, 2026
fb5ad93
[configuration] Fix deprecation error (#10557)
driusan Jun 30, 2026
cbd270e
[user_accounts] Add missing strings to user_accounts pot file (#10712)
driusan Jun 30, 2026
ef77bff
[imaging_browser] Fix po files (#10707)
driusan Jun 30, 2026
2d8579d
Translate Biobank menu labels (#10690)
Montekkundan Jun 30, 2026
21d6bfa
[multilingual] Fix Incomplete Forms msgid (#10714)
driusan Jun 30, 2026
f1b9dde
[dataquery] Import Filters CSV Bug (#10716)
kongtiaowang Jun 30, 2026
56697d3
Fix DQT not fetching image acquisition data (#10699)
nicolasbrossard Jun 30, 2026
b6fcb0f
[configuration] Fix existing project updates (#10715)
Montekkundan Jun 30, 2026
7091481
[survey_accounts] Add Space For The Validation Message (#10683)
GeorgeMurad Jun 30, 2026
1bac66c
[multilingual] Fix French translation file inconsistencies (#10721)
driusan Jun 30, 2026
2c92f14
[Biobank] Normalize biobank validation strings and fix Center/Site mi…
HenriRabalais Jun 30, 2026
c8b486c
[modules | media] Fix media upload error handling for non-JSON server…
priyavrat7 Jun 30, 2026
bdc1104
[Statistics] Catch-up all languages to fr + Fix hindi plural across m…
skarya22 Jun 30, 2026
d319214
[Dashboard] Last chart translations + make it work for non-binary sex…
skarya22 Jun 30, 2026
89d0f59
video to file
kongtiaowang Jul 2, 2026
ec17064
fix
kongtiaowang Jul 2, 2026
8fcb4a2
php cs
kongtiaowang Jul 2, 2026
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
182 changes: 1 addition & 181 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,186 +1,6 @@
.PHONY: clean dev all check checkstatic unittests jslatest testdata locales

POFILES=locale/fr/LC_MESSAGES/loris.po \
locale/ja/LC_MESSAGES/loris.po \
locale/hi/LC_MESSAGES/loris.po \
locale/es/LC_MESSAGES/loris.po \
locale/en/LC_MESSAGES/loris.po \
locale/zh/LC_MESSAGES/loris.po \
modules/biobank/locale/fr/LC_MESSAGES/biobank.po \
modules/media/locale/fr/LC_MESSAGES/media.po \
modules/media/locale/ja/LC_MESSAGES/media.po \
modules/media/locale/hi/LC_MESSAGES/media.po \
modules/media/locale/es/LC_MESSAGES/media.po \
modules/datadict/locale/fr/LC_MESSAGES/datadict.po \
modules/datadict/locale/ja/LC_MESSAGES/datadict.po \
modules/datadict/locale/hi/LC_MESSAGES/datadict.po \
modules/mri_violations/locale/fr/LC_MESSAGES/mri_violations.po \
modules/mri_violations/locale/ja/LC_MESSAGES/mri_violations.po \
modules/mri_violations/locale/hi/LC_MESSAGES/mri_violations.po \
modules/mri_violations/locale/es/LC_MESSAGES/mri_violations.po \
modules/statistics/locale/fr/LC_MESSAGES/statistics.po \
modules/statistics/locale/ja/LC_MESSAGES/statistics.po \
modules/server_processes_manager/locale/ja/LC_MESSAGES/server_processes_manager.po \
modules/server_processes_manager/locale/hi/LC_MESSAGES/server_processes_manager.po \
modules/module_manager/locale/fr/LC_MESSAGES/module_manager.po \
modules/module_manager/locale/ja/LC_MESSAGES/module_manager.po \
modules/module_manager/locale/hi/LC_MESSAGES/module_manager.po \
modules/configuration/locale/ja/LC_MESSAGES/configuration.po \
modules/oidc/locale/ja/LC_MESSAGES/oidc.po \
modules/instrument_list/locale/fr/LC_MESSAGES/instrument_list.po \
modules/instrument_list/locale/ja/LC_MESSAGES/instrument_list.po \
modules/instrument_list/locale/es/LC_MESSAGES/instrument_list.po \
modules/my_preferences/locale/fr/LC_MESSAGES/my_preferences.po \
modules/my_preferences/locale/ja/LC_MESSAGES/my_preferences.po \
modules/my_preferences/locale/hi/LC_MESSAGES/my_preferences.po \
modules/dicom_archive/locale/fr/LC_MESSAGES/dicom_archive.po \
modules/dicom_archive/locale/ja/LC_MESSAGES/dicom_archive.po \
modules/dicom_archive/locale/hi/LC_MESSAGES/dicom_archive.po \
modules/new_profile/locale/fr/LC_MESSAGES/new_profile.po \
modules/new_profile/locale/ja/LC_MESSAGES/new_profile.po \
modules/new_profile/locale/hi/LC_MESSAGES/new_profile.po \
modules/new_profile/locale/es/LC_MESSAGES/new_profile.po \
modules/dqt/locale/ja/LC_MESSAGES/dqt.po \
modules/bvl_feedback/locale/fr/LC_MESSAGES/bvl_feedback.po \
modules/bvl_feedback/locale/ja/LC_MESSAGES/bvl_feedback.po \
modules/genomic_browser/locale/fr/LC_MESSAGES/genomic_browser.po \
modules/genomic_browser/locale/ja/LC_MESSAGES/genomic_browser.po \
modules/instruments/locale/fr/LC_MESSAGES/instruments.po \
modules/instruments/locale/ja/LC_MESSAGES/instruments.po \
modules/instruments/locale/es/LC_MESSAGES/instruments.po \
modules/dictionary/locale/fr/LC_MESSAGES/dictionary.po \
modules/dictionary/locale/ja/LC_MESSAGES/dictionary.po \
modules/dictionary/locale/hi/LC_MESSAGES/dictionary.po \
modules/instrument_manager/locale/ja/LC_MESSAGES/instrument_manager.po \
modules/candidate_profile/locale/fr/LC_MESSAGES/candidate_profile.po \
modules/candidate_profile/locale/ja/LC_MESSAGES/candidate_profile.po \
modules/behavioural_qc/locale/fr/LC_MESSAGES/behavioural_qc.po \
modules/behavioural_qc/locale/ja/LC_MESSAGES/behavioural_qc.po \
modules/behavioural_qc/locale/hi/LC_MESSAGES/behavioural_qc.po \
modules/user_accounts/locale/fr/LC_MESSAGES/user_accounts.po \
modules/user_accounts/locale/ja/LC_MESSAGES/user_accounts.po \
modules/user_accounts/locale/hi/LC_MESSAGES/user_accounts.po \
modules/schedule_module/locale/fr/LC_MESSAGES/schedule_module.po \
modules/schedule_module/locale/ja/LC_MESSAGES/schedule_module.po \
modules/schedule_module/locale/hi/LC_MESSAGES/schedule_module.po \
modules/imaging_uploader/locale/fr/LC_MESSAGES/imaging_uploader.po \
modules/imaging_uploader/locale/ja/LC_MESSAGES/imaging_uploader.po \
modules/imaging_uploader/locale/hi/LC_MESSAGES/imaging_uploader.po \
modules/next_stage/locale/fr/LC_MESSAGES/next_stage.po \
modules/next_stage/locale/ja/LC_MESSAGES/next_stage.po \
modules/next_stage/locale/es/LC_MESSAGES/next_stage.po \
modules/examiner/locale/fr/LC_MESSAGES/examiner.po \
modules/examiner/locale/ja/LC_MESSAGES/examiner.po \
modules/examiner/locale/hi/LC_MESSAGES/examiner.po \
modules/login/locale/fr/LC_MESSAGES/login.po \
modules/login/locale/ja/LC_MESSAGES/login.po \
modules/instrument_builder/locale/fr/LC_MESSAGES/instrument_builder.po \
modules/instrument_builder/locale/ja/LC_MESSAGES/instrument_builder.po \
modules/instrument_builder/locale/hi/LC_MESSAGES/instrument_builder.po \
modules/document_repository/locale/fr/LC_MESSAGES/document_repository.po \
modules/document_repository/locale/ja/LC_MESSAGES/document_repository.po \
modules/document_repository/locale/hi/LC_MESSAGES/document_repository.po \
modules/conflict_resolver/locale/fr/LC_MESSAGES/conflict_resolver.po \
modules/conflict_resolver/locale/ja/LC_MESSAGES/conflict_resolver.po \
modules/conflict_resolver/locale/hi/LC_MESSAGES/conflict_resolver.po \
modules/candidate_list/locale/fr/LC_MESSAGES/candidate_list.po \
modules/candidate_list/locale/ja/LC_MESSAGES/candidate_list.po \
modules/candidate_list/locale/hi/LC_MESSAGES/candidate_list.po \
modules/create_timepoint/locale/fr/LC_MESSAGES/create_timepoint.po \
modules/create_timepoint/locale/ja/LC_MESSAGES/create_timepoint.po \
modules/create_timepoint/locale/hi/LC_MESSAGES/create_timepoint.po \
modules/create_timepoint/locale/es/LC_MESSAGES/create_timepoint.po \
modules/brainbrowser/locale/fr/LC_MESSAGES/brainbrowser.po \
modules/brainbrowser/locale/ja/LC_MESSAGES/brainbrowser.po \
modules/brainbrowser/locale/hi/LC_MESSAGES/brainbrowser.po \
modules/dataquery/locale/fr/LC_MESSAGES/dataquery.po \
modules/dataquery/locale/ja/LC_MESSAGES/dataquery.po \
modules/dataquery/locale/hi/LC_MESSAGES/dataquery.po \
modules/issue_tracker/locale/fr/LC_MESSAGES/issue_tracker.po \
modules/issue_tracker/locale/ja/LC_MESSAGES/issue_tracker.po \
modules/issue_tracker/locale/hi/LC_MESSAGES/issue_tracker.po \
modules/timepoint_list/locale/fr/LC_MESSAGES/timepoint_list.po \
modules/timepoint_list/locale/ja/LC_MESSAGES/timepoint_list.po \
modules/timepoint_list/locale/es/LC_MESSAGES/timepoint_list.po \
modules/data_release/locale/fr/LC_MESSAGES/data_release.po \
modules/data_release/locale/ja/LC_MESSAGES/data_release.po \
modules/data_release/locale/hi/LC_MESSAGES/data_release.po \
modules/electrophysiology_uploader/locale/fr/LC_MESSAGES/electrophysiology_uploader.po \
modules/electrophysiology_uploader/locale/ja/LC_MESSAGES/electrophysiology_uploader.po \
modules/electrophysiology_uploader/locale/hi/LC_MESSAGES/electrophysiology_uploader.po \
modules/acknowledgements/locale/ja/LC_MESSAGES/acknowledgements.po \
modules/survey_accounts/locale/hi/LC_MESSAGES/survey_accounts.po \
modules/survey_accounts/locale/ja/LC_MESSAGES/survey_accounts.po \
modules/battery_manager/locale/fr/LC_MESSAGES/battery_manager.po \
modules/battery_manager/locale/ja/LC_MESSAGES/battery_manager.po \
modules/battery_manager/locale/hi/LC_MESSAGES/battery_manager.po \
modules/imaging_qc/locale/ja/LC_MESSAGES/imaging_qc.po \
modules/electrophysiology_browser/locale/fr/LC_MESSAGES/electrophysiology_browser.po \
modules/electrophysiology_browser/locale/ja/LC_MESSAGES/electrophysiology_browser.po \
modules/api_docs/locale/ja/LC_MESSAGES/api_docs.po \
modules/publication/locale/fr/LC_MESSAGES/publication.po \
modules/publication/locale/ja/LC_MESSAGES/publication.po \
modules/publication/locale/hi/LC_MESSAGES/publication.po \
modules/publication/locale/en/LC_MESSAGES/publication.po \
modules/dashboard/locale/fr/LC_MESSAGES/dashboard.po \
modules/dashboard/locale/ja/LC_MESSAGES/dashboard.po \
modules/candidate_parameters/locale/ja/LC_MESSAGES/candidate_parameters.po \
modules/candidate_parameters/locale/es/LC_MESSAGES/candidate_parameters.po \
modules/imaging_browser/locale/fr/LC_MESSAGES/imaging_browser.po \
modules/imaging_browser/locale/ja/LC_MESSAGES/imaging_browser.po \
modules/imaging_browser/locale/hi/LC_MESSAGES/imaging_browser.po \
modules/help_editor/locale/fr/LC_MESSAGES/help_editor.po \
modules/help_editor/locale/ja/LC_MESSAGES/help_editor.po \
modules/help_editor/locale/hi/LC_MESSAGES/help_editor.po \
modules/acknowledgements/locale/zh/LC_MESSAGES/acknowledgements.po \
modules/api_docs/locale/zh/LC_MESSAGES/api_docs.po \
modules/battery_manager/locale/zh/LC_MESSAGES/battery_manager.po \
modules/behavioural_qc/locale/zh/LC_MESSAGES/behavioural_qc.po \
modules/brainbrowser/locale/zh/LC_MESSAGES/brainbrowser.po \
modules/bvl_feedback/locale/zh/LC_MESSAGES/bvl_feedback.po \
modules/candidate_list/locale/zh/LC_MESSAGES/candidate_list.po \
modules/candidate_parameters/locale/zh/LC_MESSAGES/candidate_parameters.po \
modules/candidate_profile/locale/zh/LC_MESSAGES/candidate_profile.po \
modules/configuration/locale/zh/LC_MESSAGES/configuration.po \
modules/conflict_resolver/locale/zh/LC_MESSAGES/conflict_resolver.po \
modules/create_timepoint/locale/zh/LC_MESSAGES/create_timepoint.po \
modules/dashboard/locale/zh/LC_MESSAGES/dashboard.po \
modules/data_release/locale/zh/LC_MESSAGES/data_release.po \
modules/datadict/locale/zh/LC_MESSAGES/datadict.po \
modules/dataquery/locale/zh/LC_MESSAGES/dataquery.po \
modules/dicom_archive/locale/zh/LC_MESSAGES/dicom_archive.po \
modules/dictionary/locale/zh/LC_MESSAGES/dictionary.po \
modules/document_repository/locale/zh/LC_MESSAGES/document_repository.po \
modules/dqt/locale/zh/LC_MESSAGES/dqt.po \
modules/electrophysiology_browser/locale/zh/LC_MESSAGES/electrophysiology_browser.po \
modules/electrophysiology_uploader/locale/zh/LC_MESSAGES/electrophysiology_uploader.po \
modules/examiner/locale/zh/LC_MESSAGES/examiner.po \
modules/genomic_browser/locale/zh/LC_MESSAGES/genomic_browser.po \
modules/help_editor/locale/zh/LC_MESSAGES/help_editor.po \
modules/imaging_browser/locale/zh/LC_MESSAGES/imaging_browser.po \
modules/imaging_qc/locale/zh/LC_MESSAGES/imaging_qc.po \
modules/imaging_uploader/locale/zh/LC_MESSAGES/imaging_uploader.po \
modules/instrument_builder/locale/zh/LC_MESSAGES/instrument_builder.po \
modules/instrument_list/locale/zh/LC_MESSAGES/instrument_list.po \
modules/instrument_manager/locale/zh/LC_MESSAGES/instrument_manager.po \
modules/instruments/locale/zh/LC_MESSAGES/instruments.po \
modules/issue_tracker/locale/zh/LC_MESSAGES/issue_tracker.po \
modules/login/locale/zh/LC_MESSAGES/login.po \
modules/media/locale/zh/LC_MESSAGES/media.po \
modules/module_manager/locale/zh/LC_MESSAGES/module_manager.po \
modules/mri_violations/locale/zh/LC_MESSAGES/mri_violations.po \
modules/my_preferences/locale/zh/LC_MESSAGES/my_preferences.po \
modules/new_profile/locale/zh/LC_MESSAGES/new_profile.po \
modules/next_stage/locale/zh/LC_MESSAGES/next_stage.po \
modules/oidc/locale/zh/LC_MESSAGES/oidc.po \
modules/publication/locale/zh/LC_MESSAGES/publication.po \
modules/schedule_module/locale/zh/LC_MESSAGES/schedule_module.po \
modules/server_processes_manager/locale/zh/LC_MESSAGES/server_processes_manager.po \
modules/statistics/locale/zh/LC_MESSAGES/statistics.po \
modules/survey_accounts/locale/zh/LC_MESSAGES/survey_accounts.po \
modules/timepoint_list/locale/zh/LC_MESSAGES/timepoint_list.po \
modules/biobank/locale/zh/LC_MESSAGES/biobank.po \
modules/user_accounts/locale/zh/LC_MESSAGES/user_accounts.po
POFILES=$(wildcard locale/*/LC_MESSAGES/*.po modules/*/locale/*/LC_MESSAGES/*.po project/modules/*/locale/*/LC_MESSAGES/*.po project/locale/*/LC_MESSAGES/*.po)

MOFILES=$(patsubst %.po,%.mo,$(POFILES))
I18NJSONFILES=$(patsubst %.po,%.json,$(POFILES))
Expand Down
32 changes: 31 additions & 1 deletion SQL/0000-00-00-schema.sql
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ INSERT INTO language (language_code, language_label) VALUES

CREATE TABLE `sex` (
`Name` varchar(255) NOT NULL,
`Colour` varchar(50) NULL,
PRIMARY KEY `Name` (`Name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Stores sex options available for candidates in LORIS';

Expand Down Expand Up @@ -1090,7 +1091,7 @@ CREATE TABLE `document_repository` (
`comments` text,
`multipart` enum('Yes','No') DEFAULT NULL,
`EARLI` tinyint(1) DEFAULT 0,
`hide_video` tinyint(1) DEFAULT 0,
`hide_file` tinyint(1) DEFAULT 0,
`File_category` int(3) unsigned DEFAULT NULL,
PRIMARY KEY (`record_id`),
KEY `fk_document_repository_1_idx` (`File_category`),
Expand Down Expand Up @@ -1537,6 +1538,35 @@ INSERT INTO StatisticsTabs (ModuleName, SubModuleName, Description, OrderNo) VAL
('statistics', 'stats_behavioural', 'Behavioural Statistics', 3),
('statistics', 'stats_MRI', 'Imaging Statistics', 4);


-- ********************************
-- statistics
-- ********************************


CREATE TABLE `cached_data_type` (
`CachedDataTypeID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) UNIQUE NOT NULL,
PRIMARY KEY (`CachedDataTypeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `cached_data_type` (`Name`) SELECT 'projects_disk_space';


CREATE TABLE `cached_data` (
`CachedDataID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`CachedDataTypeID` INT(10) UNSIGNED NOT NULL,
`Value` TEXT NOT NULL,
`LastUpdate` TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CachedDataID`),
CONSTRAINT `FK_cached_data_type` FOREIGN KEY (`CachedDataTypeID`)
REFERENCES `cached_data_type` (`CachedDataTypeID`)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


-- ********************************
-- server_processes tables
-- ********************************
Expand Down
7 changes: 6 additions & 1 deletion SQL/9999-99-99-drop_tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,12 @@ DROP TABLE IF EXISTS `appointment_type`;

DROP TABLE IF EXISTS `openid_connect_csrf`;
DROP TABLE IF EXISTS `openid_connect_providers`;

DROP TABLE IF EXISTS `physiological_task_event_history`;
DROP TABLE IF EXISTS `hed_tag_history`;
DROP TABLE IF EXISTS `hed_tag_endorsement_history`;
DROP TABLE IF EXISTS `hed_tag_endorsement`;
DROP TABLE IF EXISTS `cached_data_type`;
DROP TABLE IF EXISTS `cached_data`;

DROP TABLE IF EXISTS `candidate_diagnosis_evolution_rel`;
DROP TABLE IF EXISTS `diagnosis_evolution`;
Expand Down
21 changes: 21 additions & 0 deletions SQL/New_patches/2025-09-11_add_data_cache_table.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-- Create cached_data_type table to track different types of cached data
CREATE TABLE `cached_data_type` (
`CachedDataTypeID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) UNIQUE NOT NULL,
PRIMARY KEY (`CachedDataTypeID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Create cached_data table to track cached data
CREATE TABLE `cached_data` (
`CachedDataID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`CachedDataTypeID` INT(10) UNSIGNED NOT NULL,
`Value` TEXT NOT NULL,
`LastUpdate` TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`CachedDataID`),
CONSTRAINT `FK_cached_data_type` FOREIGN KEY (`CachedDataTypeID`)
REFERENCES `cached_data_type` (`CachedDataTypeID`)
ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `cached_data_type` (`Name`) SELECT 'projects_disk_space';
20 changes: 20 additions & 0 deletions SQL/New_patches/2026-06-15-Add-Sex-Colours.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
ALTER TABLE sex
ADD COLUMN `Colour` VARCHAR(50) NULL;

SET @sex_row_num := 0;

UPDATE sex s
JOIN (
SELECT Name, (@sex_row_num := @sex_row_num + 1) AS row_num
FROM (SELECT Name FROM sex ORDER BY Name LIMIT 6) ordered_names
) ordered_sex ON ordered_sex.Name = s.Name
SET s.Colour = CASE ordered_sex.row_num
WHEN 1 THEN '#2FA4E7'
WHEN 2 THEN '#1C70B6'
WHEN 3 THEN '#4AE8C2'
WHEN 4 THEN '#7900DB'
WHEN 5 THEN '#FF8000'
WHEN 6 THEN '#D90074'
ELSE s.Colour
END
WHERE ordered_sex.row_num <= 6;
2 changes: 2 additions & 0 deletions SQL/New_patches/2026-07-02-docs-repo-video-to-file.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ALTER TABLE `document_repository`
CHANGE COLUMN `hide_video` `hide_file` tinyint(1) DEFAULT 0;
45 changes: 39 additions & 6 deletions jsx/Filter.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,20 @@ function Filter(props) {
let element;
switch (filter.type) {
case 'text':
element = <TextboxElement labelPlacementTop/>;
element = (
<TextboxElement
disabled={filter.disabled}
labelPlacementTop
/>
);
break;
case 'select':
element = (
<SelectElement
options={filter.options}
sortByValue={filter.sortByValue}
autoSelect={false}
disabled={filter.disabled}
labelPlacementTop
/>
);
Expand All @@ -111,13 +117,15 @@ function Filter(props) {
sortByValue={filter.sortByValue}
multiple={true}
emptyOption={false}
disabled={filter.disabled}
labelPlacementTop
/>
);
break;
case 'numeric':
element = <NumericElement
options={filter.options}
disabled={filter.disabled}
labelPlacementTop
/>;
break;
Expand All @@ -128,23 +136,48 @@ function Filter(props) {
step={filter.step}
minLabel={filter.minLabel}
maxLabel={filter.maxLabel}
disabled={filter.disabled}
labelPlacementTop
/>;
break;
case 'date':
element = <DateElement labelPlacementTop />;
element = (
<DateElement
labelPlacementTop
disabled={filter.disabled}
/>
);
break;
case 'datetime':
element = <DateTimePartialElement labelPlacementTop />;
element = (
<DateTimePartialElement
disabled={filter.disabled}
labelPlacementTop
/>
);
break;
case 'checkbox':
element = <CheckboxElement/>;
element = (
<CheckboxElement
disabled={filter.disabled}
/>
);
break;
case 'time':
element = <TimeElement labelPlacementTop />;
element = (
<TimeElement
disabled={filter.disabled}
labelPlacementTop
/>
);
break;
default:
element = <TextboxElement labelPlacementTop />;
element = (
<TextboxElement
disabled={filter.disabled}
labelPlacementTop
/>
);
}

// The value prop has to default to false if the first two options
Expand Down
Loading
Loading