2012-04-02 21:39:24 +04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
// only need filesystem apps
|
|
|
|
$RUNTIME_APPTYPES=array('filesystem');
|
|
|
|
|
2012-05-03 14:23:29 +04:00
|
|
|
OCP\JSON::checkLoggedIn();
|
2012-04-02 21:39:24 +04:00
|
|
|
|
|
|
|
// Load the files
|
|
|
|
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
|
2013-09-12 02:21:01 +04:00
|
|
|
$mimetypes = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes'], true) : '';
|
|
|
|
|
|
|
|
// Clean up duplicates from array and deal with non-array requests
|
|
|
|
if (is_array($mimetypes)) {
|
|
|
|
$mimetypes = array_unique($mimetypes);
|
|
|
|
} elseif (is_null($mimetypes)) {
|
|
|
|
$mimetypes = array($_GET['mimetypes']);
|
|
|
|
}
|
2012-04-02 21:39:24 +04:00
|
|
|
|
|
|
|
// make filelist
|
|
|
|
$files = array();
|
2013-05-17 06:54:08 +04:00
|
|
|
// If a type other than directory is requested first load them.
|
2013-09-05 20:40:55 +04:00
|
|
|
if($mimetypes && !in_array('httpd/unix-directory', $mimetypes)) {
|
2013-09-12 02:21:01 +04:00
|
|
|
foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, 'httpd/unix-directory' ) as $file ) {
|
2013-09-14 16:35:23 +04:00
|
|
|
$file['directory'] = $dir;
|
2013-09-17 15:33:47 +04:00
|
|
|
$file['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($file['mimetype']);
|
2013-09-12 02:21:01 +04:00
|
|
|
$file["date"] = OCP\Util::formatDate($file["mtime"]);
|
2013-09-20 18:46:33 +04:00
|
|
|
$file['mimetype_icon'] = \OCA\Files\Helper::determineIcon($file);
|
2013-09-12 02:21:01 +04:00
|
|
|
$files[] = $file;
|
2013-05-17 06:54:08 +04:00
|
|
|
}
|
|
|
|
}
|
2013-09-05 18:54:12 +04:00
|
|
|
|
2013-09-05 20:40:55 +04:00
|
|
|
if (is_array($mimetypes) && count($mimetypes)) {
|
|
|
|
foreach ($mimetypes as $mimetype) {
|
2013-09-12 02:21:01 +04:00
|
|
|
foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $file ) {
|
2013-09-14 16:35:23 +04:00
|
|
|
$file['directory'] = $dir;
|
2013-09-17 15:33:47 +04:00
|
|
|
$file['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($file['mimetype']);
|
2013-09-12 02:21:01 +04:00
|
|
|
$file["date"] = OCP\Util::formatDate($file["mtime"]);
|
2013-09-20 18:46:33 +04:00
|
|
|
$file['mimetype_icon'] = \OCA\Files\Helper::determineIcon($file);
|
2013-09-12 02:21:01 +04:00
|
|
|
$files[] = $file;
|
2013-09-05 18:54:12 +04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
2013-09-12 02:21:01 +04:00
|
|
|
foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $file ) {
|
2013-09-14 16:35:23 +04:00
|
|
|
$file['directory'] = $dir;
|
2013-09-17 15:33:47 +04:00
|
|
|
$file['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($file['mimetype']);
|
2013-09-12 02:21:01 +04:00
|
|
|
$file["date"] = OCP\Util::formatDate($file["mtime"]);
|
2013-09-20 18:46:33 +04:00
|
|
|
$file['mimetype_icon'] = \OCA\Files\Helper::determineIcon($file);
|
2013-09-12 02:21:01 +04:00
|
|
|
$files[] = $file;
|
2013-09-05 18:54:12 +04:00
|
|
|
}
|
2012-04-02 21:39:24 +04:00
|
|
|
}
|
|
|
|
|
2013-09-06 01:17:53 +04:00
|
|
|
// Sort by name
|
2013-09-12 02:21:01 +04:00
|
|
|
usort($files, function ($a, $b) {
|
2013-09-06 01:17:53 +04:00
|
|
|
if ($a['name'] === $b['name']) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
return ($a['name'] < $b['name']) ? -1 : 1;
|
2013-09-12 02:21:01 +04:00
|
|
|
});
|
2013-09-06 01:17:53 +04:00
|
|
|
|
2013-09-05 20:40:55 +04:00
|
|
|
OC_JSON::success(array('data' => $files));
|