diff options
Diffstat (limited to 'apps/theming')
-rw-r--r-- | apps/theming/css/settings-admin.css | 17 | ||||
-rw-r--r-- | apps/theming/css/theming.scss | 46 | ||||
-rw-r--r-- | apps/theming/js/settings-admin.js | 33 | ||||
-rw-r--r-- | apps/theming/l10n/el.js | 1 | ||||
-rw-r--r-- | apps/theming/l10n/el.json | 1 | ||||
-rw-r--r-- | apps/theming/l10n/en_GB.js | 29 | ||||
-rw-r--r-- | apps/theming/l10n/en_GB.json | 27 | ||||
-rw-r--r-- | apps/theming/l10n/nl.js | 1 | ||||
-rw-r--r-- | apps/theming/l10n/nl.json | 1 | ||||
-rw-r--r-- | apps/theming/l10n/pt_BR.js | 6 | ||||
-rw-r--r-- | apps/theming/l10n/pt_BR.json | 6 | ||||
-rw-r--r-- | apps/theming/lib/Controller/ThemingController.php | 14 | ||||
-rw-r--r-- | apps/theming/lib/ThemingDefaults.php | 15 | ||||
-rw-r--r-- | apps/theming/templates/settings-admin.php | 8 | ||||
-rw-r--r-- | apps/theming/tests/Controller/ThemingControllerTest.php | 51 | ||||
-rw-r--r-- | apps/theming/tests/ThemingDefaultsTest.php | 17 |
16 files changed, 242 insertions, 31 deletions
diff --git a/apps/theming/css/settings-admin.css b/apps/theming/css/settings-admin.css index 8cc3f0dfe14..e401d77e4b6 100644 --- a/apps/theming/css/settings-admin.css +++ b/apps/theming/css/settings-admin.css @@ -26,10 +26,20 @@ display: inline-block; visibility: hidden; } -#theming form .theme-undo { +form.uploadButton { + width: 356px; +} +#theming form .theme-undo, +#theming .theme-remove-bg { + cursor: pointer; + opacity: .3; + padding: 7px; + vertical-align: top; + display: inline-block; + float: right; position: relative; top: 4px; - left: 158px; + right: 0px; visibility: visible; } #theming input[type='text']:focus + .theme-undo, @@ -54,7 +64,8 @@ margin: 2px 0px; } -#theming .icon-upload { +#theming .icon-upload, +#theming .icon-loading-small { padding: 8px 20px; width: 20px; margin: 2px 0px; diff --git a/apps/theming/css/theming.scss b/apps/theming/css/theming.scss index 71e0df6735e..2a5a0e5cd46 100644 --- a/apps/theming/css/theming.scss +++ b/apps/theming/css/theming.scss @@ -64,4 +64,50 @@ input.primary { #body-login input.login { background-image: url('../../../core/img/actions/confirm.svg'); } +} + +// plain background color for login page +@if $image-login-plain == 'true' { + #body-login, #firstrunwizard .firstrunwizard-header, #theming-preview { + background-image: none !important; + background-color: $color-primary; + } + #body-login { + + a, label, p { + color: $color-primary-text !important; + } + + @if (lightness($color-primary) > 50) { + #submit { + border-color: nc-darken($color-primary, 20%); + background-color: nc-darken($color-primary, 20%); + } + #submit:hover { + border-color: nc-darken($color-primary, 10%); + background-color: nc-darken($color-primary, 10%); + } + input[type='checkbox'].checkbox--white + label:before { + border-color: nc-darken($color-primary, 40%) !important; + } + input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before, + input[type='checkbox'].checkbox--white:focus + label:before { + border-color: nc-darken($color-primary, 30%) !important; + } + input[type='checkbox'].checkbox--white:checked + label:before { + border-color: nc-darken($color-primary, 30%) !important; + background-image: url('../../../core/img/actions/checkbox-mark.svg'); + background-color: nc-darken($color-primary, 30%) !important; + } + } @else { + #submit { + border-color: nc-lighten($color-primary, 20%); + background-color: nc-lighten($color-primary, 20%); + } + #submit:hover { + border-color: nc-lighten($color-primary, 10%); + background-color: nc-lighten($color-primary, 10%); + } + } + } }
\ No newline at end of file diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index 802f6e05c07..5d91892c007 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -35,6 +35,7 @@ function setThemingValue(setting, value) { OC.msg.finishedSaving('#theming_settings_msg', response); $('#theming_settings_loading').hide(); }); + } function preview(setting, value) { @@ -74,18 +75,13 @@ function preview(setting, value) { previewImageLogo.src = OC.getRootPath() + '/core/img/logo-icon.svg?v' + timestamp; } } - if (setting === 'backgroundMime') { - var previewImage = document.getElementById('theming-preview'); - if (value !== '') { - previewImage.style.backgroundImage = "url('" + OC.generateUrl('/apps/theming/loginbackground') + "?v" + timestamp + "')"; - } else { - previewImage.style.backgroundImage = "url('" + OC.getRootPath() + '/core/img/background.jpg?v' + timestamp + "')"; - } - } if (setting === 'name') { window.document.title = t('core', 'Admin') + " - " + value; } + + hideUndoButton(setting, value); + } function hideUndoButton(setting, value) { @@ -103,6 +99,14 @@ function hideUndoButton(setting, value) { } else { $('.theme-undo[data-setting=' + setting + ']').show(); } + + if(setting === 'backgroundMime' && value !== 'backgroundColor') { + $('.theme-remove-bg').show(); + } + if(setting === 'backgroundMime' && value === 'backgroundColor') { + $('.theme-remove-bg').hide(); + $('.theme-undo[data-setting=backgroundMime]').show(); + } } $(document).ready(function () { @@ -116,6 +120,7 @@ $(document).ready(function () { } hideUndoButton(setting, value); }); + var uploadParamsLogo = { pasteZone: null, dropZone: null, @@ -208,4 +213,16 @@ $(document).ready(function () { preview(setting, response.data.value); }); }); + + $('.theme-remove-bg').click(function() { + startLoading(); + $.post( + OC.generateUrl('/apps/theming/ajax/updateLogo'), {'backgroundColor' : true} + ).done(function(response) { + preview('backgroundMime', 'backgroundColor'); + }).fail(function(response) { + OC.msg.finishedSaving('#theming_settings_msg', response); + }); + }); + }); diff --git a/apps/theming/l10n/el.js b/apps/theming/l10n/el.js index 4bfd9bf3cf7..57f45818b3c 100644 --- a/apps/theming/l10n/el.js +++ b/apps/theming/l10n/el.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Φόρτωση προεπισκόπησης ...", "Saved" : "Αποθηκεύτηκαν", "Admin" : "Διαχειριστής", "a safe home for all your data" : "μια ασφαλής τοποθεσία για όλα σας τα δεδομένα", diff --git a/apps/theming/l10n/el.json b/apps/theming/l10n/el.json index 9169c1e4ad3..3fd78ccd8fe 100644 --- a/apps/theming/l10n/el.json +++ b/apps/theming/l10n/el.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Φόρτωση προεπισκόπησης ...", "Saved" : "Αποθηκεύτηκαν", "Admin" : "Διαχειριστής", "a safe home for all your data" : "μια ασφαλής τοποθεσία για όλα σας τα δεδομένα", diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js new file mode 100644 index 00000000000..ed29a83eca3 --- /dev/null +++ b/apps/theming/l10n/en_GB.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Loading preview…", + "Saved" : "Saved", + "Admin" : "Admin", + "a safe home for all your data" : "a safe home for all your data", + "The given name is too long" : "The given name is too long", + "The given web address is too long" : "The given web address is too long", + "The given slogan is too long" : "The given slogan is too long", + "The given color is invalid" : "The given colour is invalid", + "No file uploaded" : "No file uploaded", + "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme" : "You are already using a custom theme", + "Theming" : "Theming", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", + "Name" : "Name", + "reset to default" : "reset to default", + "Web address" : "Web address", + "Web address https://…" : "Web address https://…", + "Slogan" : "Slogan", + "Color" : "Colour", + "Logo" : "Logo", + "Upload new logo" : "Upload new logo", + "Login image" : "Login image", + "Upload new login background" : "Upload new login background", + "Log in image" : "Log in image" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json new file mode 100644 index 00000000000..27a4eb827bd --- /dev/null +++ b/apps/theming/l10n/en_GB.json @@ -0,0 +1,27 @@ +{ "translations": { + "Loading preview…" : "Loading preview…", + "Saved" : "Saved", + "Admin" : "Admin", + "a safe home for all your data" : "a safe home for all your data", + "The given name is too long" : "The given name is too long", + "The given web address is too long" : "The given web address is too long", + "The given slogan is too long" : "The given slogan is too long", + "The given color is invalid" : "The given colour is invalid", + "No file uploaded" : "No file uploaded", + "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme" : "You are already using a custom theme", + "Theming" : "Theming", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", + "Name" : "Name", + "reset to default" : "reset to default", + "Web address" : "Web address", + "Web address https://…" : "Web address https://…", + "Slogan" : "Slogan", + "Color" : "Colour", + "Logo" : "Logo", + "Upload new logo" : "Upload new logo", + "Login image" : "Login image", + "Upload new login background" : "Upload new login background", + "Log in image" : "Log in image" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js index b4646d4f993..55db4422623 100644 --- a/apps/theming/l10n/nl.js +++ b/apps/theming/l10n/nl.js @@ -13,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", "Theming" : "Thema's", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", "Name" : "Naam", "reset to default" : "herstellen naar standaard", "Web address" : "Webadres", diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json index 83f500d0d82..7ac43b24ea7 100644 --- a/apps/theming/l10n/nl.json +++ b/apps/theming/l10n/nl.json @@ -11,6 +11,7 @@ "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", "Theming" : "Thema's", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", "Name" : "Naam", "reset to default" : "herstellen naar standaard", "Web address" : "Webadres", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index 2b56768334b..32091d88542 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -6,7 +6,7 @@ OC.L10N.register( "Admin" : "Administrador", "a safe home for all your data" : "um lugar seguro para seus dados", "The given name is too long" : "O nome é muito longo", - "The given web address is too long" : "O endereço da Web fornecido é muito longo", + "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", "No file uploaded" : "Nenhum arquivo enviado", @@ -16,8 +16,8 @@ OC.L10N.register( "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível a todos os usuários.", "Name" : "Nome", "reset to default" : "restaurar ao padrão", - "Web address" : "Endereço da Web", - "Web address https://…" : "Endereço da Web https://...", + "Web address" : "Endereço web", + "Web address https://…" : "Endereço web https://...", "Slogan" : "Slogan", "Color" : "Cor", "Logo" : "Logotipo", diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 4544daa7556..889e609f861 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -4,7 +4,7 @@ "Admin" : "Administrador", "a safe home for all your data" : "um lugar seguro para seus dados", "The given name is too long" : "O nome é muito longo", - "The given web address is too long" : "O endereço da Web fornecido é muito longo", + "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", "No file uploaded" : "Nenhum arquivo enviado", @@ -14,8 +14,8 @@ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível a todos os usuários.", "Name" : "Nome", "reset to default" : "restaurar ao padrão", - "Web address" : "Endereço da Web", - "Web address https://…" : "Endereço da Web https://...", + "Web address" : "Endereço web", + "Web address https://…" : "Endereço web https://...", "Slogan" : "Slogan", "Color" : "Cor", "Logo" : "Logotipo", diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index faaff1f2174..225673079a3 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -185,6 +185,20 @@ class ThemingController extends Controller { * @return DataResponse */ public function updateLogo() { + $backgroundColor = $this->request->getParam('backgroundColor', false); + if($backgroundColor) { + $this->themingDefaults->set('backgroundMime', 'backgroundColor'); + return new DataResponse( + [ + 'data' => + [ + 'name' => 'backgroundColor', + 'message' => $this->l10n->t('Saved') + ], + 'status' => 'success' + ] + ); + } $newLogo = $this->request->getUploadedFile('uploadlogo'); $newBackgroundLogo = $this->request->getUploadedFile('upload-login-background'); if (empty($newLogo) && empty($newBackgroundLogo)) { diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 39547af4916..0824a36ccdc 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -129,9 +129,10 @@ class ThemingDefaults extends \OC_Defaults { /** * Themed logo url * + * @param bool $useSvg Whether to point to the SVG image or a fallback * @return string */ - public function getLogo() { + public function getLogo($useSvg = true) { $logo = $this->config->getAppValue('theming', 'logoMime', false); $logoExists = true; @@ -144,7 +145,12 @@ class ThemingDefaults extends \OC_Defaults { $cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0'); if(!$logo || !$logoExists) { - return $this->urlGenerator->imagePath('core','logo.svg') . '?v=' . $cacheBusterCounter; + if($useSvg) { + $logo = $this->urlGenerator->imagePath('core', 'logo.svg'); + } else { + $logo = $this->urlGenerator->imagePath('core', 'logo.png'); + } + return $logo . '?v=' . $cacheBusterCounter; } return $this->urlGenerator->linkToRoute('theming.Theming.getLogo') . '?v=' . $cacheBusterCounter; @@ -190,6 +196,7 @@ class ThemingDefaults extends \OC_Defaults { $variables['image-logo'] = "'".$this->urlGenerator->getAbsoluteURL($this->getLogo())."'"; $variables['image-login-background'] = "'".$this->urlGenerator->getAbsoluteURL($this->getBackground())."'"; + $variables['image-login-plain'] = 'false'; if ($this->config->getAppValue('theming', 'color', null) !== null) { if ($this->util->invertTextColor($this->getColorPrimary())) { @@ -200,6 +207,10 @@ class ThemingDefaults extends \OC_Defaults { $variables['color-primary'] = $this->getColorPrimary(); $variables['color-primary-text'] = $colorPrimaryText; } + + if ($this->config->getAppValue('theming', 'backgroundMime', null) === 'backgroundColor') { + $variables['image-login-plain'] = 'true'; + } $cache->set('getScssVariables', $variables); return $variables; } diff --git a/apps/theming/templates/settings-admin.php b/apps/theming/templates/settings-admin.php index 858329eca48..858b916c932 100644 --- a/apps/theming/templates/settings-admin.php +++ b/apps/theming/templates/settings-admin.php @@ -67,7 +67,7 @@ style('theming', 'settings-admin'); </label> </div> <div> - <form class="uploadButton inlineblock" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> + <form class="uploadButton" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> <input type="hidden" id="current-logoMime" name="current-logoMime" value="<?php p($_['logoMime']); ?>" /> <label for="uploadlogo"><span><?php p($l->t('Logo')) ?></span></label> <input id="uploadlogo" class="upload-logo-field" name="uploadlogo" type="file" /> @@ -76,16 +76,16 @@ style('theming', 'settings-admin'); </form> </div> <div> - <form class="uploadButton inlineblock" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> + <form class="uploadButton" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> <input type="hidden" id="current-backgroundMime" name="current-backgroundMime" value="<?php p($_['backgroundMime']); ?>" /> <label for="upload-login-background"><span><?php p($l->t('Login image')) ?></span></label> <input id="upload-login-background" class="upload-logo-field" name="upload-login-background" type="file"> <label for="upload-login-background" class="button icon-upload svg" id="upload-login-background" title="<?php p($l->t("Upload new login background")) ?>"></label> <div data-setting="backgroundMime" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></div> + <div class="theme-remove-bg icon icon-delete" data-toggle="tooltip" data-original-title="<?php p($l->t('Remove background image')); ?>"></div> </form> </div> - - <div id="theming-preview" style="background-color:<?php p($_['color']);?>; background-image:url(<?php p($_['background']); ?>);"> + <div id="theming-preview"> <img src="<?php p($_['logo']); ?>" id="theming-preview-logo" /> </div> <?php } ?> diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index f22c317d73d..cbdb86d0358 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -152,11 +152,16 @@ class ThemingControllerTest extends TestCase { public function testUpdateLogoNoData() { $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn(null); @@ -179,6 +184,29 @@ class ThemingControllerTest extends TestCase { $this->assertEquals($expected, $this->themingController->updateLogo()); } + public function testUpdateBackgroundColor() { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(true); + $this->themingDefaults + ->expects($this->once()) + ->method('set') + ->with('backgroundMime', 'backgroundColor'); + $expected = new DataResponse( + [ + 'data' => + [ + 'name' => 'backgroundColor', + 'message' => $this->l10n->t('Saved') + ], + 'status' => 'success' + ] + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + public function dataUpdateImages() { return [ [false], @@ -194,6 +222,11 @@ class ThemingControllerTest extends TestCase { touch($tmpLogo); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn([ @@ -202,7 +235,7 @@ class ThemingControllerTest extends TestCase { 'name' => 'logo.svg', ]); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn(null); @@ -259,11 +292,16 @@ class ThemingControllerTest extends TestCase { file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/desktopapp.png')); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn([ @@ -322,11 +360,16 @@ class ThemingControllerTest extends TestCase { file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/data.zip')); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn([ diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index 7535eddb4f0..a7cb7790aa6 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -431,7 +431,7 @@ class ThemingDefaultsTest extends TestCase { $this->assertEquals('custom-background?v=0', $this->template->getBackground()); } - public function testGetLogoDefault() { + private function getLogoHelper($withName, $useSvg) { $this->appData->expects($this->once()) ->method('getFolder') ->willThrowException(new NotFoundException()); @@ -452,9 +452,17 @@ class ThemingDefaultsTest extends TestCase { ->willThrowException(new \Exception()); $this->urlGenerator->expects($this->once()) ->method('imagePath') - ->with('core', 'logo.svg') + ->with('core', $withName) ->willReturn('core-logo'); - $this->assertEquals('core-logo?v=0', $this->template->getLogo()); + $this->assertEquals('core-logo?v=0', $this->template->getLogo($useSvg)); + } + + public function testGetLogoDefaultWithSvg() { + $this->getLogoHelper('logo.svg', true); + } + + public function testGetLogoDefaultWithoutSvg() { + $this->getLogoHelper('logo.png', false); } public function testGetLogoCustom() { @@ -525,7 +533,8 @@ class ThemingDefaultsTest extends TestCase { 'image-logo' => "'absolute-custom-logo?v=0'", 'image-login-background' => "'absolute-custom-background?v=0'", 'color-primary' => $this->defaults->getColorPrimary(), - 'color-primary-text' => '#ffffff' + 'color-primary-text' => '#ffffff', + 'image-login-plain' => 'false' ]; $this->assertEquals($expected, $this->template->getScssVariables()); |