lsgs / redcap-extended-reports

Provides various additional options to enhance REDCap's built-in reporting functionality.
GNU General Public License v3.0
1 stars 3 forks source link

deleteReport with non-required subsettings causes fatal error #27

Open dr01d3r opened 6 days ago

dr01d3r commented 6 days ago

https://github.com/lsgs/redcap-extended-reports/blob/9898fafeddeb039e7d657c248af7160f64b9f005/ExtendedReports.php#L511

If an extended report is configured (via report_id), with one or more subsettings left blank, and the REDCap report is deleted, the referenced reset action will cause a fatal error when trying to reset a null array.

image

TypeError: reset(): Argument #1 ($array) must be of type array, null given in C:\inetpub\wwwroot\redcap\modules\extended_reports_v2.1.8\ExtendedReports.php:511
Stack trace:
#0 C:\inetpub\wwwroot\redcap\modules\extended_reports_v2.1.8\ExtendedReports.php(511): reset(NULL)
#1 C:\inetpub\wwwroot\redcap\modules\extended_reports_v2.1.8\ExtendedReports.php(83): MCRI\ExtendedReports\ExtendedReports->deleteReport('5006')
#2 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\ExternalModules\classes\ExternalModules.php(3188): MCRI\ExtendedReports\ExtendedReports->redcap_every_page_before_render('542')
#3 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\ExternalModules\classes\ExternalModules.php(3355): ExternalModules\ExternalModules::startHook('extended_report...', 'v2.1.8', Array)
#4 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\ExternalModules\classes\ExternalModules.php(3388): ExternalModules\ExternalModules::ExternalModules\{closure}('extended_report...', 'v2.1.8')
#5 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\Classes\Hooks.php(41): ExternalModules\ExternalModules::callHook('every_page_befo...', Array)
#6 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\Classes\System.php(998): Hooks::call('redcap_every_pa...', Array)
#7 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\Config\init_project.php(7): System::initProjectPage()
#8 C:\inetpub\wwwroot\redcap\redcap_v14.3.11\DataExport\report_delete_ajax.php(4): require_once('C:\\inetpub\\wwwr...')
#9 {main}