Commit graph

75 commits

Author SHA1 Message Date
Ferdinand Thiessen
529d7eae2f
fix(files): use correct types for the Settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-14 15:24:15 +01:00
skjnldsv
c7dd6dd645 feat(files): allow hidding files extensions
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-07-28 18:05:15 +02:00
skjnldsv
f89660e709 feat(files): add delete confirmation option
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-07-14 10:20:44 +02:00
Ferdinand Thiessen
1567d622dc
refactor(files): remove "local search"
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-07 10:52:21 +02:00
Ferdinand Thiessen
693bf9a475
fix(files): gracefully handle files:node:updated when not in store
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-07 10:52:21 +02:00
Ferdinand Thiessen
31bfd980c3
refactor(files): add active folder to active store and refactor
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-07 10:52:20 +02:00
Ferdinand Thiessen
275c4404d4
feat(files): allow to configure default view
This allows to configure which view should be the default ("start view")
in the files app, currently either "all files" or "personal files".
But it might be extended to the new home view in the future.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-04 18:03:10 +02:00
Ferdinand Thiessen
69275cbda5
feat(files): add "search everywhere" button within the filters row
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-04 14:47:21 +02:00
Ferdinand Thiessen
c9997f1e0b
feat(files): add search store to handle all search related state
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-01 19:47:25 +02:00
Ferdinand Thiessen
2c3774892e
feat(files): add getDirectoryByPath to files store
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-01 19:47:25 +02:00
John Molakvoæ
7fc0318475 chore(files): adjust renaming action comment
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-05-14 17:51:12 +00:00
John Molakvoæ (skjnldsv)
c7a50c708d fix(files): refresh Node data on extension change
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 17:51:12 +00:00
John Molakvoæ (skjnldsv)
a4ab5a3cdf feat(files): allow showing file type (mime) column
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-05-14 17:51:12 +00:00
Ferdinand Thiessen
f7f41b6cb4
refactor: use eventbus for updated filters
prevent filters not applied if `filtersChanged` was set before file list
mounted.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-02-28 10:43:26 +01:00
Ferdinand Thiessen
e712104e58
feat(files): allow to ignore warning to change file type
* 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>
2025-02-25 02:16:56 +01:00
skjnldsv
99579f0bbc fix(files): do not show extension warning for folders renaming
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-02-19 15:35:50 +01:00
Ferdinand Thiessen
fc9108b11a
fix(files): only send config update requests if user is logged in
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>
2025-02-08 14:28:42 +01:00
skjnldsv
e10947a548
fix(files): support submenu in batch actions header too
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-02-06 15:25:37 +01:00
skjnldsv
85ba80b8ce fix(files): properly update store on files conversions success
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-02-04 16:38:34 +01:00
skjnldsv
7d8bb60bfe feat(files): add conversion action
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-01-22 16:29:36 +00:00
Ferdinand Thiessen
344c8a409c
fix(files): Ensure favorites set in sidebar work
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>
2025-01-21 17:55:53 +01:00
Ferdinand Thiessen
b5b28fda16
fix(files): Properly reset all file list filters on view change
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-21 16:38:06 +01:00
Ferdinand Thiessen
24851d930d
chore: Resolve ESLint warnings
- 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>
2025-01-16 22:18:29 +01:00
skjnldsv
76e728eb98 feat(systemtags): add systemtag manage keyboard shortcut
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-12-17 10:18:57 +01:00
skjnldsv
74b2562e6b feat(files): add hotkey service and unify action handling
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-12-17 09:59:57 +01:00
skjnldsv
e7001022c7 feat(files): add opendetails param and file list up/down keyboard shortcut
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-12-17 09:59:56 +01:00
skjnldsv
95e41be597 fix(files): properly update paths and folder children on node move
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-12-03 07:25:18 +00:00
nfebe
383d98c41b feat: add confirmation dialog for file extension changes
- 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>
2024-11-19 16:49:18 +01:00
skjnldsv
dd5a344f5e chore: lint fix
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-11-19 09:56:30 +01:00
skjnldsv
268e68eb95 fix(files): multiselect and filters store declaration
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-11-07 17:04:08 +01:00
Ferdinand Thiessen
e8c1e2c611
fix(code-style): Adjust JS code to our code style
This resolves 68 ESLint warnings about invalid code style.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-10-16 22:11:59 +02:00
Ferdinand Thiessen
ef5a9cf00d
fix(files): Ensure renaming state is correctly reset
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>
2024-10-15 18:20:16 +02:00
fenn-cs
faa29a0feb feat(sidebar): Show node owner in metadata subline
Resolves: https://github.com/nextcloud/server/issues/46178

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2024-10-07 15:15:55 +02:00
Ferdinand Thiessen
f02bcf3471
test(files): Add tests for path handling
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-09-20 11:09:17 +02:00
Ferdinand Thiessen
020b3ee25e
fix(files): Ensure children are removed from folder and not duplicated
* 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>
2024-09-20 11:09:17 +02:00
Ferdinand Thiessen
ee4fb148b3 perf(files): Cache getContents function used for uploader
Instead of trigger a PROPFIND for every new-menu entry clicks,
or conflict handling of uploads, we can just use the cached content from the file store.
If we do not have any cache entry we fetch new, but otherwise this is not needed.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-14 09:47:56 +02:00
Christopher Ng
cfec6fcb1a feat(files): Add getter for all view configs
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-08 10:52:20 -07:00
skjnldsv
40d9b42c84 fix(files): use files:config:updated to monitor user config change
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-07 10:50:33 +00:00
Christopher Ng
855a45650e feat(files): Support setting view config for complex ids
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-01 09:17:36 -07:00
Ferdinand Thiessen
77cffcb049
fix(files_sharing): Make account file filter consistent have design
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-30 16:40:14 +02:00
Ferdinand Thiessen
842c21f96b
feat(files): Implement files list filters for name, modified time and type
Co-authored-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-25 19:33:23 +02:00
Ferdinand Thiessen
691f570237
chore: Enable ESLint for apps and fix all errors
Nevertheless this causes a huge amount of new warnings.
Previously the shell script for directories to lint was wrong it was generating all app names to lint,
but was missing the `apps/` prefix. Causing only `core` to be linted.

Co-authored-by: Grigorii K. Shartsev <me@shgk.me>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-09 17:13:30 +02:00
skjnldsv
343b690d80 fix(files): fetch nodes if we have multiple of the same fileid in the store
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-06-12 17:57:14 +02:00
skjnldsv
1d7893dca8 fix(files): do not rely on unique fileid
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-06-12 17:15:51 +02:00
Ferdinand Thiessen
91ac7dfb7c fix(files): Update current fileid in route if that node was deleted
We do not change the view to the trash bin but stay in the current view,
so we need to update the current fileid on the route if that was deleted.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-06-04 12:40:48 +02:00
Andy Scherzinger
5b7dcc1427
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-29 08:58:16 +02:00
Ferdinand Thiessen
e545eee210
fix(files): Do not show files from hidden folders in "Recent"-view if hidden files are disabled by user
Needed to adjust the store creation to be able to inject pinia before the vue app is initialized.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-04-16 23:52:09 +02:00
Ferdinand Thiessen
b758e0496e
fix: Correctly import types in Typescript files
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-02-13 18:04:45 +01:00
Ferdinand Thiessen
2cea4d7b8d
fix(files): Consistent sorting for folders before files (user configurable)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-01-27 14:23:47 +01:00
John Molakvoæ
116c396f0e
feat(files): add grid toggle button
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-10-17 11:19:02 +02:00