Git'Fellow
a1681b0756
chore(db): Apply query prepared statements
...
Fix: psalm
fix: bad file
fix: bug
chore: add batch
chore: add batch
chore: add batch
fix: psalm
2024-10-17 20:30:47 +02:00
provokateurin
9836e9b164
chore(deps): Update nextcloud/coding-standard to v1.3.1
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Daniel Kesselberg
af6de04e9e
style: update codestyle for coding-standard 1.2.3
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Robin Appelman
ad88fd07e3
fix: make joining on tags in search queries work with sharding
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:39 +02:00
Robin Appelman
c82d382a20
feat: add base class for extending the query builder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-12 17:01:39 +02:00
Andy Scherzinger
dae7c159f7
chore: Add SPDX header
...
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Maxence Lange
4e1814acd1
migrate metadata to lazy appconfig
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-02-14 13:30:27 -01:00
Maxence Lange
3af12b2a50
ignore metadata if table is empty
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-14 09:28:58 -01:00
Maxence Lange
380b81315a
moving metadataquery
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-13 22:25:37 -01:00
Benjamin Gaussorgues
a75a93af8e
feat(files): Allow advanced search for files
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-10 09:21:16 +01:00
Louis Chemineau
d3a313f192
Support getting and setting metadata in DAV requests
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-08 16:23:53 +01:00
Maxence Lange
e62e9e3dbf
IFilesMetadata
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 00:21:38 -01:00
Julius Härtl
eddb64f8c3
Merge pull request #37969 from nextcloud/poc/noid/systemtags-perf-tag-endpoint
2023-06-28 07:53:35 +02:00
Arthur Schiwon
49db546f78
fix: include invisible tags for admins
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +02:00
Arthur Schiwon
783e32a64d
fix: favorites view and universal search against tags
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +02:00
Arthur Schiwon
b0d1cf5730
fix: change if with conditionless else to switch; and a parameter value
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +02:00
Arthur Schiwon
58f7fd2370
use efficient tag retrieval on DAV report request
...
- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar
Example request body:
<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns " xmlns:nc="http://nextcloud.org/ns " xmlns:ocs="http://open-collaboration-services.org/ns ">
<d:prop>
<d:getcontentlength/>
<d:getcontenttype/>
<d:getetag/>
<d:getlastmodified/>
<d:resourcetype/>
<nc:face-detections/>
<nc:file-metadata-size/>
<nc:has-preview/>
<nc:realpath/>
<oc:favorite/>
<oc:fileid/>
<oc:permissions/>
<nc:nbItems/>
</d:prop>
<oc:filter-rules>
<oc:systemtag>32</oc:systemtag>
</oc:filter-rules>
<d:limit>
<d:nresults>50</d:nresults>
<nc:firstresult>0</nc:firstresult>
</d:limit>
</oc:filter-files>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +02:00
Arthur Schiwon
71e41ffeeb
refactor: declare getMount() and getMountsIn() at IRootFolder
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +02:00
Arthur Schiwon
f6ac874dbf
chore: ugly type juggling
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +02:00
Arthur Schiwon
eb50b6c6aa
fix: expect interface, not a specific implementation
...
- fixes a regression when deleting folders while music app was enabled,
for a LazyRoot was passed to this method.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:13 +02:00
Arthur Schiwon
df662f50bd
refactor: remove where specification from SELECT getter
...
- search constraints are now fully in control of
SystemTagsInFilesDetector::detectAssignedSystemTagsIn(), avoids
duplication of a WHERE statement
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-10 18:48:06 +02:00
Arthur Schiwon
dbfd2f936a
refactor: remove SystemTag logic from Folder into QuerySearchHelper
...
- adds OC\SystemTag\SystemTagsInFilesDetector where the search logic is
moved to
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:52 +02:00
Arthur Schiwon
2489a2d63a
feat: specify media type via url path: systemtags-current/$mediaType
...
- only the media part of the mime type can be search, but not the full
mime type. It can be added, should it become necessary.
- thus fixes previously hardcoded selector for image/ types
- also fixes a return type hint
- adds a return type hint
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:51 +02:00
Arthur Schiwon
6bff6a5667
PoC: SystemTags endpoint to return tags used by a user with meta data
...
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).
With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.
Call:
curl -s -u 'user:password' \
'https://my.nc.srv/remote.php/dav/systemtags-current ' \
-X PROPFIND -H 'Accept: text/plain' \
-H 'Accept-Language: en-US,en;q=0.5' -H 'Depth: 1' \
-H 'Content-Type: text/plain;charset=UTF-8' \
--data @/home/doe/request-systemtag-props.xml
With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop xmlns:oc="http://owncloud.org/ns " xmlns:nc="http://nextcloud.org/ns ">
<oc:id/>
<oc:display-name/>
<oc:user-visible/>
<oc:user-assignable/>
<oc:can-assign/>
<nc:files-assigned/>
<nc:reference-fileid/>
</d:prop>
</d:propfind>
Example output:
…
<d:response>
<d:href>/master/remote.php/dav/systemtags/84</d:href>
<d:propstat>
<d:prop>
<oc:id>84</oc:id>
<oc:display-name>Computer</oc:display-name>
<oc:user-visible>true</oc:user-visible>
<oc:user-assignable>true</oc:user-assignable>
<oc:can-assign>true</oc:can-assign>
<nc:files-assigned>42</nc:files-assigned>
<nc:reference-fileid>924022</nc:reference-fileid>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/systemtags/97</d:href>
<d:propstat>
<d:prop>
<oc:id>97</oc:id>
<oc:display-name>Bear</oc:display-name>
<oc:user-visible>true</oc:user-visible>
<oc:user-assignable>true</oc:user-assignable>
<oc:can-assign>true</oc:can-assign>
<nc:files-assigned>1</nc:files-assigned>
<nc:reference-fileid>923422</nc:reference-fileid>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
…
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:48 +02:00
Côme Chilliet
f5c361cf44
composer run cs:fix
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +01:00
luz paz
368f83095d
Fix typos in lib/private subdirectory
...
Found via `codespell -q 3 -S l10n -L jus ./lib/private`
Signed-off-by: luz paz <luzpaz@github.com>
2022-07-27 08:52:17 -04:00
Carl Schwan
f326b54e53
Search without join on filecache_extended
...
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-23 16:23:52 +02:00
Marcel Klehr
f755ee0868
Files: Extend search to also cover tags
...
fixes #326
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2022-05-17 21:05:09 +02:00
Côme Chilliet
6be7aa112f
Migrate from ILogger to LoggerInterface in lib/private
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-03-24 16:21:25 +01:00
Robin Appelman
7351059326
generate a better optimized query for path prefix search filters
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-26 19:07:52 +02:00
Robin Appelman
362cb2a11f
inject SearchBuilder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:23:08 +02:00
Robin Appelman
66e10718c6
split of query building bits from searchhelper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:40 +02:00
Robin Appelman
f938daa6e4
update tests and fix some edge cases around new search
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:36 +02:00
Robin Appelman
27e50b24aa
some cleanup and documentation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:32 +02:00
Robin Appelman
5d1d53c42e
perform file search in a single query
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:29 +02:00
Robin Appelman
9774fb1573
use searchoperation for storage filter instead of db expression
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:25 +02:00
Robin Appelman
e198dc1b20
rework search api to allow searching on multiple caches at once
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-06-14 16:11:22 +02:00
John Molakvoæ (skjnldsv)
215aef3cbd
Update php licenses
...
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Vincent Petry
e559afb8d4
Merge pull request #25136 from nextcloud/cachejail-search-filter
...
do cachejail search filtering in sql
2021-03-15 17:45:30 +01:00
dependabot-preview[bot]
eb502c02ff
Bump nextcloud/coding-standard from 0.3.0 to 0.5.0
...
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard ) from 0.3.0 to 0.5.0.
- [Release notes](https://github.com/nextcloud/coding-standard/releases )
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nextcloud/coding-standard/compare/v0.3.0...v0.5.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-02-18 13:31:24 +01:00
Robin Appelman
27f9df2e87
fix cachjail searching for root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:50 +01:00
Robin Appelman
a44aab11f7
do cachejail search filtering in sql
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-01-26 15:30:46 +01:00
Christoph Wurst
cb057829f7
Update license headers for 19
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-29 11:57:22 +02:00
Christoph Wurst
734c62bee0
Format code according to PSR2
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:56:50 +02:00
Christoph Wurst
28f8eb5dba
Add visibility to all constants
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02:00
Christoph Wurst
a7c8d26d31
Add visibility to all properties and move static keyword
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:48:31 +02:00
Christoph Wurst
14c996d982
Use elseif instead of else if
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +02:00
Christoph Wurst
1b46621cd3
Update license headers for 18
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-20 09:23:25 +01:00
Roeland Jago Douma
4fad9e4e6b
Merge pull request #18314 from nextcloud/fixFileIdSearch
...
Fix ambigious fileID on search
2019-12-10 11:28:40 +01:00
tobiasKaminsky
41cb214112
fix https://github.com/nextcloud/server/issues/18313
...
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2019-12-10 09:47:30 +01:00