mirror of
https://github.com/nextcloud/server.git
synced 2026-06-11 09:42:09 -04:00
Merge pull request #31193 from nextcloud/enh/webdav-propfind-count-sub-elements
Add optional WebDav propfind properties to count sub elements
This commit is contained in:
commit
b85bdf4427
1 changed files with 20 additions and 1 deletions
|
|
@ -77,6 +77,8 @@ class FilesPlugin extends ServerPlugin {
|
|||
public const UPLOAD_TIME_PROPERTYNAME = '{http://nextcloud.org/ns}upload_time';
|
||||
public const CREATION_TIME_PROPERTYNAME = '{http://nextcloud.org/ns}creation_time';
|
||||
public const SHARE_NOTE = '{http://nextcloud.org/ns}note';
|
||||
public const SUBFOLDER_COUNT_PROPERTYNAME = '{http://nextcloud.org/ns}contained-folder-count';
|
||||
public const SUBFILE_COUNT_PROPERTYNAME = '{http://nextcloud.org/ns}contained-file-count';
|
||||
|
||||
/**
|
||||
* Reference to main server object
|
||||
|
|
@ -435,7 +437,7 @@ class FilesPlugin extends ServerPlugin {
|
|||
});
|
||||
}
|
||||
|
||||
if ($node instanceof \OCA\DAV\Connector\Sabre\Directory) {
|
||||
if ($node instanceof Directory) {
|
||||
$propFind->handle(self::SIZE_PROPERTYNAME, function () use ($node) {
|
||||
return $node->getSize();
|
||||
});
|
||||
|
|
@ -443,6 +445,23 @@ class FilesPlugin extends ServerPlugin {
|
|||
$propFind->handle(self::IS_ENCRYPTED_PROPERTYNAME, function () use ($node) {
|
||||
return $node->getFileInfo()->isEncrypted() ? '1' : '0';
|
||||
});
|
||||
|
||||
$requestProperties = $propFind->getRequestedProperties();
|
||||
if (in_array(self::SUBFILE_COUNT_PROPERTYNAME, $requestProperties, true)
|
||||
|| in_array(self::SUBFOLDER_COUNT_PROPERTYNAME, $requestProperties, true)) {
|
||||
$nbFiles = 0;
|
||||
$nbFolders = 0;
|
||||
foreach ($node->getChildren() as $child) {
|
||||
if ($child instanceof File) {
|
||||
$nbFiles++;
|
||||
} elseif ($child instanceof Directory) {
|
||||
$nbFolders++;
|
||||
}
|
||||
}
|
||||
|
||||
$propFind->handle(self::SUBFILE_COUNT_PROPERTYNAME, $nbFiles);
|
||||
$propFind->handle(self::SUBFOLDER_COUNT_PROPERTYNAME, $nbFolders);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue