Albirew/nyaa-pantsu
Albirew
/
nyaa-pantsu
Archivé
1
0
Bifurcation 0

Add toggle dark theme for non-JS users (#1381)

* Add themeToggle handler to router.go

* Create themeToggle/router.go & ThemeToggle.go

* Add link to /dark in footer, remove display = none on toggle dark mode

* Remove JS that ordered toggle dark mode link to show as it is now constantly visible

* Rollback to fix errors

* Add some comments

* Create redirectUrl variable & set it's content then use it to redirect user

* Remove useless log

* Remove usage of fmt

* Add redirect get parameter to toggle link

* Add another url for toggleTheme

* wooo

* Update base.jet.html

* Update base.jet.html
Cette révision appartient à :
kilo 2017-08-21 02:48:17 +02:00 révisé par ewhal
Parent f3eaa2285b
révision bda181ee54
5 fichiers modifiés avec 50 ajouts et 2 suppressions

Voir le fichier

@ -18,6 +18,7 @@ import (
_ "github.com/NyaaPantsu/nyaa/controllers/search" // search controller
_ "github.com/NyaaPantsu/nyaa/controllers/settings" // settings controller
_ "github.com/NyaaPantsu/nyaa/controllers/static" // static files
_ "github.com/NyaaPantsu/nyaa/controllers/themeToggle" // themeToggle controller
_ "github.com/NyaaPantsu/nyaa/controllers/torrent" // torrent controller
_ "github.com/NyaaPantsu/nyaa/controllers/upload" // upload controller
_ "github.com/NyaaPantsu/nyaa/controllers/user" // user controller

Voir le fichier

@ -0,0 +1,8 @@
package themeToggleController
import "github.com/NyaaPantsu/nyaa/controllers/router"
func init() {
router.Get().Any("/dark", toggleThemeHandler)
router.Get().Any("/dark/*redirect", toggleThemeHandler)
}

Voir le fichier

@ -0,0 +1,40 @@
package themeToggleController
import (
"net/http"
"github.com/NyaaPantsu/nyaa/config"
"github.com/NyaaPantsu/nyaa/utils/timeHelper"
"github.com/gin-gonic/gin"
)
// toggleThemeHandler : Controller to switch between theme1 & theme2
func toggleThemeHandler(c *gin.Context) {
//Get theme1 & theme2 value, set g.css & tomorrow.css by default
theme, err := c.Cookie("theme")
if err != nil {
theme = "g"
}
theme2, err := c.Cookie("theme2")
if err != nil {
theme2 = "tomorrow"
}
//Switch theme & theme2 value
http.SetCookie(c.Writer, &http.Cookie{Name: "theme", Value: theme2, Domain: getDomainName(), Path: "/", Expires: timeHelper.FewDaysLater(365)})
http.SetCookie(c.Writer, &http.Cookie{Name: "theme2", Value: theme, Domain: getDomainName(), Path: "/", Expires: timeHelper.FewDaysLater(365)})
//Redirect user to page he was beforehand
c.Redirect(http.StatusSeeOther, c.Param("redirect") + "#footer")
return
}
func getDomainName() string {
domain := config.Get().Cookies.DomainName
if config.Get().Environment == "DEVELOPMENT" {
domain = ""
}
return domain
}

Voir le fichier

@ -135,7 +135,6 @@ function startupCode() {
if (document.cookie.includes("newVersion"))
document.getElementById("commit").className = document.getElementById("commit").innerHTML != "unknown" ? "new" : "wew";
document.getElementById("dark-toggle").style.display = "initial"
document.getElementById("dark-toggle").addEventListener("click", toggleTheme);
if(document.cookie.includes("theme")) {

Voir le fichier

@ -84,7 +84,7 @@
<footer id="footer">
<div class="container footer center">
<div class="footer-opt">
<p><a href="/settings">{{ T("change_settings") }}</a><a id="dark-toggle" style="display: none" href="#"> - Toggle Dark Mode</a></p>
<p><a href="/settings">{{ T("change_settings") }}</a><a id="dark-toggle" href="/dark/{{ URL.String()}}"> - Toggle Dark Mode</a></p>
</div>
<span><i>Powered by <a href="#">Nyaa Pantsu</a> v{{ Config.Version }} - commit <a id="commit" href="https://github.com/NyaaPantsu/nyaa/commit/{{ Config.Build }}">{{ Config.Build }}</a></i></span>
</div>