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
Christopher Ng
572361f498
fix(files): Fix incorrect keys by reindexing
...
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-01 09:14:44 -07:00
Ferdinand Thiessen
cf935e33ae
fix: OCP\Files\Node\Folder::search was not setting the owner
...
The owner was not set on the file info causing e.g. webdav searches to never return the known owner.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-11 15:46:44 +02:00
Robin Appelman
ffced73a71
fix: also use optimized getFirstNodeyIdInPath for Folder::getFirstNodeById
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-06-20 18:51:27 +02:00
Git'Fellow
77979b1475
Try create folder first and check if it exists after
...
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-05-30 14:27:44 +02:00
Git'Fellow
5c4e4c5590
fix(files): Try to create dir only if it not exists
...
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-05-30 14:27:44 +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
Marcel Klehr
843bb62d6d
fix: LazyRoot missing method
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-05-14 11:38:39 +02:00
Marcel Klehr
00894e2420
feat: first pass at TaskProcessing API
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-05-14 11:38:39 +02:00
Côme Chilliet
ec5133b739
fix: Apply new coding standard to all files
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Maxence Lange
467c84ec53
feat(files): copy live photos
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-03-08 13:09:22 -01:00
Robin Appelman
a9ee278ec6
perf: cache path by id to speedup getting nodes by id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-04 13:57:31 +01:00
Robin Appelman
e7a7b4a401
perf: switch places that always use the first getById result to getFirstNodeById
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-04 13:57:31 +01:00
Robin Appelman
4d110c1dd6
feat: add interface to get only a single node by id instead of all nodes for the id
...
this should be enough in most(?) cases and makes efficient implementation and caching easier
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-04 12:26:30 +01:00
Vincent Petry
839ddaa354
feat: rename users to account or person
...
Replace translated text in most locations
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2024-02-13 21:06:30 +01:00
Louis Chemineau
2f6a4bf4a1
Synchronize operation on live photo files
...
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-29 19:07:32 +01:00
Joas Schilling
aa5f037af7
chore: apply changes from Nextcloud coding standards 1.1.1
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Joas Schilling
67958915da
fix(events): Make sure all \OCP\Files::… events are emitted with the same data
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-09 15:57:22 +01:00
Maxence Lange
f497d8b6e5
IFilesMetadata
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 12:43:08 -01:00
Maxence Lange
e62e9e3dbf
IFilesMetadata
...
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2023-11-07 00:21:38 -01:00
Marcel Klehr
71a06b6bf8
fix(Folder): Allow filename to be '0'
...
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2023-10-22 12:22:30 +02:00
Robin Appelman
5e347553bc
add method to create a node from cache entry + mountpoint
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-19 11:43:29 +02:00
Julius Härtl
7f958e81d3
fix: Pass parent to NonExistingFile instances
...
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-09-13 10:28:28 +02:00
Robin Appelman
5ac0e9b63b
reuse isValidPath from Filesystem
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:50 +02:00
Robin Appelman
baf8d2e1d0
make LazyFolder::get not load the real folder if we know the path
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:49 +02:00
Robin Appelman
9055fef5ef
add IFileInfo::getParentId
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:49 +02:00
Robin Appelman
e718cbc661
make Node::getParent lazy
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:48 +02:00
Robin Appelman
0232eec2cf
allow passing more info to lazy folder
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-04 18:42:47 +02:00
John Molakvoæ
750a9f2c4a
fix: prevent sharing permissions on user root folder
...
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-09-01 13:53:41 +02:00
Joas Schilling
3962cd0aa8
fix!: Move getEventDispatcher usage to IEventDispatcher
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-28 14:11:22 +02:00
Joas Schilling
44a0a62107
fix: Move Node HookConnecter events to IEventDispatcher
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 09:57:53 +02:00
Arthur Schiwon
f2642fcceb
fix(node): non-existing folder is not searchable
...
the previosuly introduced searchBySystemTag was not overwritten in
NonExistingFolder and could run the inherited method.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-13 00:01:32 +02:00
Christoph Wurst
14719110b9
chore: Replace \OC::$server->query with \OCP\Server::get in /lib
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-07-06 15:21:22 +02: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
a0f9556f7c
fix: cominbation of small fixes
...
- possible null return
- parameter name mismatch in implementation
- incomplete unit test
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +02:00
Arthur Schiwon
221562d45d
feat: add searchBySystemTag as PHP API
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:09 +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
088a0eea29
ci: pro forma check of existence of internal method
...
createNode() is protected and used by Folder, but being an internal-only
method it shall not be exposed in the Folder or IRootFolder interface.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:20 +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
167a5f394d
fix: add typehine for IRootFolder
...
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 16:53:19 +02:00
Robin Appelman
9f1d497a0b
Merge pull request #38261 from fsamapoor/replace_strpos_calls_in_lib_private
...
Refactors "strpos" calls in lib/private to improve code readability.
2023-06-01 23:10:00 +02:00
Faraz Samapoor
e7cc7653b8
Refactors "strpos" calls in lib/private to improve code readability.
...
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-15 15:17:19 +03:30
Côme Chilliet
3bf19f76e6
Merge pull request #32961 from nextcloud/more-debug-lazyuserfolder
...
Make it easier to debug issue #32304
2023-05-15 11:42:06 +02:00
Arthur Schiwon
b6c034ac57
Merge pull request #37961 from nextcloud/poc/noid/systemtags-perf
...
SystemTags endpoint to return tags used by a user with meta data
2023-05-11 10:16:03 +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
1cc1866ba3
Add back missing slash in LazyUserFolder path
...
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2023-05-09 10:59:31 +02:00