From f954848667ae3416849cf70b8ebfe8d594df0b8a Mon Sep 17 00:00:00 2001 From: "Shamiso.Jaravaza" <33659194+ssj365@users.noreply.github.com> Date: Mon, 5 Dec 2022 08:30:09 -0700 Subject: [PATCH] MDL-74779 mod_bigbluebuttonbn: Fix recording sort AMOS BEGIN MOV [config_recordings_sortorder,mod_bigbluebuttonbn],[config_recordings_asc_sort,mod_bigbluebuttonbn] MOV [config_recordings_sortorder_description,mod_bigbluebuttonbn],[config_recordings_asc_sort_description,mod_bigbluebuttonbn] AMOS END --- .../classes/local/proxy/recording_proxy.php | 9 +++------ mod/bigbluebuttonbn/classes/recording.php | 6 ++++-- mod/bigbluebuttonbn/classes/settings.php | 8 ++++---- mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php | 4 ++-- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/mod/bigbluebuttonbn/classes/local/proxy/recording_proxy.php b/mod/bigbluebuttonbn/classes/local/proxy/recording_proxy.php index 27595265d32..777f277badd 100644 --- a/mod/bigbluebuttonbn/classes/local/proxy/recording_proxy.php +++ b/mod/bigbluebuttonbn/classes/local/proxy/recording_proxy.php @@ -288,17 +288,14 @@ class recording_proxy extends proxy_base { public static function sort_recordings(array $recordings): array { global $CFG; - $resultless = !empty($CFG->bigbluebuttonbn_recordings_sortorder) ? -1 : 1; - $resultmore = !empty($CFG->bigbluebuttonbn_recordings_sortorder) ? 1 : -1; - - uasort($recordings, function($a, $b) use ($resultless, $resultmore) { + uasort($recordings, function($a, $b) { if ($a['startTime'] < $b['startTime']) { - return $resultless; + return -1; } if ($a['startTime'] == $b['startTime']) { return 0; } - return $resultmore; + return 1; }); return $recordings; diff --git a/mod/bigbluebuttonbn/classes/recording.php b/mod/bigbluebuttonbn/classes/recording.php index 6a6607784c1..877b4c68098 100644 --- a/mod/bigbluebuttonbn/classes/recording.php +++ b/mod/bigbluebuttonbn/classes/recording.php @@ -689,16 +689,18 @@ class recording extends persistent { * @return recording[] */ protected static function fetch_records(array $selects, array $params): array { - global $DB; + global $DB, $CFG; $withindays = time() - (self::RECORDING_TIME_LIMIT_DAYS * DAYSECS); + // Sort for recordings when fetching from the database. + $recordingsort = $CFG->bigbluebuttonbn_recordings_asc_sort ? 'timecreated ASC' : 'timecreated DESC'; // Fetch the local data. Arbitrary sort by id, so we get the same result on different db engines. $recordings = $DB->get_records_select( static::TABLE, implode(" AND ", $selects), $params, - self::DEFAULT_RECORDING_SORT + $recordingsort ); // Grab the recording IDs. diff --git a/mod/bigbluebuttonbn/classes/settings.php b/mod/bigbluebuttonbn/classes/settings.php index 325ea23123b..588dd5b6003 100644 --- a/mod/bigbluebuttonbn/classes/settings.php +++ b/mod/bigbluebuttonbn/classes/settings.php @@ -486,13 +486,13 @@ class settings { $showrecordingsettings ); $item = new admin_setting_configcheckbox( - 'bigbluebuttonbn_recordings_sortorder', - get_string('config_recordings_sortorder', 'bigbluebuttonbn'), - get_string('config_recordings_sortorder_description', 'bigbluebuttonbn'), + 'bigbluebuttonbn_recordings_asc_sort', + get_string('config_recordings_asc_sort', 'bigbluebuttonbn'), + get_string('config_recordings_asc_sort_description', 'bigbluebuttonbn'), 0 ); $this->add_conditional_element( - 'recordings_sortorder', + 'recordings_asc_sort', $item, $showrecordingsettings ); diff --git a/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php b/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php index 62674128b7b..42d602c6898 100644 --- a/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php +++ b/mod/bigbluebuttonbn/lang/en/bigbluebuttonbn.php @@ -181,8 +181,8 @@ $string['config_recordings_preview_default'] = 'Preview is enabled by default'; $string['config_recordings_preview_default_description'] = 'If enabled the table includes a preview of the presentation.'; $string['config_recordings_preview_editable'] = 'Preview feature can be edited'; $string['config_recordings_preview_editable_description'] = 'Preview feature can be edited when the instance is added or updated.'; -$string['config_recordings_sortorder'] = 'Order the recordings in ascending order.'; -$string['config_recordings_sortorder_description'] = 'By default recordings are displayed in descending order. When checked they will be sorted in ascending order.'; +$string['config_recordings_asc_sort'] = 'Order the recordings in ascending order.'; +$string['config_recordings_asc_sort_description'] = 'By default recordings are displayed in descending order. When checked they will be sorted in ascending order.'; $string['config_importrecordings'] = 'Import recordings'; $string['config_importrecordings_description'] = 'These settings are feature specific.';