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 @@ -
-
-
- Main Parameters - -
- - -
-
-
- System Parameters - -
- - -
- -
- - -
-
-
- Profile - -
- Not yet available -
-
- - -
-
- - {{ range .ContentSecurityPolicies }} - \ 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 }}
-
+
Main Parameters
- +
System Parameters - +
- +
@@ -38,12 +39,12 @@
- + {{ range .ContentSecurityPolicies }} - \ 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 }) }