Merge pull request #33556 from nextcloud/fix/theming

This commit is contained in:
John Molakvoæ 2022-08-16 10:12:53 +02:00 committed by GitHub
commit 3e2ab35af5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 33 deletions

View file

@ -59,10 +59,4 @@
--primary-invert-if-bright: no;
--background-invert-if-dark: no;
--background-invert-if-bright: invert(100%);
--image-logo: url('/core/img/logo/logo.png?v=0');
--image-logoheader: url('/core/img/logo/logo.png?v=0');
--image-favicon: url('/core/img/logo/logo.png?v=0');
--image-background-size: cover;
--image-background: url('/core/img/background.png?v=0');
--image-login-background: url('/core/img/background.png?v=0');
}

View file

@ -91,6 +91,7 @@ class DefaultTheme implements ITheme {
$colorPrimaryLight = $this->util->mix($this->primaryColor, $colorMainBackground, -80);
$hasCustomLogoHeader = $this->imageManager->hasImage('logo') || $this->imageManager->hasImage('logoheader');
$hasCustomPrimaryColour = !empty($this->config->getAppValue('theming', 'color'));
$variables = [
'--color-main-background' => $colorMainBackground,
@ -192,17 +193,25 @@ class DefaultTheme implements ITheme {
];
$backgroundDeleted = $this->config->getAppValue('theming', 'backgroundMime', '') === 'backgroundColor';
// If primary as background has been request or if we have a custom primary colour
// let's not define the background image
if ($backgroundDeleted || $hasCustomPrimaryColour) {
$variables["--image-background-plain"] = 'true';
}
// Register image variables only if custom-defined
foreach(['logo', 'logoheader', 'favicon', 'background'] as $image) {
// If primary as background has been request, let's not define the background image
if ($image === 'background' && $backgroundDeleted) {
$variables["--image-background-plain"] = 'true';
continue;
} else if ($image === 'background') {
$variables['--image-background-size'] = 'cover';
if ($this->imageManager->hasImage($image)) {
if ($image === 'background') {
// If background deleted is set, ignoring variable
if ($backgroundDeleted) {
continue;
}
$variables['--image-background-size'] = 'cover';
}
$variables["--image-$image"] = "url('".$this->imageManager->getImageUrl($image)."')";
}
$variables["--image-$image"] = "url('".$this->imageManager->getImageUrl($image)."')";
}
$variables["--image-login-background"] = $variables["--image-background"];
if ($hasCustomLogoHeader) {
$variables["--image-logoheader-custom"] = 'true';

View file

@ -307,7 +307,7 @@ class ImageManagerTest extends TestCase {
foreach ($folders as $index => $folder) {
$folder->expects($this->any())
->method('getName')
->willReturn((string)$index);
->willReturn("$index");
}
$folders[0]->expects($this->once())->method('delete');
$folders[1]->expects($this->once())->method('delete');

View file

@ -20,7 +20,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Theming\Tests;
namespace OCA\Theming\Tests\Service;
use OC\App\AppManager;
use OCA\Theming\ImageManager;
@ -68,23 +68,6 @@ class DefaultThemeTest extends TestCase {
->method('getColorPrimary')
->willReturn('#0082c9');
$this->imageManager->expects($this->any())
->method('getImageUrl')
->willReturnCallback(function (string $name): string {
switch ($name) {
case 'logo':
case 'logoheader':
case 'favicon':
return '/core/img/logo/logo.png?v=0';
case 'background':
case 'login-background':
return '/core/img/background.png?v=0';
default:
return '';
}
});
$this->l10n
->expects($this->any())
->method('t')