diff --git a/internal/dis/component/server/admin/html/instance_provision.html b/internal/dis/component/server/admin/html/instance_provision.html
deleted file mode 100644
index 6ced76f..0000000
--- a/internal/dis/component/server/admin/html/instance_provision.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
- {{ range .ContentSecurityPolicies }}
-
- {{ end }}
-
\ No newline at end of file
diff --git a/internal/dis/component/server/admin/html/instance_rebuild.html b/internal/dis/component/server/admin/html/instance_system.html
similarity index 58%
rename from internal/dis/component/server/admin/html/instance_rebuild.html
rename to internal/dis/component/server/admin/html/instance_system.html
index f8ed7e7..eca90c4 100644
--- a/internal/dis/component/server/admin/html/instance_rebuild.html
+++ b/internal/dis/component/server/admin/html/instance_system.html
@@ -1,33 +1,34 @@
+{{ $rebuild := .Rebuild }}
-
+
{{ range .ContentSecurityPolicies }}
-
- {{ end }}
+
+ {{ end }}
\ No newline at end of file
diff --git a/internal/dis/component/server/admin/instance_provision.go b/internal/dis/component/server/admin/instance_provision.go
index fd2aa31..dc92aab 100644
--- a/internal/dis/component/server/admin/instance_provision.go
+++ b/internal/dis/component/server/admin/instance_provision.go
@@ -6,43 +6,17 @@ import (
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/server/assets"
"github.com/FAU-CDI/wisski-distillery/internal/dis/component/server/templating"
- "github.com/FAU-CDI/wisski-distillery/internal/models"
_ "embed"
)
-//go:embed "html/instance_provision.html"
-var instanceProvisionHTML []byte
-var instanceProvisionTemplate = templating.Parse[instanceProvisionContext](
- "instance_provision.html", instanceProvisionHTML, nil,
-
- templating.Title("Provision New Instance"),
- templating.Assets(assets.AssetsAdminProvision),
-)
-
-type instanceProvisionContext struct {
- templating.RuntimeFlags
-
- systemParams
-}
-
-type systemParams struct {
- PHPVersions []string
- ContentSecurityPolicies []string
- DefaultPHPVersion string
-}
-
-func newSystemParams() (sp systemParams) {
- sp.PHPVersions = models.KnownPHPVersions()
- sp.ContentSecurityPolicies = models.ContentSecurityPolicyExamples()
- sp.DefaultPHPVersion = models.DefaultPHPVersion
- return sp
-}
-
func (admin *Admin) instanceProvision(ctx context.Context) http.Handler {
- tpl := instanceProvisionTemplate.Prepare(
+ tpl := instanceSystemTemplate.Prepare(
admin.Dependencies.Templating,
+ templating.Title("Provision New Instance"),
+ templating.Assets(assets.AssetsAdminProvision),
+
templating.Crumbs(
menuAdmin,
menuInstances,
@@ -50,8 +24,8 @@ func (admin *Admin) instanceProvision(ctx context.Context) http.Handler {
),
)
- return tpl.HTMLHandler(func(r *http.Request) (ipc instanceProvisionContext, err error) {
- ipc.systemParams = newSystemParams()
+ return tpl.HTMLHandler(func(r *http.Request) (ipc instanceSystemContext, err error) {
+ ipc.prepare(false)
return ipc, nil
})
}
diff --git a/internal/dis/component/server/admin/instance_rebuild.go b/internal/dis/component/server/admin/instance_rebuild.go
index 9533284..4f953f4 100644
--- a/internal/dis/component/server/admin/instance_rebuild.go
+++ b/internal/dis/component/server/admin/instance_rebuild.go
@@ -17,27 +17,42 @@ import (
_ "embed"
)
-//go:embed "html/instance_rebuild.html"
-var instanceRebuildHTML []byte
-var instanceRebuildTemplate = templating.Parse[instanceRebuildContext](
- "instance_rebuild.html", instanceRebuildHTML, nil,
-
- templating.Title("Rebuild Instance"),
- templating.Assets(assets.AssetsAdminRebuild),
+//go:embed "html/instance_system.html"
+var instanceSystemHTML []byte
+var instanceSystemTemplate = templating.Parse[instanceSystemContext](
+ "instance_system.html", instanceSystemHTML, nil,
)
-type instanceRebuildContext struct {
+// instanceSystemContext is the context for instance_system.html
+type instanceSystemContext struct {
templating.RuntimeFlags
- Slug string
- System models.System
+ // parameters for completion
+ PHPVersions []string
+ ContentSecurityPolicies []string
+ DefaultPHPVersion string
- systemParams
+ // Are we in rebuild mode?
+ Rebuild bool
+ Slug string
+ System models.System
+}
+
+// prepare prares the given instanceSystemContent
+func (isc *instanceSystemContext) prepare(rebuild bool) {
+ isc.Rebuild = rebuild
+ isc.PHPVersions = models.KnownPHPVersions()
+ isc.ContentSecurityPolicies = models.ContentSecurityPolicyExamples()
+ isc.DefaultPHPVersion = models.DefaultPHPVersion
}
func (admin *Admin) instanceRebuild(ctx context.Context) http.Handler {
- tpl := instanceRebuildTemplate.Prepare(
+ tpl := instanceSystemTemplate.Prepare(
admin.Dependencies.Templating,
+
+ templating.Title("Rebuild Instance"),
+ templating.Assets(assets.AssetsAdminRebuild),
+
templating.Crumbs(
menuAdmin,
menuInstances,
@@ -46,20 +61,20 @@ func (admin *Admin) instanceRebuild(ctx context.Context) http.Handler {
),
)
- return tpl.HTMLHandlerWithFlags(func(r *http.Request) (ib instanceRebuildContext, funcs []templating.FlagFunc, err error) {
+ return tpl.HTMLHandlerWithFlags(func(r *http.Request) (isc instanceSystemContext, funcs []templating.FlagFunc, err error) {
slug := httprouter.ParamsFromContext(r.Context()).ByName("slug")
var instance *wisski.WissKI
instance, err = admin.Dependencies.Instances.WissKI(r.Context(), slug)
if err == instances.ErrWissKINotFound {
- return ib, nil, httpx.ErrNotFound
+ return isc, nil, httpx.ErrNotFound
}
if err != nil {
- return ib, nil, err
+ return isc, nil, err
}
- ib.Slug = instance.Slug
- ib.System = instance.System
+ isc.Slug = instance.Slug
+ isc.System = instance.System
// replace the menu item
funcs = []templating.FlagFunc{
@@ -68,7 +83,7 @@ func (admin *Admin) instanceRebuild(ctx context.Context) http.Handler {
templating.Title(instance.Slug + " - Rebuild"),
}
- ib.systemParams = newSystemParams()
+ isc.prepare(true)
return
})
}