mirror of
https://github.com/httpjamesm/AnonymousOverflow.git
synced 2025-04-19 05:19:14 +00:00
* Add theme support using environment variable * Propagate theme variable to template in options.go Propagate the `theme` variable from the environment to the template in `src/routes/options.go` * Retrieve the `theme` variable from the environment using `os.Getenv("THEME")` * Set the `theme` variable in the `gin.H` map when rendering the `home.html` template --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/httpjamesm/AnonymousOverflow/pull/145?shareId=6397c9b4-9450-425c-bbbe-019425965d2b). * Move all theme environment variable logic to a utils function Move theme environment variable logic to a utils function and update routes to use it. * Add `GetThemeFromEnv` function in `src/utils/theme.go` to derive the theme from environment variables and default to "auto" if not set. * Update `src/routes/home.go` to import and use `GetThemeFromEnv` in the `GetHome` function. * Update `src/routes/options.go` to import and use `GetThemeFromEnv` in the `ChangeOptions` function. * Update `src/routes/question.go` to import and use `GetThemeFromEnv` in the `ViewQuestion` function. --- For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/httpjamesm/AnonymousOverflow/pull/145?shareId=a0dab6f3-027c-4f6e-85fe-60e7675d0e70). * fix: imports removed by copilot * fix: override theme in posthome * style: reduced repetition in themes with common vars
30 lines
667 B
Go
30 lines
667 B
Go
package routes
|
|
|
|
import (
|
|
"anonymousoverflow/config"
|
|
"anonymousoverflow/src/utils"
|
|
"fmt"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func ChangeOptions(c *gin.Context) {
|
|
name := c.Param("name")
|
|
|
|
switch name {
|
|
case "images":
|
|
text := "disabled"
|
|
if c.MustGet("disable_images").(bool) {
|
|
text = "enabled"
|
|
}
|
|
c.SetCookie("disable_images", fmt.Sprintf("%t", !c.MustGet("disable_images").(bool)), 60*60*24*365*10, "/", "", false, true)
|
|
theme := utils.GetThemeFromEnv()
|
|
c.HTML(200, "home.html", gin.H{
|
|
"successMessage": "Images are now " + text,
|
|
"version": config.Version,
|
|
"theme": theme,
|
|
})
|
|
default:
|
|
c.String(400, "400 Bad Request")
|
|
}
|
|
}
|