Fix illegible text color in columns Size and Modified on dark theme: rework after review

Signed-off-by: Alexey Pyltsyn <lex61rus@gmail.com>
This commit is contained in:
Alexey Pyltsyn 2018-10-16 21:42:06 +03:00
parent 5911367a18
commit 30cbd137e8
6 changed files with 44 additions and 6 deletions

View File

@ -27,4 +27,5 @@ $app = new \OCA\Accessibility\AppInfo\Application();
// Separate from the constructor since the route are not initialized before that // Separate from the constructor since the route are not initialized before that
// 1. create the app // 1. create the app
// 2. generate css route and inject // 2. generate css route and inject
$app->injectCss(); $app->injectCss();
$app->injectJavascript();

View File

@ -22,8 +22,9 @@
*/ */
return [ return [
'routes' => [ 'routes' => [
['name' => 'accessibility#getCss', 'url' => '/css/user-{md5}.css', 'verb' => 'GET'], ['name' => 'accessibility#getCss', 'url' => '/css/user-{md5}.css', 'verb' => 'GET'],
['name' => 'accessibility#getJavascript', 'url' => '/js/accessibility', 'verb' => 'GET'],
], ],
'ocs' => [ 'ocs' => [
[ [

View File

@ -60,4 +60,22 @@ class Application extends App {
} }
} }
} }
public function injectJavascript() {
$linkToJs = $this->urlGenerator->linkToRoute(
$this->appName . '.accessibility.getJavascript',
[
'v' => \OC::$server->getConfig()->getAppValue('accessibility', 'cachebuster', '0'),
]
);
\OCP\Util::addHeader(
'script',
[
'src' => $linkToJs,
'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce()
],
''
);
}
} }

View File

@ -28,6 +28,7 @@ use Leafo\ScssPhp\Formatter\Crunched;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataDisplayResponse; use OCP\AppFramework\Http\DataDisplayResponse;
use OCP\AppFramework\Http\DataDownloadResponse;
use OCP\AppFramework\Utility\ITimeFactory; use OCP\AppFramework\Utility\ITimeFactory;
use OCP\App\IAppManager; use OCP\App\IAppManager;
use OCP\IConfig; use OCP\IConfig;
@ -184,6 +185,24 @@ class AccessibilityController extends Controller {
return $response; return $response;
} }
/**
* @NoCSRFRequired
* @PublicPage
*
* @return DataDownloadResponse
*/
public function getJavascript(): DataDownloadResponse {
$responseJS = '(function() {
OCA.Accessibility = {
theme: ' . json_encode($this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'theme', false)) . ',
};
})();';
$response = new DataDownloadResponse($responseJS, 'javascript', 'text/javascript');
$response->cacheFor(3600);
return $response;
}
/** /**
* Return an array with the user theme & font settings * Return an array with the user theme & font settings
* *

View File

@ -1385,7 +1385,7 @@
// min. color contrast for normal text on white background according to WCAG AA // min. color contrast for normal text on white background according to WCAG AA
sizeColor = Math.round(118-Math.pow((fileData.size/(1024*1024)),2)); sizeColor = Math.round(118-Math.pow((fileData.size/(1024*1024)),2));
if (oc_defaults.themeName === 'themedark') { if (OCA.Accessibility && OCA.Accessibility.theme === 'themedark') {
sizeColor = Math.abs(sizeColor); sizeColor = Math.abs(sizeColor);
} }
} else { } else {
@ -1407,7 +1407,7 @@
if (modifiedColor >= '118') { if (modifiedColor >= '118') {
modifiedColor = 118; modifiedColor = 118;
} }
if (oc_defaults.themeName === 'themedark') { if (OCA.Accessibility && OCA.Accessibility.theme === 'themedark') {
modifiedColor = Math.abs(modifiedColor); modifiedColor = Math.abs(modifiedColor);
// ensure that the dimmest color is still readable // ensure that the dimmest color is still readable

View File

@ -260,7 +260,6 @@ class JSConfigHelper {
'shortFooter' => $this->defaults->getShortFooter(), 'shortFooter' => $this->defaults->getShortFooter(),
'longFooter' => $this->defaults->getLongFooter(), 'longFooter' => $this->defaults->getLongFooter(),
'folder' => \OC_Util::getTheme(), 'folder' => \OC_Util::getTheme(),
'themeName' => $this->config->getUserValue($uid, 'accessibility', 'theme', false),
]), ]),
"oc_capabilities" => json_encode($capabilities), "oc_capabilities" => json_encode($capabilities),
]; ];