Skip to content
Snippets Groups Projects
Unverified Commit a7c426aa authored by John Molakvoæ's avatar John Molakvoæ
Browse files

Add default theming into accessibility compiler

parent 62a9ec12
No related branches found
No related tags found
No related merge requests found
...@@ -70,6 +70,12 @@ class AccessibilityController extends Controller { ...@@ -70,6 +70,12 @@ class AccessibilityController extends Controller {
/** @var IconsCacher */ /** @var IconsCacher */
protected $iconsCacher; protected $iconsCacher;
/** @var \OC_Defaults */
private $defaults;
/** @var null|string */
private $injectedVariables;
/** /**
* Account constructor. * Account constructor.
* *
...@@ -82,6 +88,7 @@ class AccessibilityController extends Controller { ...@@ -82,6 +88,7 @@ class AccessibilityController extends Controller {
* @param ITimeFactory $timeFactory * @param ITimeFactory $timeFactory
* @param IUserSession $userSession * @param IUserSession $userSession
* @param IAppManager $appManager * @param IAppManager $appManager
* @param \OC_Defaults $defaults
*/ */
public function __construct(string $appName, public function __construct(string $appName,
IRequest $request, IRequest $request,
...@@ -92,7 +99,8 @@ class AccessibilityController extends Controller { ...@@ -92,7 +99,8 @@ class AccessibilityController extends Controller {
ITimeFactory $timeFactory, ITimeFactory $timeFactory,
IUserSession $userSession, IUserSession $userSession,
IAppManager $appManager, IAppManager $appManager,
IconsCacher $iconsCacher) { IconsCacher $iconsCacher,
\OC_Defaults $defaults) {
parent::__construct($appName, $request); parent::__construct($appName, $request);
$this->appName = $appName; $this->appName = $appName;
$this->config = $config; $this->config = $config;
...@@ -103,6 +111,7 @@ class AccessibilityController extends Controller { ...@@ -103,6 +111,7 @@ class AccessibilityController extends Controller {
$this->userSession = $userSession; $this->userSession = $userSession;
$this->appManager = $appManager; $this->appManager = $appManager;
$this->iconsCacher = $iconsCacher; $this->iconsCacher = $iconsCacher;
$this->defaults = $defaults;
$this->serverRoot = \OC::$SERVERROOT; $this->serverRoot = \OC::$SERVERROOT;
$this->appRoot = $this->appManager->getAppPath($this->appName); $this->appRoot = $this->appManager->getAppPath($this->appName);
...@@ -141,6 +150,7 @@ class AccessibilityController extends Controller { ...@@ -141,6 +150,7 @@ class AccessibilityController extends Controller {
$css .= $scss->compile( $css .= $scss->compile(
$imports . $imports .
'@import "variables.scss";' . '@import "variables.scss";' .
$this->getInjectedVariables() .
'@import "css-variables.scss";' '@import "css-variables.scss";'
); );
} catch (ParserException $e) { } catch (ParserException $e) {
...@@ -220,4 +230,27 @@ class AccessibilityController extends Controller { ...@@ -220,4 +230,27 @@ class AccessibilityController extends Controller {
private function invertSvgIconsColor(string $css) { private function invertSvgIconsColor(string $css) {
return str_replace(['/000', '/fff', '/***'], ['/***', '/000', '/fff'], $css); return str_replace(['/000', '/fff', '/***'], ['/***', '/000', '/fff'], $css);
} }
/**
* @return string SCSS code for variables from OC_Defaults
*/
private function getInjectedVariables(): string {
if ($this->injectedVariables !== null) {
return $this->injectedVariables;
}
$variables = '';
foreach ($this->defaults->getScssVariables() as $key => $value) {
$variables .= '$' . $key . ': ' . $value . ';';
}
// check for valid variables / otherwise fall back to defaults
try {
$scss = new Compiler();
$scss->compile($variables);
$this->injectedVariables = $variables;
} catch (ParserException $e) {
$this->logger->error($e, ['app' => 'core']);
}
return $variables;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment