Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
446a2d4438 | ||
|
|
d9796cef9c |
@@ -5,7 +5,7 @@ Read this compact operational baseline before starting a milestone. Open detaile
|
||||
## Baseline
|
||||
|
||||
- Current reference: post-v0.1.1 release-gate correction based on tagged baseline `88a45c7`.
|
||||
- Source-facing HTML templates, CSS and browser JavaScript are structurally formatted for maintainability; this formatting-only baseline preserves their existing contracts and behavior.
|
||||
- Source-facing HTML templates, CSS and browser JavaScript are structurally formatted for maintainability; the primary assets are exposed as `app.css`, `theme.css` and `app.js` with simple development-friendly cache headers.
|
||||
- SQLite is initialized directly from one embedded current schema and can be reopened safely after first initialization. Development databases from earlier revisions are intentionally unsupported until versioned production migrations are introduced.
|
||||
- Roadmap milestones 1-10 are implemented; this is the V1 feature baseline.
|
||||
|
||||
|
||||
+7
-10
@@ -346,13 +346,10 @@ func newHandlerServicesWithCatalog(authService *auth.Service, repository reposit
|
||||
mux.HandleFunc("POST /api/v1/imports", s.importCreate)
|
||||
}
|
||||
}
|
||||
mux.HandleFunc("GET /static/app.v1.css", s.stylesheet)
|
||||
mux.HandleFunc("GET /static/app.v2.css", s.stylesheet)
|
||||
mux.HandleFunc("GET /static/app.css", s.stylesheet)
|
||||
mux.HandleFunc("GET /static/mobile-fixes.css", s.mobileStylesheet)
|
||||
mux.HandleFunc("GET /static/theme.v1.css", s.themeStylesheet)
|
||||
mux.HandleFunc("GET /static/theme.v2.css", s.themeStylesheet)
|
||||
mux.HandleFunc("GET /static/app.v1.js", s.javascript)
|
||||
mux.HandleFunc("GET /static/app.v2.js", s.javascript)
|
||||
mux.HandleFunc("GET /static/theme.css", s.themeStylesheet)
|
||||
mux.HandleFunc("GET /static/app.js", s.javascript)
|
||||
mux.HandleFunc("GET /static/dogama-logo.png", s.logo)
|
||||
mux.HandleFunc("GET /static/dogama.png", s.brandLogo)
|
||||
mux.HandleFunc("GET /static/dogama-brand-banner.png", s.brandBanner)
|
||||
@@ -2374,14 +2371,14 @@ func (s *server) render(w http.ResponseWriter, status int, name string, data pag
|
||||
}
|
||||
|
||||
func (s *server) stylesheet(w http.ResponseWriter, _ *http.Request) {
|
||||
body, err := assets.Open("static/app.v1.css")
|
||||
body, err := assets.Open("static/app.css")
|
||||
if err != nil {
|
||||
http.Error(w, "Not found.", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
defer func() { _ = body.Close() }()
|
||||
w.Header().Set("Content-Type", "text/css; charset=utf-8")
|
||||
w.Header().Set("Cache-Control", "public, max-age=31536000, immutable")
|
||||
w.Header().Set("Cache-Control", "public, max-age=86400")
|
||||
_, _ = io.Copy(w, body)
|
||||
}
|
||||
|
||||
@@ -2398,7 +2395,7 @@ func (s *server) mobileStylesheet(w http.ResponseWriter, _ *http.Request) {
|
||||
}
|
||||
|
||||
func (s *server) themeStylesheet(w http.ResponseWriter, _ *http.Request) {
|
||||
body, err := assets.Open("static/theme.v1.css")
|
||||
body, err := assets.Open("static/theme.css")
|
||||
if err != nil {
|
||||
http.Error(w, "Not found.", http.StatusNotFound)
|
||||
return
|
||||
@@ -2434,7 +2431,7 @@ func (s *server) brandLogo(w http.ResponseWriter, _ *http.Request) {
|
||||
}
|
||||
|
||||
func (s *server) javascript(w http.ResponseWriter, _ *http.Request) {
|
||||
body, err := assets.Open("static/app.v1.js")
|
||||
body, err := assets.Open("static/app.js")
|
||||
if err != nil {
|
||||
http.Error(w, "Not found.", http.StatusNotFound)
|
||||
return
|
||||
|
||||
@@ -547,15 +547,15 @@ func TestOfficialLogoIsServed(t *testing.T) {
|
||||
if response.Header().Get("Content-Type") != "image/png" || response.Body.Len() < 1000 {
|
||||
t.Fatal("official logo asset missing")
|
||||
}
|
||||
javascript := request(t, handler, http.MethodGet, "/static/app.v1.js", nil)
|
||||
javascript := request(t, handler, http.MethodGet, "/static/app.js", nil)
|
||||
assertStatus(t, javascript, http.StatusOK)
|
||||
if !strings.Contains(javascript.Body.String(), "nav-open") || !strings.Contains(javascript.Body.String(), "instance-search") {
|
||||
t.Fatal("responsive navigation or instance search script missing")
|
||||
}
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/app.v2.css", nil), http.StatusOK)
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/app.v2.js", nil), http.StatusOK)
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/theme.v2.css", nil), http.StatusOK)
|
||||
theme := request(t, handler, http.MethodGet, "/static/theme.v1.css", nil)
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/app.css", nil), http.StatusOK)
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/app.js", nil), http.StatusOK)
|
||||
assertStatus(t, request(t, handler, http.MethodGet, "/static/theme.css", nil), http.StatusOK)
|
||||
theme := request(t, handler, http.MethodGet, "/static/theme.css", nil)
|
||||
assertStatus(t, theme, http.StatusOK)
|
||||
if !strings.Contains(theme.Body.String(), "dogama-logo.png") {
|
||||
t.Fatal("brand-derived application background missing")
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 647 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 217 KiB |
@@ -7,7 +7,7 @@
|
||||
<title>
|
||||
Settings · DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -143,7 +143,7 @@
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/theme.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -196,7 +196,7 @@
|
||||
{{end}}
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.v1.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.CatalogDetail.Game.Name}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v2.css">
|
||||
<link rel="stylesheet" href="/static/theme.v2.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v2.css">
|
||||
<link rel="stylesheet" href="/static/theme.v2.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -106,7 +106,7 @@
|
||||
</section>
|
||||
{{end}}
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
</button>
|
||||
</header>
|
||||
<aside class="sidebar" id="app-navigation">
|
||||
<a class="brand" href="/">
|
||||
<img src="/static/dogama-logo.png" alt="DoGaMa">
|
||||
</a>
|
||||
<a class="brand brand-image" href="/">
|
||||
<img src="/static/dogama.png" alt="DoGaMa">
|
||||
</a>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.Msg "deployment.title"}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v2.css">
|
||||
<link rel="stylesheet" href="/static/theme.v2.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -101,7 +101,7 @@
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/theme.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -208,7 +208,7 @@
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
<script src="/static/app.v1.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
{{.InstanceDetail.Instance.Preview.DisplayName}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v2.css">
|
||||
<link rel="stylesheet" href="/static/theme.v2.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
<link rel="stylesheet" href="/static/theme.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -271,7 +271,7 @@
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="auth-body">
|
||||
<main class="auth-card">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -346,7 +346,7 @@
|
||||
</form>
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="auth-body">
|
||||
<main class="auth-card">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{{.Title}}
|
||||
· DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -107,7 +107,7 @@
|
||||
{{end}}
|
||||
</section>
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<title>
|
||||
Users · DoGaMa
|
||||
</title>
|
||||
<link rel="stylesheet" href="/static/app.v1.css">
|
||||
<link rel="stylesheet" href="/static/app.css">
|
||||
</head>
|
||||
<body class="app-body">
|
||||
{{template "sidebar" .}}
|
||||
@@ -204,7 +204,7 @@
|
||||
</section>
|
||||
{{end}}
|
||||
</main>
|
||||
<script src="/static/app.v2.js">
|
||||
<script src="/static/app.js">
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user