diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious.cr | 22 | ||||
| -rw-r--r-- | src/views/layout.ecr | 18 |
2 files changed, 37 insertions, 3 deletions
diff --git a/src/invidious.cr b/src/invidious.cr index 78b13b1c..85645611 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -208,6 +208,10 @@ before_all do |env| notifications ||= 0 env.set "notifications", notifications end + + if env.request.cookies.has_key?("darktheme") && env.request.cookies["darktheme"].value == "true" + env.set "darktheme", true + end end get "/" do |env| @@ -514,7 +518,9 @@ get "/signout" do |env| referer ||= "/" env.request.cookies.each do |cookie| - cookie.expires = Time.new(1990, 1, 1) + if cookie.name != "darktheme" + cookie.expires = Time.new(1990, 1, 1) + end end env.request.cookies.add_response_headers(env.response.headers) @@ -770,6 +776,20 @@ get "/subscription_ajax" do |env| env.redirect referer end +get "/modify_theme" do |env| + referer = env.request.headers["referer"]? + referer ||= "/" + + if env.params.query["dark"]? + env.response.cookies["darktheme"] = "true" + elsif env.params.query["light"]? + env.request.cookies["darktheme"].expires = Time.new(1990, 1, 1) + env.request.cookies.add_response_headers(env.response.headers) + end + + env.redirect referer +end + error 404 do |env| error_message = "404 Page not found" templated "error" diff --git a/src/views/layout.ecr b/src/views/layout.ecr index cf26da3f..22abd4c5 100644 --- a/src/views/layout.ecr +++ b/src/views/layout.ecr @@ -7,7 +7,12 @@ <link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/pure-min.css"> <link rel="stylesheet" href="https://unpkg.com/purecss@1.0.0/build/grids-responsive-min.css"> <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.6/css/all.css"> - <link rel="stylesheet" href="/css/custom.css"> + <link rel="stylesheet" href="/css/default.css"> + <% if env.get? "darktheme" %> + <link rel="stylesheet" href="/css/darktheme.css"> + <% else %> + <link rel="stylesheet" href="/css/lighttheme.css"> + <% end %> <%= yield_content "header" %> </head> @@ -21,7 +26,9 @@ </div> <div class="pure-u-1 pure-u-md-3-5"> <form class="pure-form" action="/search" method="get"> - <input type="search" style="width:100%;" name="q" placeholder="search" value="<%= env.params.query["q"]? %>"> + <fieldset> + <input type="search" style="width:100%;" name="q" placeholder="search" value="<%= env.params.query["q"]? %>"> + </fieldset> </form> </div> <div class="pure-u-1 pure-u-md-1-5"> @@ -48,6 +55,13 @@ </div> <%= content %> <center class="h-box"> + <% if env.get? "darktheme" %> + <a href="/modify_theme?light">Light theme</a> + <% else %> + <a href="/modify_theme?dark">Dark theme</a> + <% end %> + </center> + <center class="h-box"> Released under AGPLv3 by <a href="https://github.com/omarroth">Omar Roth</a> - source available <a href="https://github.com/omarroth/invidious">here</a> </center> |
