[cmd:netmount] fix #1925 allow selection of multi-level hierarchy

This commit is contained in:
nao-pon
2017-03-14 22:00:17 +09:00
parent e44ee7df6b
commit d41feeacb7
6 changed files with 110 additions and 33 deletions
+17 -7
View File
@@ -418,7 +418,7 @@ class elFinderVolumeOneDrive extends elFinderVolumeDriver
if (empty($folder->childCount)) {
$stat['dirs'] = 0;
} else {
$stat['dirs'] = -1;
$stat['dirs'] = -1;
}
} else {
if (isset($raw->file->mimeType)) {
@@ -566,9 +566,13 @@ class elFinderVolumeOneDrive extends elFinderVolumeDriver
}
if (empty($this->token)) {
$result = null;
$result = false;
} else {
$result = $this->_od_query('root', false, false, array(
$path = $options['path'];
if ($path === '/') {
$path = 'root';
}
$result = $this->_od_query($path, false, false, array(
'query' => array(
'select' => 'id,name',
'filter' => 'folder ne null',
@@ -576,7 +580,7 @@ class elFinderVolumeOneDrive extends elFinderVolumeDriver
));
}
if (!$result) {
if ($result === false) {
$cdata = '';
$innerKeys = array('cmd', 'host', 'options', 'pass', 'protocol', 'user');
$this->ARGS = $_SERVER['REQUEST_METHOD'] === 'POST' ? $_POST : $_GET;
@@ -621,11 +625,17 @@ class elFinderVolumeOneDrive extends elFinderVolumeDriver
} else {
$folders = [];
foreach ($result as $res) {
$folders[$res->id] = $res->name;
if ($result) {
foreach ($result as $res) {
$folders[$res->id] = $res->name;
}
natcasesort($folders);
}
if ($options['pass'] === 'folders') {
return ['exit' => true, 'folders' => $folders];
}
natcasesort($folders);
$folders = ['root' => 'My OneDrive'] + $folders;
$folders = json_encode($folders);