Commit Graph

127 Commits

Author SHA1 Message Date
Git'Fellow 17bbc56dab fix(theming): read cachebuster as int in manifest endpoint
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-06-05 10:34:44 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
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>
2026-06-01 13:46:39 +02:00
Anna Larch 8a0080cbbb fix(theming): fix broken custom images introduced in 32.0.9
PR #58224 introduced a raster→SVG conversion path in ImageManager::getImage()
that breaks display of custom theming images. The root cause is a three-part
bug chain:

1. getImage() attempted to convert raster images (PNG/JPEG) to SVG format,
   which Imagick cannot do meaningfully and produces broken output.
2. getMimeType() returns 'application/octet-stream' for extensionless stored
   files, so the Content-Type response header was wrong.
3. Stale .svg cache files persisted after image replacement, causing
   subsequent requests to serve the wrong format.

Fix by:
- Restricting the Imagick conversion to SVG→PNG only (not raster→SVG)
- Reading the stored MIME type from IAppConfig for extensionless files in
  ThemingController::getImage()
- Deleting .svg cache files in ImageManager::delete()
- Injecting IAppConfig into ImageManager and reading the cachebuster via
  IAppConfig::getAppValueInt() so the URL returned after upload always
  carries the freshly-incremented value (IConfig::getAppValue() can return
  a stale cached value within the same request)
- Updating the FileInputField Vue component to use a reactive cacheKey ref
  that increments on every upload, so the thumbnail refreshes even when the
  MIME type of the new image is the same as the old one

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-07 19:40:49 +02:00
Carl Schwan 6408ed0b51 feat(AppFramework): Add missing NoSameSiteCookieRequired attribute
Allow to replace the old annotation.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
Carl Schwan b040fb1c73 feat(AppFramework): Add missing NoTwoFactorRequired attribute
It's in our documentation but was never implemented.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
SebastianKrupinski e2c4db1541 fix: generate favourite icon without imagick svg support
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-26 13:57:22 -05:00
Joas Schilling 649e042568 fix(settings): Fix reset button for legal and privacy
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 09:45:48 +01:00
Joas Schilling 7c64394617 fix(settings): Allow clearing legal and privacy links
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 09:29:34 +01:00
Ferdinand Thiessen 754422aa00 refactor(theming): migrate to Typescript and Vue 3
- migrate all components to Typescript
- use script setup where feasible
- migrate to Vue 3

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-12-23 17:00:40 +01:00
provokateurin 7b6303dcc9 fix(theming): Document correct response schema if app is not enabled
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-08-20 12:45:47 +02:00
nfebe 625c1264fe fix(theming): Correctly generate CSS for font themes
Fixes a regression from dropping the SCSS compiler that broke
font themes like OpenDyslexic. The old code relied on the SCSS
compiler to automatically correct the order of the CSS rules,
ensuring the @font-face declaration was always valid.
The server now correctly generates the `@font-face` rule at
the top level of the stylesheet, fixing the previously invalid nested CSS.

Introduced in : f1448fcf07

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-07-11 12:27:41 +01:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Ferdinand Thiessen f1448fcf07 chore(theming): remove scssphp and just native nested CSS
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 09:51:04 +02:00
Simon L. 6235ed6222 feat(PWA): add display_override to set the display-mode to minimal-ui on supported browsers
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-02-28 15:32:43 +01:00
Simon L. 0bd624d0fe feat(theming): allow to disable standalone windows
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Simon L. <szaimen@e.mail.de>
2025-02-06 10:35:09 +01:00
Ferdinand Thiessen ff835faf7b fix(theming): Harden admin web link settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-27 14:20:14 +01:00
provokateurin 085d4c9364 refactor(OpenAPI): Adjust scopes to match previous behavior
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-01-06 14:30:40 +01:00
provokateurin 77114fb327 fix(OpenAPI): Adjust array syntax to avoid ambiguities
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-11-05 09:58:11 +01:00
Côme Chilliet 1580c8612b chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +02:00
Ferdinand Thiessen c7d9068be9 chore: Use IAppConfig instead of IConfig->getAppValue
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-09-10 17:51:26 +02:00
provokateurin 0a3093d05d fix(theming): Use NavigationManager to handle default entries
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-09 11:04:36 +02:00
Maxence Lange dd0099c69f fix(psalm): named attribute argument
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-07-29 11:37:40 -01:00
provokateurin 79d9f2ebf6 refactor(theming): Replace security annotations with respective attributes
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-07-27 22:40:06 +02:00
Andy Scherzinger cc1686dba9 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-31 10:38:47 +02:00
Ferdinand Thiessen 705335e6a5 feat(theming): Allow to configure primary color separate from background in admin settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-05-21 20:36:21 +02:00
Joas Schilling 2fccd090b3 fix(manifest): Check if app exists instead of accessing null as an array
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-17 09:25:44 +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
Ferdinand Thiessen e9d4036389 feat(theming): Allow to configure default apps and app order in frontend settings
* Also add API for setting the value using ajax.
* Add cypress tests for app order and defaul apps

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2023-10-20 00:24:17 +02:00
John Molakvoæ a024ee1cfe Fix background removal check
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-10-19 11:54:09 +02:00
jld3103 c2d45cb172 Add single status code descriptions for OpenAPI
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-09-27 08:05:21 +02:00
jld3103 b58ef2c0b1 theming: Add OpenAPI spec
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-07-10 17:25:58 +02:00
Faraz Samapoor 437631a334 Refactors "strpos" calls in /apps/theming to improve code readability.
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-02 15:43:47 +03:30
Vincent Petry 6e75931412 Limit key names when uploading theme images
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2023-01-11 16:16:44 +01:00
John Molakvoæ f26ee9c69d Faster theming tests, better colours comparison and properly follow admin theming changes
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-11-30 18:39:57 +01:00
John Molakvoæ ef760e0337 Add admin user customization kill switch
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-10-19 12:57:35 +02:00
John Molakvoæ 601664bc84 Allow to manually specify a theme to apply to a section of an app
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-08-16 14:43:35 +02:00
John Molakvoæ d1dfdfe799 Lint and psalm fix
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-04-21 19:00:29 +02:00
John Molakvoæ 493b20605f Font fixes and design update for theme picker
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-04-21 09:31:07 +02:00
John Molakvoæ fa18a77fa2 Fix twofactor loading and public image
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2022-04-21 09:31:06 +02:00
Joas Schilling b3cf312edc Start theming providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-04-21 09:29:33 +02:00
Joas Schilling 615a8e60ba App summary is optional
Fixing:
Error: Undefined index: summary at /var/www/html/apps/theming/lib/Controller/ThemingController.php#392

Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-11-19 14:02:03 +01:00
Carl Schwan 719dbafd13 Add support for Delegation Settings for more apps
* This adds support for the sharing, groupware, theming and user_ldap
  app
* This adds some code who disapeared during a rebase in the initial
  delegation PR (provisioning_api)

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-10-15 18:41:00 +02:00
Joas Schilling 37f40cdd46 Fix translated app details
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-09-30 09:08:17 +02:00
szaimen 0758e0258d improve webmanifest
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-08-24 11:42:04 +02:00
John Molakvoæ (skjnldsv) 215aef3cbd Update php licenses
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-06-04 22:02:41 +02:00
Christoph Wurst d89a75be0b Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
nhirokinet 3a05334f18 manifest to report correct favicon size
In the environment where php-imagick with SVG support is correctly installed, this endpoint returns 512x512 image.
https://github.com/nextcloud/server/blob/d9015a8c94bfd71fe484618a06d276701d3bf9ff/apps/theming/lib/Controller/IconController.php#L146

The problem is in the environment without php-imagick or without SVG support, this will fall back to original, whose default is 128x128; but I thought this is a separate problem. (For this, default image may be enlarged. Should I create another issue if this is important one?)

Signed-off-by: nhirokinet <nhirokinet@nhiroki.net>
2020-10-16 15:36:56 +00:00
Christoph Wurst d9015a8c94 Format code to a single space around binary operators
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-10-05 20:25:24 +02:00
Julius Härtl aa95b3d71b Add occ command to set theming values
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-24 08:22:07 +02:00
Roeland Jago Douma 3f1b6e2ce9 Move theming js to initial state
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>
2020-06-05 11:01:49 +02:00