|
|
|
@ -70,6 +70,12 @@ class AccessibilityController extends Controller {
|
|
|
|
|
/** @var IconsCacher */
|
|
|
|
|
protected $iconsCacher;
|
|
|
|
|
|
|
|
|
|
/** @var \OC_Defaults */
|
|
|
|
|
private $defaults;
|
|
|
|
|
|
|
|
|
|
/** @var null|string */
|
|
|
|
|
private $injectedVariables;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Account constructor.
|
|
|
|
|
*
|
|
|
|
@ -82,6 +88,7 @@ class AccessibilityController extends Controller {
|
|
|
|
|
* @param ITimeFactory $timeFactory
|
|
|
|
|
* @param IUserSession $userSession
|
|
|
|
|
* @param IAppManager $appManager
|
|
|
|
|
* @param \OC_Defaults $defaults
|
|
|
|
|
*/
|
|
|
|
|
public function __construct(string $appName,
|
|
|
|
|
IRequest $request,
|
|
|
|
@ -92,7 +99,8 @@ class AccessibilityController extends Controller {
|
|
|
|
|
ITimeFactory $timeFactory,
|
|
|
|
|
IUserSession $userSession,
|
|
|
|
|
IAppManager $appManager,
|
|
|
|
|
IconsCacher $iconsCacher) {
|
|
|
|
|
IconsCacher $iconsCacher,
|
|
|
|
|
\OC_Defaults $defaults) {
|
|
|
|
|
parent::__construct($appName, $request);
|
|
|
|
|
$this->appName = $appName;
|
|
|
|
|
$this->config = $config;
|
|
|
|
@ -103,6 +111,7 @@ class AccessibilityController extends Controller {
|
|
|
|
|
$this->userSession = $userSession;
|
|
|
|
|
$this->appManager = $appManager;
|
|
|
|
|
$this->iconsCacher = $iconsCacher;
|
|
|
|
|
$this->defaults = $defaults;
|
|
|
|
|
|
|
|
|
|
$this->serverRoot = \OC::$SERVERROOT;
|
|
|
|
|
$this->appRoot = $this->appManager->getAppPath($this->appName);
|
|
|
|
@ -141,6 +150,7 @@ class AccessibilityController extends Controller {
|
|
|
|
|
$css .= $scss->compile(
|
|
|
|
|
$imports .
|
|
|
|
|
'@import "variables.scss";' .
|
|
|
|
|
$this->getInjectedVariables() .
|
|
|
|
|
'@import "css-variables.scss";'
|
|
|
|
|
);
|
|
|
|
|
} catch (ParserException $e) {
|
|
|
|
@ -220,4 +230,27 @@ class AccessibilityController extends Controller {
|
|
|
|
|
private function invertSvgIconsColor(string $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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|