From 2f7f19728b791ec042b0f2b7acdef7ee65a9bcdd Mon Sep 17 00:00:00 2001 From: Davide <davide@suma-ev.de> Date: Mon, 19 Oct 2020 16:01:26 +0200 Subject: [PATCH] added dark mode cookie and minor design changes --- app/Http/Controllers/SettingsController.php | 45 ++++++++++++++++++- app/Http/Controllers/StartpageController.php | 13 +++++- resources/lang/de/settings.php | 1 + resources/lang/en/settings.php | 1 + resources/less/metager/metager-dark.less | 2 +- resources/less/metager/parts/scaffolding.less | 4 +- .../less/metager/startpage-only-dark.less | 2 + .../less/metager/startpage-only-light.less | 2 + resources/less/metager/startpage-only.less | 17 +++---- resources/less/metager/variables-dark.less | 7 +++ resources/less/metager/variables.less | 5 +++ resources/views/settings/index.blade.php | 8 +++- routes/cookie.php | 1 + webpack.mix.js | 5 ++- 14 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 resources/less/metager/startpage-only-dark.less create mode 100644 resources/less/metager/startpage-only-light.less diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index 0d0d52f75..4e7a7b020 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -72,6 +72,18 @@ class SettingsController extends Controller # Generating link with set cookies $cookieLink = LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('loadSettings', $cookies)); + # Checking if dark mode active + $darkmode = 0; + foreach($cookies as $key => $value){ + if($key === 'dark_mode'){ + if($value === 1) + $darkmode = 1; + elseif($value === 2){ + $darkmode = 2; + } + } + } + return view('settings.index') ->with('title', trans('titles.settings', ['fokus' => $fokusName])) ->with('fokus', $request->input('fokus', '')) @@ -82,7 +94,8 @@ class SettingsController extends Controller ->with('settingActive', $settingActive) ->with('url', $url) ->with('blacklist', $blacklist) - ->with('cookieLink', $cookieLink); + ->with('cookieLink', $cookieLink) + ->with('darkmode', $darkmode); } private function getSumas($fokus) @@ -394,4 +407,34 @@ class SettingsController extends Controller return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url('/'))); } + + public function darkmode(Request $request) + { + $fokus = $request->input('fokus', ''); + $url = $request->input('url', ''); + + $path = \Request::path(); + $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5); + + $cookies = Cookie::get(); + $setCookie = true; + + $darkmode = "0"; + + if(!empty($cookies)){ + foreach($cookies as $key => $value){ + if($key === 'dark_mode'){ + if($value === "0" || $value == "1"){ + $darkmode = "2"; + }elseif($value === "2"){ + $darkmode = "1"; + } + Cookie::queue('dark_mode', $darkmode, 0, $cookiePath, null, false, false); + $setCookie = false; + } + } + }else{ + Cookie::queue('dark_mode', "2", 0, $cookiePath, null, false, false); + } + return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url]))); } } diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php index d38be544d..d270ccab6 100644 --- a/app/Http/Controllers/StartpageController.php +++ b/app/Http/Controllers/StartpageController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App; +use Cookie; use Illuminate\Http\Request; use Jenssegers\Agent\Agent; use LaravelLocalization; @@ -42,6 +43,15 @@ class StartpageController extends Controller $lang = 'all'; } + $darkmode = 0; + + $cookies = Cookie::get(); + foreach($cookies as $key => $value){ + if($key === 'dark_mode' && $value === 1){ + $darkmode = 1; + } + } + return view('index') ->with('title', trans('titles.index')) ->with('homeIcon') @@ -52,7 +62,8 @@ class StartpageController extends Controller ->with('request', $request->input('request', 'GET')) ->with('option_values', $option_values) ->with('autocomplete', $autocomplete) - ->with('pluginmodal', $request->input('plugin-modal', 'off')); + ->with('pluginmodal', $request->input('plugin-modal', 'off')) + ->with('darkmode', $darkmode); } public function loadPage($subpage) diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php index e0ba814ef..767731f21 100644 --- a/resources/lang/de/settings.php +++ b/resources/lang/de/settings.php @@ -25,6 +25,7 @@ return [ 'add' => 'Hinzufügen', 'clear' => 'Blacklist leeren', 'copy' => 'Kopieren', + 'darkmode' => 'Dunklen Modus umschalten', // Translations from the settings overview 'noSettings' => 'Aktuell sind keine Einstellungen gesetzt!', diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index f1968e6af..f97149f6f 100644 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -25,6 +25,7 @@ return [ 'add' => 'Add', 'clear' => 'Clear black list', 'copy' => 'Copy', + 'darkmode' => 'Toggle dark mode', // Translations from the settings overview 'noSettings' => "Currently no settings are set!", diff --git a/resources/less/metager/metager-dark.less b/resources/less/metager/metager-dark.less index df6cf7ab9..ddd5b804f 100644 --- a/resources/less/metager/metager-dark.less +++ b/resources/less/metager/metager-dark.less @@ -3,7 +3,7 @@ // Variables @import "./bs-variables.less"; -@import "./variables.less"; +//@import "./variables.less"; @import "./variables-dark.less"; // General diff --git a/resources/less/metager/parts/scaffolding.less b/resources/less/metager/parts/scaffolding.less index 6f7f55a9c..1d926a607 100644 --- a/resources/less/metager/parts/scaffolding.less +++ b/resources/less/metager/parts/scaffolding.less @@ -11,8 +11,8 @@ body{ font-family:"Helvetica Neue", Helvetica, Arial, sans-serif ; font-size: 1em; line-height:1.428571429 ; - color: black; - background-color:#fff ; + color:@text-color; + background-color:@background-color; } diff --git a/resources/less/metager/startpage-only-dark.less b/resources/less/metager/startpage-only-dark.less new file mode 100644 index 000000000..cef1a570c --- /dev/null +++ b/resources/less/metager/startpage-only-dark.less @@ -0,0 +1,2 @@ +@import "./variables-dark.less"; +@import "./startpage-only.less"; \ No newline at end of file diff --git a/resources/less/metager/startpage-only-light.less b/resources/less/metager/startpage-only-light.less new file mode 100644 index 000000000..d82aed9f6 --- /dev/null +++ b/resources/less/metager/startpage-only-light.less @@ -0,0 +1,2 @@ +@import "./variables.less"; +@import "./startpage-only.less"; \ No newline at end of file diff --git a/resources/less/metager/startpage-only.less b/resources/less/metager/startpage-only.less index 8fa4db3db..8fdae69b6 100644 --- a/resources/less/metager/startpage-only.less +++ b/resources/less/metager/startpage-only.less @@ -75,19 +75,20 @@ html { top: 0; z-index: 10; + &>:nth-child(1) { - background-color: #EEEEEE; + background-color: @story-privacy-background; } &>:nth-child(2) { - background-color: #ffffff; + background-color: @story-ngo-background; color: #AD1A00 } &>:nth-child(3) { - background-color: #edfdff; + background-color: @story-diversity-background; color: #0C4690; } &>:nth-child(4) { - background-color: #e3ffe9; + background-color: @story-eco-background; color: #0c621A; } @@ -192,12 +193,12 @@ footer { // following lines set the background and heading color of each section #story-privacy { margin-bottom: 0; - background-color: #EEEEEE; + background-color: @story-privacy-background; } #story-ngo { grid-area: "icn-ngo"; - background-color: #ffffff; + background-color: @story-ngo-background; clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%); } @@ -207,7 +208,7 @@ footer { #story-diversity { grid-area: "icn-diversity"; - background-color: #edfdff; + background-color: @story-diversity-background; clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%); } @@ -217,7 +218,7 @@ footer { #story-eco { grid-area: "icn-eco"; - background-color: #e3ffe9; + background-color: @story-eco-background; clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%); } diff --git a/resources/less/metager/variables-dark.less b/resources/less/metager/variables-dark.less index 72a7ba33f..aec4e5feb 100644 --- a/resources/less/metager/variables-dark.less +++ b/resources/less/metager/variables-dark.less @@ -14,3 +14,10 @@ @card-background-color: @color-strong-grey; // Default Borde Color @border-color: #727272; + +@background-color:black; + +@story-privacy-background: #111111; +@story-ngo-background:#000000; +@story-diversity-background:#000030; +@story-eco-background:#003000; \ No newline at end of file diff --git a/resources/less/metager/variables.less b/resources/less/metager/variables.less index 1541bf4ac..c8b85e4b9 100644 --- a/resources/less/metager/variables.less +++ b/resources/less/metager/variables.less @@ -62,3 +62,8 @@ sans-serif; @quicktip-background-color: @color-white; // Color of the Spruch author @spruch-author-color: @color-strong-grey; + +@story-privacy-background: @color-almost-white; +@story-ngo-background:white; +@story-diversity-background:#edfdff; +@story-eco-background:#e3ffe9; \ No newline at end of file diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index e673165a3..59ec7ad34 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -122,9 +122,10 @@ @endif </div> - @if(LaravelLocalization::getCurrentLocale() === "de") + <div class="card-light"> <h2>Weitere Einstellungen</h2> + @if(LaravelLocalization::getCurrentLocale() === "de") <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form"> <input type="hidden" name="fokus" value="{{ $fokus }}"> <input type="hidden" name="url" value="{{ $url }}"> @@ -137,8 +138,11 @@ </div> <button type="submit" class="btn btn-default">@lang('settings.save')</button> </form> + @endif + <form id="darkmode" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('darkmode', ["fokus" => $fokus, "url" => $url])) }}" method="post" class="form"> + <button type="submit" class="btn btn-default">@lang('settings.darkmode')</button> + </form> </div> - @endif <div class="card-light" id="actions"> @if($settingActive) <div id="reset"> diff --git a/routes/cookie.php b/routes/cookie.php index 515dd0ca8..babef196f 100644 --- a/routes/cookie.php +++ b/routes/cookie.php @@ -29,6 +29,7 @@ Route::group( Route::post('all-settings/removeOne', 'SettingsController@removeOneSetting')->name('removeOneSetting'); Route::post('all-settings/removeAll', 'SettingsController@removeAllSettings')->name('removeAllSettings'); Route::get('load-settings', 'SettingsController@loadSettings')->name('loadSettings'); + Route::post('darkmode', 'SettingsController@darkmode')->name('darkmode'); }); } ); diff --git a/webpack.mix.js b/webpack.mix.js index 5efff061f..0288185da 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -22,7 +22,10 @@ mix .less("resources/less/metager/metager.less", "public/css/themes/metager.css", { strictMath: true }) - .less("resources/less/metager/startpage-only.less", "public/css/themes/startpage-only.css", { + .less("resources/less/metager/startpage-only-light.less", "public/css/themes/startpage-only.css", { + strictMath: true + }) + .less("resources/less/metager/startpage-only-dark.less", "public/css/themes/startpage-only-dark.css", { strictMath: true }) .less("resources/less/metager/metager-dark.less", "public/css/themes/metager-dark.css", { -- GitLab