summaryrefslogtreecommitdiffstats
path: root/apps/files/ajax/rawlist.php
blob: f18bbffb74af980339038515439244d787ec0634 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php

OCP\JSON::checkLoggedIn();
\OC::$session->close();

// Load the files
$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
$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']);
}

// make filelist
$files = array();
/**
 * @var \OCP\Files\FileInfo[] $files
 */
// If a type other than directory is requested first load them.
if ($mimetypes && !in_array('httpd/unix-directory', $mimetypes)) {
	$files = array_merge($files, \OC\Files\Filesystem::getDirectoryContent($dir, 'httpd/unix-directory'));
}

if (is_array($mimetypes) && count($mimetypes)) {
	foreach ($mimetypes as $mimetype) {
		$files = array_merge($files, \OC\Files\Filesystem::getDirectoryContent($dir, $mimetype));
	}
} 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) {
	$fileData = array();
	$fileData['directory'] = $dir;
	$fileData['name'] = $file->getName();
	$fileData['type'] = $file->getType();
	$fileData['path'] = $file['path'];
	$fileData['id'] = $file->getId();
	$fileData['size'] = $file->getSize();
	$fileData['mtime'] = $file->getMtime();
	$fileData['mimetype'] = $file->getMimetype();
	$fileData['isPreviewAvailable'] = \OC::$server->getPreviewManager()->isMimeSupported($file->getMimetype());
	$fileData["date"] = OCP\Util::formatDate($file->getMtime());
	$fileData['mimetype_icon'] = \OCA\Files\Helper::determineIcon($file);
	$result[] = $fileData;
}

OC_JSON::success(array('data' => $result));