diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Collaboration/Collaborators/MailPlugin.php | 19 | ||||
-rw-r--r-- | lib/private/Files/ObjectStore/ObjectStoreStorage.php | 4 | ||||
-rw-r--r-- | lib/private/Template/JSCombiner.php | 9 |
3 files changed, 26 insertions, 6 deletions
diff --git a/lib/private/Collaboration/Collaborators/MailPlugin.php b/lib/private/Collaboration/Collaborators/MailPlugin.php index 464b6702066..075689a068e 100644 --- a/lib/private/Collaboration/Collaborators/MailPlugin.php +++ b/lib/private/Collaboration/Collaborators/MailPlugin.php @@ -73,7 +73,7 @@ class MailPlugin implements ISearchPlugin { * @since 13.0.0 */ public function search($search, $limit, $offset, ISearchResult $searchResult) { - $result = ['wide' => [], 'exact' => []]; + $result = $userResults = ['wide' => [], 'exact' => []]; $userType = new SearchResultType('users'); $emailType = new SearchResultType('emails'); @@ -136,14 +136,13 @@ class MailPlugin implements ISearchPlugin { } if (!$this->isCurrentUser($cloud) && !$searchResult->hasResult($userType, $cloud->getUser())) { - $singleResult = [[ + $userResults['wide'][] = [ 'label' => $contact['FN'] . " ($emailAddress)", 'value' => [ 'shareType' => Share::SHARE_TYPE_USER, 'shareWith' => $cloud->getUser(), - ]], + ], ]; - $searchResult->addResultSet($userType, $singleResult, []); } } continue; @@ -173,12 +172,19 @@ class MailPlugin implements ISearchPlugin { } } + $reachedEnd = true; if (!$this->shareeEnumeration) { $result['wide'] = []; + $userResults['wide'] = []; } else { + $reachedEnd = (count($result['wide']) < $offset + $limit) && + (count($userResults['wide']) < $offset + $limit); + $result['wide'] = array_slice($result['wide'], $offset, $limit); + $userResults['wide'] = array_slice($userResults['wide'], $offset, $limit); } + if (!$searchResult->hasExactIdMatch($emailType) && filter_var($search, FILTER_VALIDATE_EMAIL)) { $result['exact'][] = [ 'label' => $search, @@ -189,9 +195,12 @@ class MailPlugin implements ISearchPlugin { ]; } + if (!empty($userResults['wide'])) { + $searchResult->addResultSet($userType, $userResults['wide'], []); + } $searchResult->addResultSet($emailType, $result['wide'], $result['exact']); - return true; + return !$reachedEnd; } public function isCurrentUser(ICloudId $cloud) { diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index acb8d670780..4c540071471 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -424,4 +424,8 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { public function hasUpdated($path, $time) { return false; } + + public function needsPartFile() { + return false; + } } diff --git a/lib/private/Template/JSCombiner.php b/lib/private/Template/JSCombiner.php index c5adcee6854..bc548c22fd0 100644 --- a/lib/private/Template/JSCombiner.php +++ b/lib/private/Template/JSCombiner.php @@ -104,13 +104,20 @@ class JSCombiner { * @return bool */ protected function isCached($fileName, ISimpleFolder $folder) { - $fileName = str_replace('.json', '.js', $fileName) . '.deps'; + $fileName = str_replace('.json', '.js', $fileName); + + if (!$folder->fileExists($fileName)) { + return false; + } + + $fileName = $fileName . '.deps'; try { $deps = $this->depsCache->get($folder->getName() . '-' . $fileName); if ($deps === null || $deps === '') { $depFile = $folder->getFile($fileName); $deps = $depFile->getContent(); } + // check again if ($deps === null || $deps === '') { $this->logger->info('JSCombiner: deps file empty: ' . $fileName); |