Unify instance_{rebuild,provision}.html

This commit unifies the templates for rebuild and provision as they are
nearly identical.
This commit is contained in:
Tom 2023-07-15 13:51:48 +02:00
parent 760aae0dc1
commit 2459cc005f
4 changed files with 50 additions and 107 deletions

View file

@ -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
})
}