mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-31 21:02:21 +00:00
1. In dev mode, discover themes from source files in `web_src/css/themes/` instead of AssetFS. In prod, use AssetFS only. Extract shared `collectThemeFiles` helper to deduplicate theme file handling. 2. Implement `fs.ReadDirFS` on `LayeredFS` to support theme file discovery. 3. `IsViteDevMode` now performs an HTTP health check against the vite dev server instead of only checking the port file exists. Result is cached with a 1-second TTL. 4. Refactor theme caching from mutex to atomic pointer with time-based invalidation, allowing themes to refresh when vite dev mode state changes. 5. Move `ViteDevMiddleware` into `ProtocolMiddlewares` so it applies to both install and web routes. 6. Show a `ViteDevMode` label in the page footer when vite dev server is active. 7. Add `/__vite_dev_server_check` endpoint to vite dev server for the health check. 8. Ensure `.vite` directory exists before writing the dev-port file. 9. Minor CSS fixes: footer gap, navbar mobile alignment. --- This PR was written with the help of Claude Opus 4.6 --------- Signed-off-by: silverwind <me@silverwind.io> Co-authored-by: Claude (Opus 4.6) <noreply@anthropic.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
// Copyright 2020 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package middleware
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"code.gitea.io/gitea/modules/public"
|
|
"code.gitea.io/gitea/modules/reqctx"
|
|
"code.gitea.io/gitea/modules/setting"
|
|
)
|
|
|
|
const ContextDataKeySignedUser = "SignedUser"
|
|
|
|
func GetContextData(c context.Context) reqctx.ContextData {
|
|
if rc := reqctx.GetRequestDataStore(c); rc != nil {
|
|
return rc.GetData()
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func CommonTemplateContextData() reqctx.ContextData {
|
|
return reqctx.ContextData{
|
|
"PageTitleCommon": setting.AppName,
|
|
|
|
"IsLandingPageOrganizations": setting.LandingPageURL == setting.LandingPageOrganizations,
|
|
|
|
"ShowRegistrationButton": setting.Service.ShowRegistrationButton,
|
|
"ShowMilestonesDashboardPage": setting.Service.ShowMilestonesDashboardPage,
|
|
"ShowFooterVersion": setting.Other.ShowFooterVersion,
|
|
"DisableDownloadSourceArchives": setting.Repository.DisableDownloadSourceArchives,
|
|
|
|
"EnableSwagger": setting.API.EnableSwagger,
|
|
"EnableOpenIDSignIn": setting.Service.EnableOpenIDSignIn,
|
|
"PageStartTime": time.Now(),
|
|
|
|
"RunModeIsProd": setting.IsProd,
|
|
"ViteModeIsDev": public.IsViteDevMode(),
|
|
}
|
|
}
|