aboutsummaryrefslogtreecommitdiffstats
path: root/storage-backend
diff options
context:
space:
mode:
authorsteckbrief <steckbrief@chefmail.de>2018-10-21 00:11:53 +0200
committersteckbrief <steckbrief@chefmail.de>2018-10-21 00:11:53 +0200
commit4ff3b79b99a3919235295bf9ad055ec5a52c65ab (patch)
treeea8513d104c8810c4bd19359ed269b55faf785fe /storage-backend
parentfbd9e9bd308bda0e6bbcb34837c761065af8074b (diff)
adds possibility to sort ascending or descending by timestamp
Diffstat (limited to '')
-rw-r--r--storage-backend/index.php3
-rw-r--r--storage-backend/lib/functions.filetransfer.inc.php17
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;