PR #58224 dropped the `$iconFile === null` guard around the app-specific
icon generation in getFavicon()/getTouchIcon(), so an uploaded custom
favicon was always overwritten by the generated, context-colored icon
whenever Imagick could produce an ICO/PNG.
Restore the guard so the generation path only runs as a fallback when no
custom favicon was uploaded, while keeping the improved Imagick
capability detection from #58224.
Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Simon L. <szaimen@e.mail.de>
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
- ImageManagerTest: inject IAppConfig mock, switch cachebuster assertions
from IConfig::getAppValue to IAppConfig::getAppValueInt, add
testGetImageSvgToSvg and testGetImageSvgToPng, update mockGetImage to
reflect the corrected getImage() logic
- ThemingControllerTest: update getImage and getManifest tests to use
IAppConfig::getAppValueString for MIME type and cachebuster lookups,
add testGetLogoOriginalFile for the extensionless-file MIME path
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
- migrate all components to Typescript
- use script setup where feasible
- migrate to Vue 3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
* Cache css with version in url. This makes most js and css requests to
be cached by the browser
* Force caching previews, the etag is in the url so that if the propfind
gives a new etag, we will refresh it otherwise it's no use to try to
fetch the new etag and do tons of DB queries
Tested with firefox and 'debug' => false (important so that the js/css
urls are generated with ?v= parameter)
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
A bit more elegant. Plus it will allow us to also write a proper
@nextcloud/theming package. To make life easier down the line for all.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.
This also removes and empty lines from method/function bodies at the
beginning and end.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>