summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkondou <kondou@ts.unde.re>2013-09-05 16:54:12 +0200
committerkondou <kondou@ts.unde.re>2013-09-05 16:54:12 +0200
commit992b59f70bec5dcc6681db14c3a97036b4961403 (patch)
treef6b4acf1662e16a82419d2771415aacfd0808cdf
parent0527fb05ad4106db199bf3937b753563061c39bf (diff)
downloadnextcloud-server-992b59f70bec5dcc6681db14c3a97036b4961403.tar.gz
nextcloud-server-992b59f70bec5dcc6681db14c3a97036b4961403.zip
Make it possible to pass rawlist.php an JSON array, to filter by more than one mimetype
-rw-r--r--apps/files/ajax/rawlist.php22
-rw-r--r--core/js/oc-dialogs.js15
2 files changed, 28 insertions, 9 deletions
diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php
index f568afad4da..37fd12f71d0 100644
--- a/apps/files/ajax/rawlist.php
+++ b/apps/files/ajax/rawlist.php
@@ -12,21 +12,33 @@ OCP\JSON::checkLoggedIn();
// Load the files
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
$mimetype = isset($_GET['mimetype']) ? $_GET['mimetype'] : '';
+$mimetypeList = isset($_GET['mimetype_list']) ? json_decode($_GET['mimetype_list'], true) : '';
// make filelist
$files = array();
// If a type other than directory is requested first load them.
-if($mimetype && strpos($mimetype, 'httpd/unix-directory') === false) {
+if( ($mimetype || $mimetypeList) && strpos($mimetype, 'httpd/unix-directory') === false) {
foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, 'httpd/unix-directory' ) as $i ) {
$i["date"] = OCP\Util::formatDate($i["mtime"] );
$i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
$files[] = $i;
}
}
-foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) {
- $i["date"] = OCP\Util::formatDate($i["mtime"] );
- $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
- $files[] = $i;
+
+if (is_array($mimetypeList)) {
+ foreach ($mimetypeList as $mimetype) {
+ foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) {
+ $i["date"] = OCP\Util::formatDate($i["mtime"]);
+ $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
+ $files[] = $i;
+ }
+ }
+} else {
+ foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) {
+ $i["date"] = OCP\Util::formatDate($i["mtime"] );
+ $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
+ $files[] = $i;
+ }
}
OCP\JSON::success(array('data' => $files));
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index f184a1022bc..f4c339702e1 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -244,10 +244,17 @@ var OCdialogs = {
return defer.promise();
},
_getFileList: function(dir, mimeType) {
- return $.getJSON(
- OC.filePath('files', 'ajax', 'rawlist.php'),
- {dir: dir, mimetype: mimeType}
- );
+ if (typeof(mimeType) === "object") {
+ return $.getJSON(
+ OC.filePath('files', 'ajax', 'rawlist.php'),
+ {dir: dir, "mimetype_list": JSON.stringify(mimeType)}
+ );
+ } else {
+ return $.getJSON(
+ OC.filePath('files', 'ajax', 'rawlist.php'),
+ {dir: dir, mimetype: mimeType}
+ );
+ }
},
_determineValue: function(element) {
if ( $(element).attr('type') === 'checkbox' ) {