Prefer custom theme over theming app
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
d23bc9a99a
commit
ce5ad7e7f4
|
@ -23,33 +23,39 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$linkToCSS = \OC::$server->getURLGenerator()->linkToRoute(
|
|
||||||
'theming.Theming.getStylesheet',
|
|
||||||
[
|
|
||||||
'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
\OCP\Util::addHeader(
|
|
||||||
'link',
|
|
||||||
[
|
|
||||||
'rel' => 'stylesheet',
|
|
||||||
'href' => $linkToCSS,
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
$linkToJs = \OC::$server->getURLGenerator()->linkToRoute(
|
|
||||||
'theming.Theming.getJavascript',
|
|
||||||
[
|
|
||||||
'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
\OCP\Util::addHeader(
|
|
||||||
'script',
|
|
||||||
[
|
|
||||||
'src' => $linkToJs,
|
|
||||||
'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce()
|
|
||||||
], ''
|
|
||||||
);
|
|
||||||
|
|
||||||
$app = new \OCP\AppFramework\App('theming');
|
$app = new \OCP\AppFramework\App('theming');
|
||||||
$app->getContainer()->registerCapability(\OCA\Theming\Capabilities::class);
|
/** @var \OCA\Theming\Util $util */
|
||||||
|
$util = $app->getContainer()->query(\OCA\Theming\Util::class);
|
||||||
|
if(!$util->isAlreadyThemed()) {
|
||||||
|
|
||||||
|
$app->getContainer()->registerCapability(\OCA\Theming\Capabilities::class);
|
||||||
|
|
||||||
|
$linkToCSS = \OC::$server->getURLGenerator()->linkToRoute(
|
||||||
|
'theming.Theming.getStylesheet',
|
||||||
|
[
|
||||||
|
'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
\OCP\Util::addHeader(
|
||||||
|
'link',
|
||||||
|
[
|
||||||
|
'rel' => 'stylesheet',
|
||||||
|
'href' => $linkToCSS,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$linkToJs = \OC::$server->getURLGenerator()->linkToRoute(
|
||||||
|
'theming.Theming.getJavascript',
|
||||||
|
[
|
||||||
|
'v' => \OC::$server->getConfig()->getAppValue('theming', 'cachebuster', '0'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
\OCP\Util::addHeader(
|
||||||
|
'script',
|
||||||
|
[
|
||||||
|
'src' => $linkToJs,
|
||||||
|
'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce()
|
||||||
|
], ''
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
|
@ -199,4 +199,17 @@ class Util {
|
||||||
return $svg;
|
return $svg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a custom theme is set in the server configuration
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isAlreadyThemed() {
|
||||||
|
$theme = $this->config->getSystemValue('theme', '');
|
||||||
|
if ($theme !== '') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,4 +180,24 @@ class UtilTest extends TestCase {
|
||||||
$this->assertEquals($expected, $result);
|
$this->assertEquals($expected, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIsAlreadyThemedFalse() {
|
||||||
|
$theme = $this->config->getSystemValue('theme', '');
|
||||||
|
$this->config->expects($this->once())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with('theme', '')
|
||||||
|
->willReturn('');
|
||||||
|
$actual = $this->util->isAlreadyThemed();
|
||||||
|
$this->assertFalse($actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testIsAlreadyThemedTrue() {
|
||||||
|
$theme = $this->config->getSystemValue('theme', '');
|
||||||
|
$this->config->expects($this->once())
|
||||||
|
->method('getSystemValue')
|
||||||
|
->with('theme', '')
|
||||||
|
->willReturn('example');
|
||||||
|
$actual = $this->util->isAlreadyThemed();
|
||||||
|
$this->assertTrue($actual);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ OC.MimeType = {
|
||||||
path += icon;
|
path += icon;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(OCA.Theming) {
|
if(OCA.Theming && gotIcon === null) {
|
||||||
path = OC.generateUrl('/apps/theming/img/core/filetypes/');
|
path = OC.generateUrl('/apps/theming/img/core/filetypes/');
|
||||||
path += OC.MimeType._getFile(mimeType, OC.MimeTypeList.files);
|
path += OC.MimeType._getFile(mimeType, OC.MimeTypeList.files);
|
||||||
gotIcon = true;
|
gotIcon = true;
|
||||||
|
|
|
@ -166,19 +166,7 @@ class URLGenerator implements IURLGenerator {
|
||||||
// Check if the app is in the app folder
|
// Check if the app is in the app folder
|
||||||
$path = '';
|
$path = '';
|
||||||
$themingEnabled = $this->config->getSystemValue('installed', false) && \OCP\App::isEnabled('theming') && \OC_App::isAppLoaded('theming');
|
$themingEnabled = $this->config->getSystemValue('installed', false) && \OCP\App::isEnabled('theming') && \OC_App::isAppLoaded('theming');
|
||||||
if($themingEnabled && $image === 'favicon.ico' && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
|
if (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
|
||||||
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
|
|
||||||
if($app === '') { $app = 'core'; }
|
|
||||||
$path = $this->linkToRoute('theming.Icon.getFavicon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
|
|
||||||
} elseif($themingEnabled && $image === 'favicon-touch.png' && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
|
|
||||||
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
|
|
||||||
if($app === '') { $app = 'core'; }
|
|
||||||
$path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
|
|
||||||
} elseif($themingEnabled && $image === 'favicon-fb.png' && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
|
|
||||||
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
|
|
||||||
if($app === '') { $app = 'core'; }
|
|
||||||
$path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
|
|
||||||
} elseif (file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$image")) {
|
|
||||||
$path = \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
|
$path = \OC::$WEBROOT . "/themes/$theme/apps/$app/img/$image";
|
||||||
} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.svg")
|
} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.svg")
|
||||||
&& file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.png")) {
|
&& file_exists(\OC::$SERVERROOT . "/themes/$theme/apps/$app/img/$basename.png")) {
|
||||||
|
@ -193,6 +181,14 @@ class URLGenerator implements IURLGenerator {
|
||||||
} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.svg")
|
} elseif (!file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.svg")
|
||||||
&& file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.png")) {
|
&& file_exists(\OC::$SERVERROOT . "/themes/$theme/core/img/$basename.png")) {
|
||||||
$path = \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
|
$path = \OC::$WEBROOT . "/themes/$theme/core/img/$basename.png";
|
||||||
|
} elseif($themingEnabled && $image === "favicon.ico" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
|
||||||
|
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||||
|
if($app==="") { $app = "core"; }
|
||||||
|
$path = $this->linkToRoute('theming.Icon.getFavicon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
|
||||||
|
} elseif($themingEnabled && $image === "favicon-touch.png" && \OC::$server->getThemingDefaults()->shouldReplaceIcons()) {
|
||||||
|
$cacheBusterValue = $this->config->getAppValue('theming', 'cachebuster', '0');
|
||||||
|
if($app==="") { $app = "core"; }
|
||||||
|
$path = $this->linkToRoute('theming.Icon.getTouchIcon', [ 'app' => $app ]) . '?v='. $cacheBusterValue;
|
||||||
} elseif ($appPath && file_exists($appPath . "/img/$image")) {
|
} elseif ($appPath && file_exists($appPath . "/img/$image")) {
|
||||||
$path = \OC_App::getAppWebPath($app) . "/img/$image";
|
$path = \OC_App::getAppWebPath($app) . "/img/$image";
|
||||||
} elseif ($appPath && !file_exists($appPath . "/img/$basename.svg")
|
} elseif ($appPath && !file_exists($appPath . "/img/$basename.svg")
|
||||||
|
|
Loading…
Reference in New Issue