@@ -33,6 +33,8 @@ if (is_array($mimetypes) && count($mimetypes)) { | |||
} else { | |||
$files = array_merge($files, \OC\Files\Filesystem::getDirectoryContent($dir)); | |||
} | |||
// Sort by name | |||
usort($files, array('\OCA\Files\Helper', 'fileCmp')); | |||
$result = array(); | |||
foreach ($files as $file) { | |||
@@ -51,7 +53,4 @@ foreach ($files as $file) { | |||
$result[] = $fileData; | |||
} | |||
// Sort by name | |||
usort($result, array('\OCA\Files\Helper', 'fileCmp')); | |||
OC_JSON::success(array('data' => $result)); |
@@ -51,17 +51,20 @@ class Helper | |||
/** | |||
* Comparator function to sort files alphabetically and have | |||
* the directories appear first | |||
* @param array $a file | |||
* @param array $b file | |||
* @return -1 if $a must come before $b, 1 otherwise | |||
* | |||
* @param \OCP\Files\FileInfo $a file | |||
* @param \OCP\Files\FileInfo $b file | |||
* @return int -1 if $a must come before $b, 1 otherwise | |||
*/ | |||
public static function fileCmp($a, $b) { | |||
if ($a['type'] === 'dir' and $b['type'] !== 'dir') { | |||
$aType = $a->getType(); | |||
$bType = $b->getType(); | |||
if ($aType === 'dir' and $bType !== 'dir') { | |||
return -1; | |||
} elseif ($a['type'] !== 'dir' and $b['type'] === 'dir') { | |||
} elseif ($aType !== 'dir' and $bType === 'dir') { | |||
return 1; | |||
} else { | |||
return strnatcasecmp($a['name'], $b['name']); | |||
return strnatcasecmp($a->getName(), $b->getName()); | |||
} | |||
} | |||
@@ -2,13 +2,15 @@ | |||
namespace OCA\Files_Trashbin; | |||
use OC\Files\FileInfo; | |||
class Helper | |||
{ | |||
/** | |||
* Retrieves the contents of a trash bin directory. | |||
* @param string $dir path to the directory inside the trashbin | |||
* or empty to retrieve the root of the trashbin | |||
* @return array of files | |||
* @return \OCP\Files\FileInfo[] | |||
*/ | |||
public static function getTrashFiles($dir){ | |||
$result = array(); | |||
@@ -52,6 +54,8 @@ class Helper | |||
$files = array(); | |||
$id = 0; | |||
list($storage, $internalPath) = $view->resolvePath($dir); | |||
$absoluteDir = $view->getAbsolutePath($dir); | |||
foreach ($result as $r) { | |||
$i = array(); | |||
$i['id'] = $id++; | |||
@@ -77,7 +81,7 @@ class Helper | |||
$i['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($r['mime']); | |||
} | |||
$i['icon'] = \OCA\Files\Helper::determineIcon($i); | |||
$files[] = $i; | |||
$files[] = new FileInfo($absoluteDir . '/' . $i['name'], $storage, $internalPath . '/' . $i['name'], $i); | |||
} | |||
usort($files, array('\OCA\Files\Helper', 'fileCmp')); |