@@ -88,6 +88,7 @@ public function getPropertyDefinitionsForScope(string $href, ?string $path): arr
8888 new SearchPropertyDefinition ('{DAV:}getlastmodified ' , true , true , true , SearchPropertyDefinition::DATATYPE_DATETIME ),
8989 new SearchPropertyDefinition ('{DAV:}creationdate ' , true , true , true , SearchPropertyDefinition::DATATYPE_DATETIME ),
9090 new SearchPropertyDefinition ('{http://nextcloud.org/ns}upload_time ' , true , true , true , SearchPropertyDefinition::DATATYPE_DATETIME ),
91+ new SearchPropertyDefinition ('{http://nextcloud.org/ns}last_activity ' , true , false , true , SearchPropertyDefinition::DATATYPE_DATETIME ),
9192 new SearchPropertyDefinition (FilesPlugin::SIZE_PROPERTYNAME , true , true , true , SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER ),
9293 new SearchPropertyDefinition (TagsPlugin::FAVORITE_PROPERTYNAME , true , true , true , SearchPropertyDefinition::DATATYPE_BOOLEAN ),
9394 new SearchPropertyDefinition (FilesPlugin::INTERNAL_FILEID_PROPERTYNAME , true , true , false , SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER ),
@@ -304,6 +305,8 @@ private function getSearchResultProperty(SearchResult $result, SearchPropertyDef
304305 return $ node ->getNode ()->getCreationTime ();
305306 case '{http://nextcloud.org/ns}upload_time ' :
306307 return $ node ->getNode ()->getUploadTime ();
308+ case '{http://nextcloud.org/ns}last_activity ' :
309+ return max ($ node ->getNode ()->getUploadTime (), $ node ->getNode ()->getMTime ());
307310 case FilesPlugin::SIZE_PROPERTYNAME :
308311 return $ node ->getSize ();
309312 case FilesPlugin::INTERNAL_FILEID_PROPERTYNAME :
@@ -332,6 +335,8 @@ private function transformQuery(Query $query, ?SearchBinaryOperator $scopeOperat
332335 $ direction = $ order ->order === Order::ASC ? ISearchOrder::DIRECTION_ASCENDING : ISearchOrder::DIRECTION_DESCENDING ;
333336 if (str_starts_with ($ order ->property ->name , FilesPlugin::FILE_METADATA_PREFIX )) {
334337 return new SearchOrder ($ direction , substr ($ order ->property ->name , strlen (FilesPlugin::FILE_METADATA_PREFIX )), IMetadataQuery::EXTRA );
338+ } elseif ($ order ->property ->name === FilesPlugin::LAST_ACTIVITY_PROPERTYNAME ) {
339+ return new SearchOrder ($ direction , 'last_activity ' );
335340 } else {
336341 return new SearchOrder ($ direction , $ this ->mapPropertyNameToColumn ($ order ->property ));
337342 }
0 commit comments