Merge pull request #1026 from nextcloud/theming-extend-defaults
Theming: Add logo and background to ThemingDefaults
This commit is contained in:
commit
044d7c3bb7
|
@ -23,12 +23,10 @@
|
||||||
namespace OCA\Theming;
|
namespace OCA\Theming;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\IURLGenerator;
|
use OCP\IURLGenerator;
|
||||||
|
use OCP\Files\IRootFolder;
|
||||||
|
|
||||||
class ThemingDefaults extends \OC_Defaults {
|
class ThemingDefaults extends \OC_Defaults {
|
||||||
|
|
||||||
|
@ -38,6 +36,8 @@ class ThemingDefaults extends \OC_Defaults {
|
||||||
private $l;
|
private $l;
|
||||||
/** @var IURLGenerator */
|
/** @var IURLGenerator */
|
||||||
private $urlGenerator;
|
private $urlGenerator;
|
||||||
|
/** @var IRootFolder */
|
||||||
|
private $rootFolder;
|
||||||
/** @var string */
|
/** @var string */
|
||||||
private $name;
|
private $name;
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
@ -54,16 +54,19 @@ class ThemingDefaults extends \OC_Defaults {
|
||||||
* @param IL10N $l
|
* @param IL10N $l
|
||||||
* @param IURLGenerator $urlGenerator
|
* @param IURLGenerator $urlGenerator
|
||||||
* @param \OC_Defaults $defaults
|
* @param \OC_Defaults $defaults
|
||||||
|
* @param IRootFolder $rootFolder
|
||||||
*/
|
*/
|
||||||
public function __construct(IConfig $config,
|
public function __construct(IConfig $config,
|
||||||
IL10N $l,
|
IL10N $l,
|
||||||
IURLGenerator $urlGenerator,
|
IURLGenerator $urlGenerator,
|
||||||
\OC_Defaults $defaults
|
\OC_Defaults $defaults,
|
||||||
|
IRootFolder $rootFolder
|
||||||
) {
|
) {
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
$this->l = $l;
|
$this->l = $l;
|
||||||
$this->urlGenerator = $urlGenerator;
|
$this->urlGenerator = $urlGenerator;
|
||||||
|
$this->rootFolder = $rootFolder;
|
||||||
|
|
||||||
$this->name = $defaults->getName();
|
$this->name = $defaults->getName();
|
||||||
$this->url = $defaults->getBaseUrl();
|
$this->url = $defaults->getBaseUrl();
|
||||||
|
@ -113,6 +116,34 @@ class ThemingDefaults extends \OC_Defaults {
|
||||||
return $this->config->getAppValue('theming', 'color', $this->color);
|
return $this->config->getAppValue('theming', 'color', $this->color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed logo url
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getLogo() {
|
||||||
|
$logo = $this->config->getAppValue('theming', 'logoMime');
|
||||||
|
if(!$logo || !$this->rootFolder->nodeExists('/themedinstancelogo')) {
|
||||||
|
return $this->urlGenerator->imagePath('core','logo.svg');
|
||||||
|
} else {
|
||||||
|
return $this->urlGenerator->linkToRoute('theming.Theming.getLogo');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed background image url
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getBackground() {
|
||||||
|
$backgroundLogo = $this->config->getAppValue('theming', 'backgroundMime');
|
||||||
|
if(!$backgroundLogo || !$this->rootFolder->nodeExists('/themedbackgroundlogo')) {
|
||||||
|
return $this->urlGenerator->imagePath('core','background.jpg');
|
||||||
|
} else {
|
||||||
|
return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Increases the cache buster key
|
* Increases the cache buster key
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -27,6 +27,7 @@ use OCA\Theming\ThemingDefaults;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\IURLGenerator;
|
use OCP\IURLGenerator;
|
||||||
|
use OCP\Files\IRootFolder;
|
||||||
use Test\TestCase;
|
use Test\TestCase;
|
||||||
|
|
||||||
class ThemingDefaultsTest extends TestCase {
|
class ThemingDefaultsTest extends TestCase {
|
||||||
|
@ -40,11 +41,17 @@ class ThemingDefaultsTest extends TestCase {
|
||||||
private $defaults;
|
private $defaults;
|
||||||
/** @var ThemingDefaults */
|
/** @var ThemingDefaults */
|
||||||
private $template;
|
private $template;
|
||||||
|
/** @var IRootFolder */
|
||||||
|
private $rootFolder;
|
||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
|
parent::setUp();
|
||||||
$this->config = $this->getMock('\\OCP\\IConfig');
|
$this->config = $this->getMock('\\OCP\\IConfig');
|
||||||
$this->l10n = $this->getMock('\\OCP\\IL10N');
|
$this->l10n = $this->getMock('\\OCP\\IL10N');
|
||||||
$this->urlGenerator = $this->getMock('\\OCP\\IURLGenerator');
|
$this->urlGenerator = $this->getMock('\\OCP\\IURLGenerator');
|
||||||
|
$this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')
|
||||||
|
->disableOriginalConstructor()
|
||||||
|
->getMock();
|
||||||
$this->defaults = $this->getMockBuilder('\\OC_Defaults')
|
$this->defaults = $this->getMockBuilder('\\OC_Defaults')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->getMock();
|
->getMock();
|
||||||
|
@ -68,10 +75,9 @@ class ThemingDefaultsTest extends TestCase {
|
||||||
$this->config,
|
$this->config,
|
||||||
$this->l10n,
|
$this->l10n,
|
||||||
$this->urlGenerator,
|
$this->urlGenerator,
|
||||||
$this->defaults
|
$this->defaults,
|
||||||
|
$this->rootFolder
|
||||||
);
|
);
|
||||||
|
|
||||||
return parent::setUp();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetNameWithDefault() {
|
public function testGetNameWithDefault() {
|
||||||
|
@ -368,4 +374,44 @@ class ThemingDefaultsTest extends TestCase {
|
||||||
|
|
||||||
$this->assertSame('', $this->template->undo('defaultitem'));
|
$this->assertSame('', $this->template->undo('defaultitem'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetBackgroundDefault() {
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getAppValue')
|
||||||
|
->with('theming', 'backgroundMime')
|
||||||
|
->willReturn('');
|
||||||
|
$expected = $this->urlGenerator->imagePath('core','background.jpg');
|
||||||
|
$this->assertEquals($expected, $this->template->getBackground());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetBackgroundCustom() {
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getAppValue')
|
||||||
|
->with('theming', 'backgroundMime')
|
||||||
|
->willReturn('image/svg+xml');
|
||||||
|
$expected = $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground');
|
||||||
|
$this->assertEquals($expected, $this->template->getBackground());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetLogoDefault() {
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getAppValue')
|
||||||
|
->with('theming', 'logoMime')
|
||||||
|
->willReturn('');
|
||||||
|
$expected = $this->urlGenerator->imagePath('core','logo.svg');
|
||||||
|
$this->assertEquals($expected, $this->template->getLogo());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetLogoCustom() {
|
||||||
|
$this->config
|
||||||
|
->expects($this->once())
|
||||||
|
->method('getAppValue')
|
||||||
|
->with('theming', 'logoMime')
|
||||||
|
->willReturn('image/svg+xml');
|
||||||
|
$expected = $this->urlGenerator->linkToRoute('theming.Theming.getLogo');
|
||||||
|
$this->assertEquals($expected, $this->template->getLogo());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -656,12 +656,13 @@ class Server extends ServerContainer implements IServerContainer {
|
||||||
$classExists = false;
|
$classExists = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($classExists && $this->getConfig()->getSystemValue('installed', false) && $this->getAppManager()->isInstalled('theming')) {
|
if ($classExists && $c->getConfig()->getSystemValue('installed', false) && $c->getAppManager()->isInstalled('theming')) {
|
||||||
return new ThemingDefaults(
|
return new ThemingDefaults(
|
||||||
$this->getConfig(),
|
$c->getConfig(),
|
||||||
$this->getL10N('theming'),
|
$c->getL10N('theming'),
|
||||||
$this->getURLGenerator(),
|
$c->getURLGenerator(),
|
||||||
new \OC_Defaults()
|
new \OC_Defaults(),
|
||||||
|
$c->getLazyRootFolder()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return new \OC_Defaults();
|
return new \OC_Defaults();
|
||||||
|
|
Loading…
Reference in New Issue