diff options
-rw-r--r-- | storage-backend/index.php | 3 | ||||
-rw-r--r-- | storage-backend/lib/functions.filetransfer.inc.php | 17 |
2 files changed, 14 insertions, 6 deletions
diff --git a/storage-backend/index.php b/storage-backend/index.php index 77a38f0..3dd9a8f 100644 --- a/storage-backend/index.php +++ b/storage-backend/index.php @@ -80,7 +80,8 @@ switch ($method) { case 'list': $limit = getOptionalPostParameter('limit', $config['list_default_limit']); $offset = getOptionalPostParameter('offset', 0); - $files = listFiles($userJid, $limit, $offset); + $descending = getOptionalPostParameter('descending', 'false') === 'true'; + $files = listFiles($userJid, $limit, $offset, $descending); $result = ['list' => $files]; break; case 'upload': diff --git a/storage-backend/lib/functions.filetransfer.inc.php b/storage-backend/lib/functions.filetransfer.inc.php index b89ac7a..e0cf35b 100644 --- a/storage-backend/lib/functions.filetransfer.inc.php +++ b/storage-backend/lib/functions.filetransfer.inc.php @@ -24,14 +24,21 @@ function loadSlotParameters($slotUUID, $config) { return $slotParameters; } -function listFiles($jid, $limit = -1, $offset = 0) { +function listFiles($jid, $limit = -1, $offset = 0, $descending = false) { // Read complete set of existing slots per jid (unsorted) $slots = readSlots($jid, $limit, $offset); - // Sort ascending by timestamp - usort($slots, function($a, $b) { - return $a['sent_time'] - $b['sent_time']; - }); + if ($descending) { + // Sort descending by timestamp + usort($slots, function($a, $b) { + return $b['sent_time'] - $a['sent_time']; + }); + } else { + // Sort ascending by timestamp + usort($slots, function($a, $b) { + return $a['sent_time'] - $b['sent_time']; + }); + } // Select requested slot subset $offsetCounter = 0; |