Skip to content

Conversation

@printminion-co
Copy link

No description provided.

enable via:
./occ config:app:set --value yes --type string viewer always_show_viewer

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
@printminion-co printminion-co force-pushed the mk/dev/cherrypick-ionos-dev-to-v31.0.6 branch from 3bbc6e8 to f8ef002 Compare June 17, 2025 16:09
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
in order later to use it as default viewer

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
in order later to display it for all not known mime types

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
@printminion-co printminion-co force-pushed the mk/dev/cherrypick-ionos-dev-to-v31.0.6 branch from f8ef002 to 7fdec4f Compare June 18, 2025 15:39
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
in order to reuse it later

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
@printminion-co printminion-co force-pushed the mk/dev/cherrypick-ionos-dev-to-v31.0.6 branch from 7fdec4f to 393d158 Compare June 19, 2025 14:53
fracado and others added 14 commits June 19, 2025 17:29
Signed-off-by: Franziska Bath <franziska.bath@strato.de>
in order to be able to influence it later

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
…efault component

Signed-off-by: Franziska Bath <franziska.bath@strato.de>
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
…hown

Signed-off-by: Franziska Bath <franziska.bath@strato.de>
Don't include directories as they can not be displayed.

Note: including directories could also cause a follow-up error with
certain directory structures which happen to include a directory
named like a number (i.e. 123) because of sloppy, too broad type
casting in fileUtils.ts's genFileInfo() accidentally converting
such a folder name to a Number, which then can not be used in string
comparisons.

Signed-off-by: Thomas Lehmann <t.lehmann@strato.de>
Signed-off-by: Kai Henseler <kai.henseler@strato.de>
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>

# Conflicts:
#	src/views/Viewer.vue
Reference the default mimetype from the config module, don't add a magic
string.

Signed-off-by: Thomas Lehmann <t.lehmann@strato.de>
== The bug

The app config "always_show_viewer" enables the preview for all
mimetypes. If this config is not set and no handler is registered for a
mimetype, the file will be downloaded.

In the share/public view, with this config enabled some file types
were downloaded instead of opened in the preview.

The code would not progress up to Viewer's openFileInfo() because it
would not find a preview component candidate in [1] to even attempt
opening the preview.

== The fix

As per reverse engineering it was found that special string "all" is
used as symbol for handling any mimetype (at least in [2]).

The decision was made to change the special mimetype for a registered
previewer to "all", because then handling any file is already coverered
this way.

All discovered places:

1. Files/fileactions: getDefaultFileAction() [2]
2. Shares: attach(), "fileActionsReady" event handler, registerAction()
   call [3]

[1]: https://github.com/nextcloud/server/blob/v29.0.6/apps/files/js/filelist.js#L912
[2]: https://github.com/nextcloud/server/blob/v29.0.6/apps/files/js/fileactions.js#L315
[3]: https://github.com/nextcloud/server/blob/v29.0.6/apps/files_sharing/src/share.js#L230

Signed-off-by: Thomas Lehmann <t.lehmann@strato.de>
Another state will be added and this prepares for a consistent naming
pattern.t

Signed-off-by: Thomas Lehmann <t.lehmann@strato.de>
== The cause

Previously the code attempted to load a preview of an image.

If loading this preview image failed it was attempted to load the
original image.

Load errors of images were only handled _once_. This meant that a
load error for the original image was never handled, thus the
viewer was still in loading state and showed a browser-dependant
"broken image" replacement icon.

== The fix

Now further image load errors are handled too. In case the original
fails too, the loading state is ended and a placeholder text is shown.

The default preview component, which was introduced to show something
for any mimetype if configured, is now also used as a fallback.

Signed-off-by: Thomas Lehmann <t.lehmann@strato.de>
Signed-off-by: Tatjana Kaschperko Lindt <kaschperko-lindt@strato.de>
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
Signed-off-by: Franziska Bath <franziska.bath@strato.de>
Signed-off-by: Franziska Bath <franziska.bath@strato.de>
Signed-off-by: Franziska Bath <franziska.bath@strato.de>
@printminion-co printminion-co force-pushed the mk/dev/cherrypick-ionos-dev-to-v31.0.6 branch from 1577859 to 8ffe90b Compare June 19, 2025 15:35
@printminion-co printminion-co marked this pull request as draft June 26, 2025 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants