summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/theming/lib/ThemingDefaults.php10
-rw-r--r--apps/theming/tests/ThemingDefaultsTest.php14
-rw-r--r--lib/private/Mail/EMailTemplate.php2
-rw-r--r--lib/private/legacy/defaults.php17
-rw-r--r--lib/public/Defaults.php5
5 files changed, 33 insertions, 15 deletions
diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php
index 9509fc11077..0824a36ccdc 100644
--- a/apps/theming/lib/ThemingDefaults.php
+++ b/apps/theming/lib/ThemingDefaults.php
@@ -129,9 +129,10 @@ class ThemingDefaults extends \OC_Defaults {
/**
* Themed logo url
*
+ * @param bool $useSvg Whether to point to the SVG image or a fallback
* @return string
*/
- public function getLogo() {
+ public function getLogo($useSvg = true) {
$logo = $this->config->getAppValue('theming', 'logoMime', false);
$logoExists = true;
@@ -144,7 +145,12 @@ class ThemingDefaults extends \OC_Defaults {
$cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0');
if(!$logo || !$logoExists) {
- return $this->urlGenerator->imagePath('core','logo.svg') . '?v=' . $cacheBusterCounter;
+ if($useSvg) {
+ $logo = $this->urlGenerator->imagePath('core', 'logo.svg');
+ } else {
+ $logo = $this->urlGenerator->imagePath('core', 'logo.png');
+ }
+ return $logo . '?v=' . $cacheBusterCounter;
}
return $this->urlGenerator->linkToRoute('theming.Theming.getLogo') . '?v=' . $cacheBusterCounter;
diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php
index e3acab78bb7..a7cb7790aa6 100644
--- a/apps/theming/tests/ThemingDefaultsTest.php
+++ b/apps/theming/tests/ThemingDefaultsTest.php
@@ -431,7 +431,7 @@ class ThemingDefaultsTest extends TestCase {
$this->assertEquals('custom-background?v=0', $this->template->getBackground());
}
- public function testGetLogoDefault() {
+ private function getLogoHelper($withName, $useSvg) {
$this->appData->expects($this->once())
->method('getFolder')
->willThrowException(new NotFoundException());
@@ -452,9 +452,17 @@ class ThemingDefaultsTest extends TestCase {
->willThrowException(new \Exception());
$this->urlGenerator->expects($this->once())
->method('imagePath')
- ->with('core', 'logo.svg')
+ ->with('core', $withName)
->willReturn('core-logo');
- $this->assertEquals('core-logo?v=0', $this->template->getLogo());
+ $this->assertEquals('core-logo?v=0', $this->template->getLogo($useSvg));
+ }
+
+ public function testGetLogoDefaultWithSvg() {
+ $this->getLogoHelper('logo.svg', true);
+ }
+
+ public function testGetLogoDefaultWithoutSvg() {
+ $this->getLogoHelper('logo.png', false);
}
public function testGetLogoCustom() {
diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php
index 3442e8e9430..0ae79345e4c 100644
--- a/lib/private/Mail/EMailTemplate.php
+++ b/lib/private/Mail/EMailTemplate.php
@@ -357,7 +357,7 @@ EOF;
}
$this->headerAdded = true;
- $logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo());
+ $logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo(false));
$this->htmlBody .= vsprintf($this->header, [$this->themingDefaults->getColorPrimary(), $logoUrl, $this->themingDefaults->getName()]);
}
diff --git a/lib/private/legacy/defaults.php b/lib/private/legacy/defaults.php
index cc4991efd3e..f6d72d9776d 100644
--- a/lib/private/legacy/defaults.php
+++ b/lib/private/legacy/defaults.php
@@ -47,9 +47,8 @@ class OC_Defaults {
private $defaultSlogan;
private $defaultLogoClaim;
private $defaultColorPrimary;
- private $defaultLogoUrl;
- function __construct() {
+ public function __construct() {
$this->l = \OC::$server->getL10N('lib');
$this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */
@@ -65,8 +64,6 @@ class OC_Defaults {
$this->defaultSlogan = $this->l->t('a safe home for all your data');
$this->defaultLogoClaim = '';
$this->defaultColorPrimary = '#0082c9';
- $this->defaultLogoUrl = \OC::$server->getURLGenerator()->imagePath('core','logo.svg');
- $this->defaultLogoUrl .= '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion()));
$themePath = OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/defaults.php';
if (file_exists($themePath)) {
@@ -307,13 +304,19 @@ class OC_Defaults {
/**
* Themed logo url
*
+ * @param bool $useSvg Whether to point to the SVG image or a fallback
* @return string
*/
- public function getLogo() {
+ public function getLogo($useSvg = true) {
if ($this->themeExist('getLogo')) {
- return $this->theme->getLogo();
+ return $this->theme->getLogo($useSvg);
}
- return $this->defaultLogoUrl;
+ if($useSvg) {
+ $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.svg');
+ } else {
+ $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.png');
+ }
+ return $logo . '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion()));
}
}
diff --git a/lib/public/Defaults.php b/lib/public/Defaults.php
index dbde78bce68..543657694c5 100644
--- a/lib/public/Defaults.php
+++ b/lib/public/Defaults.php
@@ -178,11 +178,12 @@ class Defaults {
/**
* Themed logo url
*
+ * @param bool $useSvg Whether to point to the SVG image or a fallback
* @return string
* @since 12.0.0
*/
- public function getLogo() {
- return $this->defaults->getLogo();
+ public function getLogo($useSvg = true) {
+ return $this->defaults->getLogo($useSvg);
}
/**