diff --git a/routers/web/repo/actions/manual.go b/routers/web/repo/actions/manual.go index 86a6014761..949469fa21 100644 --- a/routers/web/repo/actions/manual.go +++ b/routers/web/repo/actions/manual.go @@ -1,5 +1,5 @@ -// Copyright The Forgejo Authors. -// SPDX-License-Identifier: MIT +// Copyright 2024 The Forgejo Authors. +// SPDX-License-Identifier: GPL-3.0-or-later package actions @@ -43,7 +43,7 @@ func ManualRunWorkflow(ctx *context_module.Context) { formKeyGetter := func(key string) string { formKey := "inputs[" + key + "]" - return ctx.FormString(formKey) + return ctx.Req.PostFormValue(formKey) } if err := workflow.Dispatch(ctx, formKeyGetter, ctx.Repo.Repository, ctx.Doer); err != nil { diff --git a/templates/repo/actions/dispatch.tmpl b/templates/repo/actions/dispatch.tmpl index 2372e61ebb..48c2aa5a26 100644 --- a/templates/repo/actions/dispatch.tmpl +++ b/templates/repo/actions/dispatch.tmpl @@ -33,7 +33,9 @@ {{if eq $val.Type "boolean"}} <div class="ui checkbox"> <label><strong>{{if $val.Description}}{{$val.Description}}{{else}}{{$key}}{{end}}</strong></label> - <input {{if $val.Required}}required{{end}} type="checkbox" name="inputs[{{$key}}]" {{if eq $val.Default "true"}}checked{{end}}> + {{/* These two inputs need to stay in exactly this order (checkbox first, hidden second) or boolean fields wont work correctly! */}} + <input type="checkbox" name="inputs[{{$key}}]" value="on" {{if eq $val.Default "true"}}checked{{end}}> + <input type="hidden" name="inputs[{{$key}}]" value="off" autocomplete="off"> </div> {{else}} <label>{{if $val.Description}}{{$val.Description}}{{else}}{{$key}}{{end}}</label>