counted words should always be translated using `n`.
We can still simply concat the segments with punctation, this always
works regardless of the language used (even with RTL / LTR languages).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Remove some hacks from files app about the *files_sharing* status
action, in general not sure why this hack was there instead of being in
the correct app - but it broke the grid view.
So now the sharing information is also available in grid view.
Moreover the icon is fixed in size to not overflow the actions menu.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
That is about 2500% as we needed to always wait for the timeout of
500ms. As the event was already handled - compared to now where we only
wait for one tick which is about 20ms.
Also the tests did not work as expected - for shift and meta key they
did not report the failing tests.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
It is needed, e.g. for the note-to-recipient, that the headers
are also shown when there is no content (yet).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Single file shares use the share token as source name, so we need to use
the displayname. To do so we need to set the download attribute to the
displayname of the file to download.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The backend does not allow bulk download within the trashbin,
so we need to disable this also on the frontend.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
`reset` could be called before the filters are mounted,
in this case it is valid to update the presets, but we must not try to
access the vue instance (as it does not exist yet).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
* Missing pieces of https://github.com/nextcloud/server/issues/46528
* Add checkbox to not show this dialog again
* Add user config as suggested by designers in files settings to
reenable or diable this behavior.
* Fix behavior of dialog: It says "keep .ext" but it does not keep the
extension but cancels the operation. From the button label the user
expects that the operation is continued but with the old extension.
* Added more test coverage by adding component tests.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Since we use the files app also for public shares it is not guaranteed
that there is a user logged in, in that case the update for user / view
config will fail.
So ensure there is a user or do not send a request.
Also refactor both stores to setup styles to fix (remove) initialization hack,
which causes Typescript issues.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Instead of downloading files, if there is no other default action,
we should just open the details tab.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The client-side plugin `in-folder` uses the `files` provider, this makes it
overlap with the main files provider itself.
This change follows eecda06f1a after it was discovered
that some apps/providers like `dav` use providers from another app like `contacts`
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Each provider may search from a particular app so we should use that for searching.
Before this commit, we used `provider.id` instead of `provider.appId` the problem with the previous
approach is that it forces the provider id to be a valid search provider (an app that supports search)
limiting the developers ability to use unique IDs to identify the different providers (especially plugin providers)
inside the places filter.
For example the Files search plugin "In folder" (search in folder plugin) was required to have id as `files` while the
files provider itself already has id as `files`.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
When both `skeletondirectory` and `templatedirectory` are set to empty
strings in configuration, templates folder creation should be disabled
and no Create templates folder option should be present
in new folder menu.
Related: https://github.com/nextcloud/server/issues/39266
Related: https://github.com/nextcloud/server/issues/46455
Author-Change-Id: IB#1156403
Signed-off-by: Pawel Boguslawski <pawel.boguslawski@ib.pl>
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
When marking a file as favorite from within the sidebar make sure it
really works, this fixes two issues:
1. The source needs to be the plain source not URL encoded, as otherwise
the source of the node would be encoded twice (and show with encoding
in the navigation)
2. The store should also listen for the update events as the sidebar has
no access to the real node to update it, instead the store should -
as long as we only have the legacy sidebar - update the node when
added or removed as favorite.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When changing the folder the filter will be re-mounted by the file list,
so we need to pass the current state of the filter to the filter UI.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
- Add default value to non-required Vue props
- Reformat function to async function if needed
- Add some documentation
- Allow `any` in places where it makes sense (tests)
- Order vue component sections as required
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
`davRootPath` already contains a leading `/`
Signed-off-by: Louis Chemineau <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Keep the fallback with this.fileInfo as this.node could be null
Signed-off-by: Louis Chemineau <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Replace the mixin with a composable, this is better typed and works in
both: Options- and Composition API.
Also added component tests for it.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
- Introduced a dialog to confirm if users want to proceed with changing the file extension.
- Added handling for dialog visibility to prevent recursion. (Since it looks like use must press escape to stop rename???)
Signed-off-by: nfebe <fenn25.fn@gmail.com>
In some cases it is guaranteed that we have a proper active view,
e.g. when the file list is loaded (so within FileEntry* components).
This does not change anything but the Typescript types,
so the `currentView` is typed as `View` instead of `View | null´.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Provided values are not reactive by default and by design,
we must need computed to make them reactive.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Problem: Is a node is renamed and the new name is out of the current
visible list of nodes the component will be recycled, this means
the props will change, so when the `onRename` functions is about to reset
the state the `this.source` will point to a different node.
To fix this, but also to separate business logic from visual representation,
the logic is moved into the renaming store and the component is only
responsible for rendering.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
* Resolves: https://github.com/nextcloud/server/issues/46645
This adds loading toast notification while the move operation is running.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
< 0 values for "free" do not mean that the storage is full: 6befdd6dd7/lib/public/Files/FileInfo.php (L31-L42)
Signed-off-by: Louis Chemineau <louis@chmn.me>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
* Resolves https://github.com/nextcloud/server/issues/47904
We need to make sure that we only add one source (unique!) once as a child,
this is ensured by simply use a native `Set`.
Also we need to remove children on from folders when the `files:node:deleted`
event is emitted.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When the viewer or the sidebar is opened, we add the fileid to the route.
When both of them are closed, we do not remove the fileid from the route.
This means that, upon reload, the sidebar will be opened even though it was closed previously.
This PR ensure that the fileid is removed from the route when both the Sidebar and the Viewer are closed.
Signed-off-by: Louis Chemineau <louis@chmn.me>
* Resolves https://github.com/nextcloud/server/issues/46934
Ensure that after a right-click the context menu position is resetted,
so that pressing the "actions"-menu button it is displayed on the correct location.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This is needed because some views have side effects, like `favorites` doing requests on registration time.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>