diff options
author | steckbrief <steckbrief@chefmail.de> | 2018-10-21 00:11:53 +0200 |
---|---|---|
committer | steckbrief <steckbrief@chefmail.de> | 2018-10-21 00:11:53 +0200 |
commit | 4ff3b79b99a3919235295bf9ad055ec5a52c65ab (patch) | |
tree | ea8513d104c8810c4bd19359ed269b55faf785fe /storage-backend | |
parent | fbd9e9bd308bda0e6bbcb34837c761065af8074b (diff) |
adds possibility to sort ascending or descending by timestamp
Diffstat (limited to 'storage-backend')
-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; |