Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-04-13 11:35:45 +0300
committerMorris Jobke <hey@morrisjobke.de>2015-04-13 11:38:08 +0300
commit59efcb63a334b70b3f392a4eea18c67e79ac4a21 (patch)
treeb2c1403859e1d85963d60335628bcbaf4d2bc680 /apps/files/ajax
parent0a72e66e9feaf555c485f312de1cd3377aeb6a9f (diff)
fix filepicker
* add ability to filter for mimetype * fixes #15526 * fixes #11563
Diffstat (limited to 'apps/files/ajax')
-rw-r--r--apps/files/ajax/list.php26
1 files changed, 24 insertions, 2 deletions
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 8daea6ca3fe..19129e9de11 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -45,10 +45,32 @@ try {
$sortAttribute = isset($_GET['sort']) ? (string)$_GET['sort'] : 'name';
$sortDirection = isset($_GET['sortdirection']) ? ($_GET['sortdirection'] === 'desc') : false;
+ $mimetypeFilters = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes']) : '';
- // make filelist
+ $files = [];
+ // Clean up duplicates from array
+ if (is_array($mimetypeFilters) && count($mimetypeFilters)) {
+ $mimetypeFilters = array_unique($mimetypeFilters);
+
+ if (!in_array('httpd/unix-directory', $mimetypeFilters)) {
+ // append folder filter to be able to browse folders
+ $mimetypeFilters[] = 'httpd/unix-directory';
+ }
+
+ // create filelist with mimetype filter - as getFiles only supports on
+ // mimetype filter at once we will filter this folder for each
+ // mimetypeFilter
+ foreach ($mimetypeFilters as $mimetypeFilter) {
+ $files = array_merge($files, \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection, $mimetypeFilter));
+ }
+
+ // sort the files accordingly
+ $files = \OCA\Files\Helper::sortFiles($files, $sortAttribute, $sortDirection);
+ } else {
+ // create file list without mimetype filter
+ $files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
+ }
- $files = \OCA\Files\Helper::getFiles($dir, $sortAttribute, $sortDirection);
$files = \OCA\Files\Helper::populateTags($files);
$data['directory'] = $dir;
$data['files'] = \OCA\Files\Helper::formatFileInfos($files);