Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
9fff419
Fix regression of performance
abeverley Oct 20, 2024
d1f0f1b
Update changelog
abeverley Oct 21, 2024
04007f1
Fix unable to clone records with curvals containing created user field
abeverley Oct 28, 2024
9dde449
Allow read-only values to be used in filtered curvals
abeverley Oct 30, 2024
14f4d4b
New version release
abeverley Oct 30, 2024
884a663
Fix exceptions when using person field typeahead
abeverley Nov 11, 2024
5f13513
View All now visible on all curvals
droberts-ctrlo Nov 19, 2024
78a82f5
Added and updated breadcrumbs
droberts-ctrlo Nov 19, 2024
1897380
Modified sort
droberts-ctrlo Nov 20, 2024
a984586
Fix for user permissions not saving
droberts-ctrlo Nov 21, 2024
7f34dc2
Merge pull request #481 from droberts-ctrlo/user-permissions-fix
abeverley Nov 24, 2024
f7cad70
Merge pull request #479 from droberts-ctrlo/multi-sort-list
abeverley Nov 24, 2024
0e72144
Merge pull request #477 from droberts-ctrlo/breadcrumbs
abeverley Nov 24, 2024
9540dea
Merge pull request #475 from droberts-ctrlo/view-all-curval
abeverley Nov 24, 2024
246e2d1
Found bug in display conditions and fixed (#474)
droberts-ctrlo Nov 24, 2024
c54696c
Fix for Typeaheads not working as expected with curvals (#482)
droberts-ctrlo Nov 25, 2024
8e79cba
Updated ts to ignore errors (#485)
droberts-ctrlo Nov 25, 2024
a044946
Rebuild JS
abeverley Nov 25, 2024
25b4b3e
Bump version
abeverley Nov 25, 2024
9b9c402
Updated curvals to work as expected
droberts-ctrlo Nov 25, 2024
7409208
Fix for user permissions not saving correctly
droberts-ctrlo Nov 25, 2024
b8726ab
Merge pull request #486 from droberts-ctrlo/user-admin-fix
abeverley Nov 26, 2024
d017e36
Merge pull request #487 from droberts-ctrlo/curval-fix
abeverley Nov 26, 2024
e6bdcd0
Fix indentation
abeverley Nov 26, 2024
6ce0792
Rebuild JS
abeverley Nov 26, 2024
44d7f03
Create release
abeverley Nov 26, 2024
ef789d6
Fix for datatables loading graphic displaying in the incorrect place
droberts-ctrlo Nov 29, 2024
3c902a7
Fix for user notes not persisting when saving users
droberts-ctrlo Dec 2, 2024
4cab302
Added mandatory values to registration
droberts-ctrlo Dec 2, 2024
6ee13ac
Merge pull request #494 from droberts-ctrlo/notes-field-fix
abeverley Dec 5, 2024
27908bd
Merge pull request #496 from droberts-ctrlo/mandatory-user-fields
abeverley Dec 5, 2024
fd1d2e3
Merge pull request #491 from droberts-ctrlo/datatable-loading-fix
abeverley Dec 5, 2024
b406e19
Updated code to call edit user code correctly
droberts-ctrlo Dec 5, 2024
7a59691
Removed buffer from timeline code
droberts-ctrlo Dec 6, 2024
74dcfde
Merge pull request #500 from droberts-ctrlo/timeline-atob-fix
abeverley Dec 6, 2024
1fa3a0a
Merge pull request #499 from droberts-ctrlo/test-changes
abeverley Dec 6, 2024
9422cb0
Addition of deleted date to person field [B: 1742] (#484)
droberts-ctrlo Dec 18, 2024
5e08d47
Implement cutom reason for account request rejection
droberts-ctrlo Dec 18, 2024
6838fdd
Added nil checks on person deleted field (#502)
droberts-ctrlo Dec 19, 2024
574d881
Added "view all" option to curvals [B: 1734] (#498)
droberts-ctrlo Dec 19, 2024
96f22cb
Fix for error when trying to deselect tree value
droberts-ctrlo Jan 8, 2025
0ca8a40
Merge pull request #504 from droberts-ctrlo/multi-tree-fix
abeverley Jan 8, 2025
d4d39a5
Remove unnecessary building of record count
abeverley Jan 14, 2025
911b61c
Performance improvements for table record counting
abeverley Jan 14, 2025
66b70db
Merge branch 'dev' of github.com:ctrlo/GADS into dev
abeverley Jan 14, 2025
09b3389
Merge branch 'master' into dev
abeverley Jan 14, 2025
882a0ea
Add release notes
abeverley Jan 14, 2025
8d071a7
Added missing sub
droberts-ctrlo Jan 15, 2025
29bbae0
Merge pull request #505 from droberts-ctrlo/tree-timeline-fix
abeverley Jan 15, 2025
e7ed08e
Implement auto-recover functionality [B: 1403] (#483)
droberts-ctrlo Jan 20, 2025
8a4c033
Rebulid JS and CSS
abeverley Jan 20, 2025
1d1fcb5
Refactored code and added await to stop race conditions (#507)
droberts-ctrlo Jan 22, 2025
cce09de
Rebuild JS
abeverley Jan 22, 2025
51f4935
Autosave fix (#508)
droberts-ctrlo Jan 24, 2025
f68af2b
Rebuild JS
abeverley Jan 24, 2025
faa4f57
Made timeline async
droberts-ctrlo Jan 29, 2025
3b31380
Fix for person fields not displaying list correctly
droberts-ctrlo Feb 5, 2025
461e316
Merge pull request #514 from droberts-ctrlo/person-display-fix
abeverley Feb 6, 2025
495fba7
Merge pull request #512 from droberts-ctrlo/timeline-async
abeverley Feb 6, 2025
c382b33
Fix for similar users on multiple tenants [B:1625] (#515)
droberts-ctrlo Feb 7, 2025
7ed2747
Updated fields to only change when necessary
droberts-ctrlo Feb 25, 2025
f69457b
Merge pull request #518 from droberts-ctrlo/calc-timing-update
abeverley Mar 2, 2025
5ceacbf
Update variable name as jquery element and reuse
abeverley Mar 2, 2025
13bff7d
Moved x-frame-options header out of user_logged_in check
droberts-ctrlo Mar 5, 2025
d7ba6dc
Updated curval filter to not use custom typeahead for value
droberts-ctrlo Mar 5, 2025
910f009
Fix uninit warnings
abeverley Mar 6, 2025
e4000ee
Add missing rollback
abeverley Mar 6, 2025
5684efb
Merge pull request #521 from droberts-ctrlo/curvalFilter
abeverley Mar 6, 2025
3c19d34
Merge pull request #519 from droberts-ctrlo/clickjack
abeverley Mar 6, 2025
7a240da
Webpack-changes (#517)
droberts-ctrlo Mar 6, 2025
6462228
Fix for panic due to milliseconds in deleted field
droberts-ctrlo Mar 11, 2025
835f9eb
Merge pull request #524 from droberts-ctrlo/deleted-as-fix
abeverley Mar 12, 2025
fd93355
Added fix for timeout on autorecover [B:1361] (#513)
droberts-ctrlo Mar 13, 2025
692172f
Fix unnecessary find
abeverley Mar 13, 2025
48e7b8c
Updated code to ensure indexing on values when they are in return val…
droberts-ctrlo Mar 14, 2025
ac5ef98
Ensured error only shows once when encryption is disabled
droberts-ctrlo Mar 21, 2025
9b0f58b
Fix chronology curvals showing incorrectly [B:1783]
abeverley Mar 24, 2025
3267a14
Rebuild JS
abeverley Mar 24, 2025
c3e6c24
Fix failing tests
abeverley Mar 24, 2025
82487b3
Merge pull request #527 from droberts-ctrlo/encryption-warning-fix
abeverley Mar 26, 2025
95b67ff
Updates to Changelist (#511)
droberts-ctrlo Mar 26, 2025
dbb0c1d
Rebuild JS
abeverley Mar 26, 2025
bb233db
Fix for `setFieldValues` possibly erroring [B:1797] (#530)
droberts-ctrlo Mar 28, 2025
e5c4c7d
Rebuild JS
abeverley Mar 28, 2025
98e9560
Fix download menu not displayed [B:1798] (#532)
droberts-ctrlo Apr 3, 2025
0741c3a
Update changelist
abeverley Apr 3, 2025
b602b6d
Fix email users modal not working (B1803)
abeverley Apr 7, 2025
26a542d
Update changelog
abeverley Apr 7, 2025
82063ce
Fix panics using deleted people in calcs
abeverley Apr 8, 2025
a042b80
Update changelog
abeverley Apr 8, 2025
a300dfe
Fix for value-lookup component not being able to continue when erroring
droberts-ctrlo Apr 14, 2025
69fba54
Merge pull request #535 from droberts-ctrlo/api-error-fix
abeverley Apr 14, 2025
920a106
Rolled back error causing filter typeaheads not to render correctly
droberts-ctrlo Apr 24, 2025
492dd7a
Merge pull request #544 from droberts-ctrlo/filter-typeahead-fix
abeverley Apr 24, 2025
d33b5a7
Updated code to center progress div
droberts-ctrlo Apr 28, 2025
5e2bec2
Merge pull request #545 from droberts-ctrlo/dt-progress-center
abeverley Apr 29, 2025
0e78121
Update changelist
abeverley Apr 14, 2025
0145992
Update changelist
abeverley May 6, 2025
2fe8773
Updated tests to check for relevant options [B:1798 addendum] (#533)
droberts-ctrlo May 8, 2025
d1da429
Added loading div to timeline
droberts-ctrlo May 12, 2025
a604f1b
Update changelist
abeverley May 12, 2025
d819482
Merge pull request #547 from droberts-ctrlo/timeline-feedback
abeverley May 12, 2025
ca529ea
Fix basic authentication in API (B:1832)
abeverley May 23, 2025
02d2b68
Updated code to make GET requests where data is exchanged to use POST…
droberts-ctrlo Jun 2, 2025
e020e5d
Amended to allow for request that was missed previously [B:1533] (#553)
droberts-ctrlo Jul 7, 2025
4b072f4
Modified application to allow file uploads to save to server filesyst…
droberts-ctrlo Jul 8, 2025
cee72d6
Updated migration to take environment variable into account
droberts-ctrlo Jul 16, 2025
d425c56
Merge pull request #555 from droberts-ctrlo/file-download
abeverley Jul 16, 2025
2a08543
Changes to allow for multiple file uploads via drag and drop [B: 1799…
droberts-ctrlo Jul 18, 2025
b654f1e
Enhances file upload flexibility [B1836] (#550)
droberts-ctrlo Jul 18, 2025
ff49745
Updated component and controller code [B:1767] (#546)
droberts-ctrlo Jul 18, 2025
cee83a4
Fix failing test
abeverley Jul 18, 2025
82dd9ca
Fix graph grouping of datetime fields such as edited time
abeverley Jul 18, 2025
8e80ef2
Fix submission of graph date ranges
abeverley Jul 18, 2025
4204b87
Fix y-axis group by option list
abeverley Jul 18, 2025
4a3c4cf
Fixes for file uploads (#556)
droberts-ctrlo Jul 30, 2025
55467ea
Updated rename button to fix where it wasn't working on fields with e…
droberts-ctrlo Aug 1, 2025
660f54e
Update to allow for multiple progress bars for uploads [B:1877] (#558)
droberts-ctrlo Aug 1, 2025
d135966
Updated Changelist
droberts-ctrlo Aug 1, 2025
156688b
Merge pull request #560 from droberts-ctrlo/changelist
abeverley Aug 1, 2025
df62b38
Fix for rename not erroring correctly
droberts-ctrlo Aug 1, 2025
198f717
Merge pull request #561 from droberts-ctrlo/rename-fix
abeverley Aug 1, 2025
f5e2b47
Rebuild JS and CSS
abeverley Aug 4, 2025
cd0a8d3
Fix editing of curvals within form
abeverley Aug 5, 2025
df28cac
Rebuild JS
abeverley Aug 5, 2025
2e7bd06
Update changelog
abeverley Aug 5, 2025
c3bec65
Fix curval values being incorrect removed on save
abeverley Aug 6, 2025
3ae590e
Rebuild JS
abeverley Aug 6, 2025
0fed1ec
Update changelog
abeverley Aug 6, 2025
536421e
Fix error adding new curvals
abeverley Aug 6, 2025
d26be16
Rebuild JS
abeverley Aug 6, 2025
1c34ad8
Updated `match` endpoint to post and updated typeaheads and other cod…
droberts-ctrlo Aug 7, 2025
fd391fa
Rebuild JS
abeverley Aug 7, 2025
812cb95
Update changelog
abeverley Aug 7, 2025
65ea761
Merge branch 'master' into dev
abeverley Aug 12, 2025
2705e1b
Revert "Fix blanking of values user does not have access to" [B:1747]…
droberts-ctrlo Sep 8, 2025
dfc62b1
Close modal on cancel
Oliver-ctrlo Sep 12, 2025
6aa9400
Add initial hooks functionality
abeverley Sep 23, 2025
e271cb6
Fixes to allow tests to run within containers [B:1852] (#563)
droberts-ctrlo Sep 23, 2025
7b45a98
Updated filters to not show on blank filter
droberts-ctrlo Sep 29, 2025
7ea7de0
Merge pull request #578 from Oliver-ctrlo/patch-2
abeverley Oct 3, 2025
2e53a67
Stop automatic replies to emails
pwlodarski-ctrlo Dec 3, 2025
1804afa
Merge branch 'master' into dev
abeverley Dec 29, 2025
fa31a46
Merge pull request #581 from droberts-ctrlo/blank-filter-fix
abeverley Dec 29, 2025
89903ad
Remove auto-generated pod for schema files
abeverley Dec 29, 2025
f1867bd
Better value if invalid curval IDs on retrieval
abeverley Jan 4, 2026
3d6ae2f
Performance - link latest record version (D1098)
abeverley Jan 4, 2026
aa6a250
Add border and spacing to clarify where different text values end
droberts-ctrlo Jan 12, 2026
cb29af2
Fix views made with whitespace-only names (D1060) (#592)
pawelwlod Jan 23, 2026
427f0ec
Incorporate feedback from code review
abeverley Jan 23, 2026
82c760c
Merge branch 'dev' of github.com:ctrlo/GADS into dev
abeverley Jan 23, 2026
61dda06
Complete default report setup (D 800) (#580)
droberts-ctrlo Jan 26, 2026
39ccefd
Updated to create alert rather than modal for auto-recover [D: 831] (…
droberts-ctrlo Jan 26, 2026
ee57764
Add border and spacing to clarify where different text values end (#597)
abeverley Jan 29, 2026
3ea73d6
Merge pull request #595 from ctrlo/1098_record_version_performance
abeverley Feb 5, 2026
f042379
Updated to default to "all" view on view all button click (D795)
abeverley Feb 6, 2026
37b5f34
Fix syntax error from manual merge
abeverley Feb 6, 2026
8ca5bbc
Rebuild JS and CSS
abeverley Feb 6, 2026
e9cdf02
Fix display condition bug (D797) (#603)
droberts-ctrlo Feb 26, 2026
8554ddc
Version 2.8
droberts-ctrlo Feb 27, 2026
85377d9
Merge pull request #604 from droberts-ctrlo/changelist
abeverley Feb 27, 2026
b1a7561
Rebuild JS
abeverley Feb 27, 2026
227ec41
Bump JS version
abeverley Feb 27, 2026
5cc3806
Completed error logging to Audit (D990) (#589)
droberts-ctrlo Mar 5, 2026
d80b7d7
Restricts account permission views to admin only
Oliver-ctrlo Mar 31, 2026
e50e99c
Merge branch 'dev' of github.com:ctrlo/GADS into dev
abeverley Mar 31, 2026
9123a0d
Rebuild JS
abeverley Mar 31, 2026
69e996e
Fix record download when approval records exist (D:1350)
abeverley Mar 31, 2026
984847f
Merge pull request #610 from ctrlo/1350_downloads_fix
abeverley Apr 3, 2026
0e24633
Merge pull request #593 from pwlodarski-ctrlo/prevent-auto-replies-fix
abeverley Apr 15, 2026
6c91fe7
Merge pull request #594 from pwlodarski-ctrlo/empty-import-heading-patch
pawelwlod Apr 15, 2026
b6ec540
Update cache to ignore values over 250 characters (D1118) (#596)
droberts-ctrlo Apr 17, 2026
797d857
Remove logging line which was causing an error
droberts-ctrlo Apr 29, 2026
0ee1987
Updated changelist
droberts-ctrlo May 1, 2026
69c7dd7
Updated changelist (#615)
abeverley May 4, 2026
b78839a
Fix incorrect IDs shown for curcommon errors
abeverley May 4, 2026
2ad1456
Better error when duplicate curval IDs are requested
abeverley May 4, 2026
f48c1ff
Initial multi-factor auth functionality (#1521)
abeverley May 6, 2026
bc4d32f
Fix failing tests
abeverley May 6, 2026
c378484
Fix failing tests
abeverley May 6, 2026
3362d2f
Fix cookie secure configuration
abeverley May 6, 2026
2ebd936
Merge pull request #614 from droberts-ctrlo/drag-drop-fix
abeverley May 12, 2026
6e8dd6a
Javascript logging fix (D:1512)
abeverley May 13, 2026
6672170
Update changelist and version number
droberts-ctrlo May 13, 2026
ae830dd
Merge pull request #619 from droberts-ctrlo/changelist
abeverley May 13, 2026
8d2801e
Rebuild JS
abeverley May 13, 2026
83a2544
Update webpack file to silence deprecations we have no control over
droberts-ctrlo May 27, 2026
0d2a5d9
Require access to current record for historical (#860)
abeverley Jun 7, 2026
c395d0f
Show curval specific edited information in parent chronology (#857)
abeverley Jun 7, 2026
af971e5
Move dispatch.cgi to bin directory [D:1119]
Oliver-ctrlo Jun 15, 2026
13dcc1a
Move dispatch.fcgi to the bin directory [D: 1119]
Oliver-ctrlo Jun 15, 2026
ef6040c
Fix cypress to work with newer browser versions
droberts-ctrlo Jun 19, 2026
95f55fb
Merge pull request #637 from droberts-ctrlo/cypress-changes
abeverley Jun 19, 2026
9929166
Merge pull request #624 from droberts-ctrlo/webpack-update
abeverley Jun 19, 2026
f1dbfd0
Add wording for file uploads and update templates (D1092) (#638)
droberts-ctrlo Jul 17, 2026
47efc87
Merge pull request #633 from Oliver-ctrlo/patch-7
abeverley Jul 17, 2026
1438b37
Merge pull request #628 from ctrlo/857_chronology_curval_info
abeverley Jul 17, 2026
94720b6
Add character limit to text fields (D1559) (#623)
droberts-ctrlo Jul 17, 2026
d5a29ce
Fix infinite redirect if password expired
abeverley Jul 21, 2026
4820315
Fix user being asked to enter MFA expectantly whilst logged-in
abeverley Jul 21, 2026
cf8996b
Merge pull request #640 from droberts-ctrlo/deb13-changes
droberts-ctrlo Jul 27, 2026
7b8821c
Reduce MFA cookie to 2 days from 7 days
abeverley Aug 18, 2026
f536ed9
Merge branch 'dev' into 1521_mfa
abeverley Aug 18, 2026
2cbf056
Merge branch 'dev' into 1521_mfa
abeverley Aug 18, 2026
6637c87
Merge pull request #616 from ctrlo/1521_mfa
abeverley Aug 18, 2026
7cf6272
Date range fix (D1170)
droberts-ctrlo Aug 28, 2026
4dd217a
Add override view option to see restricted records (#814)
abeverley Sep 4, 2026
a95a99d
Add details on who created a user (#1178)
abeverley Sep 4, 2026
3248683
Add date and time format to calc fields (#943)
abeverley Sep 5, 2026
667912c
Add target version for DB migration script
abeverley Sep 5, 2026
5c87603
Fix update of user value in create user
abeverley Sep 6, 2026
a15bfcb
Fix missing HTML encoding for user drop-down label
abeverley Sep 6, 2026
f7a8da3
Fix failing test
abeverley Sep 6, 2026
a5ea268
dev-bootstrap rebase from dev (#654)
droberts-ctrlo Sep 7, 2026
0991512
Fix validation error where field length was not set (v2.9 bugfix) (#655)
droberts-ctrlo Sep 9, 2026
0ef233d
Script to import and export layout group permissions in bulk [D: 1825]
Oliver-ctrlo Sep 9, 2026
7c04941
Restricts account permission views to admin only (#609)
abeverley Sep 11, 2026
04fae5d
Merge pull request #645 from droberts-ctrlo/view-type-toggle
droberts-ctrlo Sep 11, 2026
10290ec
Do not allow access to chronology if no current access (#860)
abeverley Sep 13, 2026
38357dd
Basic lib definitions - initial set
droberts-ctrlo Sep 11, 2026
3703d1e
Update source files
droberts-ctrlo Sep 15, 2026
64847ec
Add TS6, update tsconfig, and update code where required
droberts-ctrlo Sep 15, 2026
b9368c2
Fix missed change
droberts-ctrlo Sep 15, 2026
300f1f1
Fix where `seed-database.pl` was causing an error
droberts-ctrlo Sep 23, 2026
0c3b40e
Merge pull request #663 from droberts-ctrlo/seed-database-fix
abeverley Sep 23, 2026
1c4ffa6
Fix historical view when no curval existing (#2088)
abeverley Sep 28, 2026
332d65c
Added types
droberts-ctrlo Oct 5, 2026
79c09ce
Merge pull request #667 from ctrlo/2088_historical_curvals
abeverley Oct 6, 2026
7bbbd1c
Merge pull request #656 from droberts-ctrlo/typescript-upgrade
abeverley Oct 6, 2026
ca02c6d
Merge pull request #627 from ctrlo/860_historical_access
abeverley Oct 6, 2026
92493ff
Fix for component missed in dev branch when upgrading
droberts-ctrlo Oct 7, 2026
be26b75
Merge pull request #670 from droberts-ctrlo/typescript-upgrade
abeverley Oct 7, 2026
1ba63f9
Update to fix where max_length.size was not returning expected value …
droberts-ctrlo Oct 7, 2026
e1a216e
Isolate full screen plugin
droberts-ctrlo Sep 18, 2026
848e75a
Make fullscreen button self-contained
droberts-ctrlo Oct 8, 2026
dc76823
Removed debug statements
droberts-ctrlo Oct 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
28 changes: 28 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false
insert_final_newline = false

[*.{yml,yaml}]
indent_size = 2

[*.{ts,js,jsx,tsx}]
quote_type = double
continuation_indent_size = 2
curly_brace_next_line = false
indent_brace_style = BSD
spaces_around_operators = true
spaces_around_brackets = true

[*.{pl,pm,t,PL}]
max_line_length = off
continuation_indent_size = 4
11 changes: 0 additions & 11 deletions .eslintignore

This file was deleted.

46 changes: 0 additions & 46 deletions .eslintrc.js

This file was deleted.

31 changes: 31 additions & 0 deletions .github/workflows/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

set -e

apt-get update
apt-get install -y curl gpg
curl -o- https://debian.ctrlo.com/repos/apt/debian/whatever.gpg.key | gpg --dearmor -o /usr/share/keyrings/ctrlo-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/ctrlo-keyring.gpg] https://debian.ctrlo.com/repos/apt/debian/ trixie main' | tee /etc/apt/sources.list.d/ctrlo.list

apt-get update
# Install Dancer2
apt-get install -y libapache2-mod-fastcgi libapache2-mod-perl2 libauth-yubikey-webclient-perl libauthen-oath-perl libconfig-inifiles-perl \
libconvert-base32-perl libcpanel-json-xs-perl libcrypt-saltedhash-perl libcrypt-urandom-perl libdancer2-perl \
libdancer2-plugin-auth-extensible-provider-dbic-perl libdancer2-plugin-dbic-perl libdancer2-session-dbic-perl \
libdata-dump-streamer-perl libdata-visitor-perl libdatetime-format-mysql-perl libdbd-mysql-perl libdbix-class-helpers-perl \
libdbix-class-migration-perl libdbix-class-perl libfcgi-perl libfile-copy-recursive-perl libimager-qrcode-perl libimager-perl \
libio-all-perl liblog-report-lexicon-perl liblog-report-perl liblog-report-template-perl libdancer2-plugin-logreport-perl \
libmail-box-perl libmail-transport-perl libmath-random-isaac-xs-perl libmoox-singleton-perl libpod-parser-perl \
libregexp-common-perl libstring-camelcase-perl libtemplate-perl libtext-autoformat-perl libtext-csv-perl libyaml-libyaml-perl
# Install GADS
apt-get install -y libdatetime-format-cldr-perl libtree-dagnode-perl libalgorithm-dependency-perl libdatetime-set-perl libdata-compare-perl \
libdatetime-event-random-perl libtext-csv-encoded-perl libhtml-fromtext-perl libhtml-scrubber-perl libdbd-pg-perl postgresql \
postgresql-contrib libdatetime-format-pg-perl libset-infinite-perl libtie-cache-perl libmath-round-perl \
libmoox-types-mooselike-datetime-perl libdatetime-format-datemanip-perl libinline-lua-perl lua5.2 libctrlo-crypt-xkcdpassword-perl \
libfile-slurp-perl libfile-mimeinfo-perl liblist-compare-perl libnet-oauth2-authorizationserver-perl libfontconfig1 \
libctrlo-pdf-perl libpdf-builder-perl fonts-liberation libdate-holidays-gb-perl libcgi-deurl-xs-perl libfile-bom-perl \
libdatetime-format-iso8601-perl liblog-log4perl-perl libwww-mechanize-chrome-perl chromium libfile-libmagic-perl \
libnet-saml2-perl liburl-encode-perl libtext-markdown-perl libauth-yubikey-webclient-perl libauth-yubikey-webclient-perl \
libauthen-oath-perl libconvert-base32-perl libimager-qrcode-perl libimager-perl
# test dependencies
apt-get install -y libtest-mocktime-perl libtest-tempdir-tiny-perl libdbd-sqlite3-perl libdatetime-format-sqlite-perl libtest-compile-perl
46 changes: 27 additions & 19 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
name: 'GADS Tests'
on:
on:
push:
branches:
- master
- dev
- hotfix
paths-ignore:
- '*.md'
- VERSION
pull_request:
branches:
- master
Expand All @@ -19,24 +22,17 @@ jobs:
name: 'Unit Tests'
runs-on: 'ubuntu-22.04'
timeout-minutes: 30
container: debian:trixie

steps:
- name: 'Check out the GADS repository'
uses: 'actions/checkout@v4'
- name: 'Install Non-CPAN dependencies'
- name: 'Install dependencies'
run: |
sudo apt-get install cpanminus liblua5.3-dev
# Avoid "Install CPAN dependencies" needing to compile so much
sudo apt-get install libdancer2-perl libdatetime-format-sqlite-perl libtest-most-perl libdatetime-set-perl libdbix-class-schema-loader-perl
- name: 'Build cpanfile'
run: perl bin/output_cpanfile > cpanfile
- name: 'Install CPAN dependencies'
uses: 'perl-actions/install-with-cpanm@v1'
with:
cpanfile: 'cpanfile'
chmod +x ./.github/workflows/install.sh
./.github/workflows/install.sh
- name: 'Run the unit tests'
run: |
prove -lrs -j4 t
run: prove -lrs -j4 t

webdriver_tests:
name: 'Webdriver Tests for ${{ matrix.browser.name }}'
Expand All @@ -52,7 +48,7 @@ jobs:
os: 'ubuntu-22.04'
- name: 'Firefox'
command: 'MOZ_HEADLESS=1 geckodriver --log warn &'
os: 'ubuntu-20.04'
os: 'ubuntu-22.04'

services:
postgres:
Expand All @@ -73,6 +69,7 @@ jobs:
uses: 'actions/checkout@v4'
- name: 'Install Non-CPAN dependencies'
run: |
sudo apt-get update
sudo apt-get install cpanminus liblua5.3-dev
# Avoid "Install CPAN dependencies" needing to compile so much
sudo apt-get install libdatetime-format-sqlite-perl libtest-most-perl libdatetime-set-perl libdbix-class-schema-loader-perl
Expand All @@ -89,6 +86,10 @@ jobs:
run: |
echo '*:*:*:postgres:postgrespassword' > ~/.pgpass
chmod 600 ~/.pgpass
- name: 'create uploads directory'
run: |
mkdir -p /tmp/uploads
chmod 777 /tmp/uploads
- name: 'Start the application'
env:
DANCER_CONFDIR: 'webdriver'
Expand All @@ -102,7 +103,7 @@ jobs:
run: '${{ matrix.browser.command }}'
- name: 'Run the Webdriver tests'
run: prove -lmrsv webdriver/t

cypress_tests:
name: 'Cypress Tests for ${{ matrix.browser.name }}'
runs-on: '${{ matrix.browser.os }}'
Expand All @@ -114,7 +115,8 @@ jobs:
browser:
- name: 'chrome'
os: 'ubuntu-22.04'

node_version: 24.x

services:
postgres:
image: postgres
Expand All @@ -134,6 +136,7 @@ jobs:
uses: 'actions/checkout@v4'
- name: 'Install Non-CPAN dependencies'
run: |
sudo apt-get update
sudo apt-get install cpanminus liblua5.3-dev gcc g++ libdatetime-format-sqlite-perl libtest-most-perl libdatetime-set-perl
sudo apt-get install libdbix-class-schema-loader-perl libmagic-dev postgresql-client libpng-dev libssl-dev libpq-dev
sudo apt-get install libjson-perl libsession-token-perl libnet-oauth2-authorizationserver-perl libtext-csv-encoded-perl
Expand All @@ -160,6 +163,11 @@ jobs:
run: |
sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
yarn
yarn build --no-watch
- name: 'create uploads directory'
run: |
mkdir -p /tmp/uploads
chmod 777 /tmp/uploads
- name: 'Start the application'
env:
DANCER_CONFDIR: 'webdriver'
Expand All @@ -172,13 +180,13 @@ jobs:
perl bin/app.pl &
- name: 'Run the Cypress tests'
run: yarn cypress run --browser ${{ matrix.browser.name }}

js_tests:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x]
node-version: [22.x, 24.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
Expand All @@ -187,6 +195,6 @@ jobs:
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache: 'npm'
- run: yarn
- run: yarn jest --passWithNoTests
1 change: 0 additions & 1 deletion .gitigore

This file was deleted.

2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.5.6
2.8.3
90 changes: 90 additions & 0 deletions bin/add-extension.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#!/bin/perl

use warnings;
use strict;

use FindBin qw($Bin);

use lib "$Bin/../lib";

use Getopt::Long;

use Dancer2;
use Dancer2::Plugin::DBIC;

use GADS::Schema;
use GADS::Layout;
use GADS::Config;
use GADS::Filecheck;

use Dancer2::Plugin::LogReport 'linkspace';

dispatcher close => 'error_handler';

my ( $mimetype, $extension, $instance, $layout_id );

GetOptions(
'mimetype=s' => \$mimetype,
'extension=s' => \$extension,
'instance=i' => \$instance,
'layout=i' => \$layout_id
);

unless ( $mimetype && $extension && $instance && $layout_id ) {
report ERROR => __x"Usage {command} --mimetype=<mimetype> --extension=<extension> --layout=<layout_id> --instance=<instance_id>", command => $0;
}

# we need a config instance, and a filecheck instance
GADS::Config->instance( config => config );
my $file_check = GADS::Filecheck->instance();

# Check against the already allowed mime-types and error if it already exists
if ( $file_check->check_type($mimetype) ) {
report ERROR => __x"Mimetype {type} already allowed", type=>$mimetype;
}

# Check against the already allowed extensions and error if it already exists
if ( $file_check->check_extension($extension) ) {
report ERROR => __x"Extension {extension} already allowed", extension=>$extension;
}

# We're doing this server-side as admin, therefore we don't worry about permissions
$GADS::Schema::IGNORE_PERMISSIONS = 1;


# Get the layout by instance ID
my $layout = GADS::Layout->new(
user_permission_override => 1,
user => undef,
instance_id => $instance,
config => config,
schema => schema,
);

# Get the column
my $result = $layout->column($layout_id);

# Check if the column is of the correct type - there's no point setting this property on the wrong one!
if ( $result->type ne 'file' ) {
report ERROR => __"Invalid column for properties to be set on";
}

# Make sure the user wants to add the data to the selected column.
print "Do you want to add mime type $mimetype with extension $extension to ". $result->name ." (y/n): ";
my $answer = <STDIN>;
chomp $answer;

# Do a check for y
if ( $answer =~ /^y/i ) {
my $type = +{
'name' => $mimetype,
'extension' => $extension,
};
my $types = $result->override_types;
push(@$types, $type) unless grep { $_->{extension} eq $type->{extension} && $_->{name} eq $type->{name} } @$types;
$result->override_types($types);
$result->write;
notice __"Extension and mime type added";
} else {
notice __"Addition of extension cancelled";
}
Loading
Loading