| <!-- |
| Copyright 2020 The Go Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style |
| license that can be found in the LICENSE file. |
| --> |
| {{template "layout" .}} |
| |
| {{define "content"}} |
| {{- /*gotype: golang.org/x/build/internal/relui.newWorkflowResponse*/ -}} |
| {{$response := .}} |
| <section class="NewWorkflow"> |
| <h2>New Go Release</h2> |
| <form class="NewWorkflow-workflowSelect" action="{{baseLink "/new_workflow"}}" method="get"> |
| <div class="NewWorkflow-parameter"> |
| <label for="workflow.name">Workflow:</label> |
| <select id="workflow.name" name="workflow.name" onchange="this.form.submit()"> |
| <option value="">Select Workflow</option> |
| {{range $name, $definition := .Definitions}} |
| <option value="{{$name}}" {{if eq $name $.Name}}selected="selected"{{end}}> |
| {{$name}} |
| </option> |
| {{end}} |
| </select> |
| </div> |
| <noscript> |
| <input name="workflow.new" type="submit" value="New" /> |
| </noscript> |
| </form> |
| {{if .Selected}} |
| <form action="{{baseLink "/workflows"}}" method="post"> |
| <input type="hidden" id="workflow.name" name="workflow.name" value="{{$.Name}}" /> |
| <div class="NewWorkflow-parameter"> |
| <div class="NewWorkflow-tabContainer"> |
| {{range $sched := .ScheduleTypes}} |
| <input class="NewWorkflow-tabControl" type="radio" id="workflow.schedule.{{$sched.ElementID}}" name="workflow.schedule" value="{{$sched}}" {{if eq $sched $.Schedule}}checked{{end}}> |
| {{end}} |
| <ul class="NewWorkflow-tabHeader"> |
| {{range $sched := .ScheduleTypes}} |
| <li class="NewWorkflow-tab"><label class="NewWorkflow-tabLabel" for="workflow.schedule.{{$sched.ElementID}}">{{$sched}}</label></li> |
| {{end}} |
| </ul> |
| {{range $sched := .ScheduleTypes}} |
| {{ $input := $sched.FormField }} |
| <div class="NewWorkflow-tabContent"> |
| {{if eq $input ""}} |
| <div class="NewWorkflow-parameter"> |
| Run workflow once immediately. |
| </div> |
| {{else if eq $input "datetime-local"}} |
| <div class="NewWorkflow-parameter"> |
| <label for="workflow.schedule.datetime">Run Once (UTC):</label> |
| <input type="datetime-local" id="workflow.schedule.datetime" name="workflow.schedule.datetime" min="{{$response.ScheduleMinTime}}" value="{{$response.ScheduleMinTime}}"/> |
| </div> |
| {{else if eq $input "duration"}} |
| <div class="NewWorkflow-parameter"> |
| <label for="workflow.schedule.interval">Run every N minutes:</label> |
| <input type="number" id="workflow.schedule.interval" name="workflow.schedule.interval" placeholder="5" min="0"/> |
| </div> |
| {{else if eq $input "cron"}} |
| <div class="NewWorkflow-parameter"> |
| <label for="workflow.schedule.cron">Run on a cron schedule (minute hour day-of-month month day-of-week):</label> |
| <input type="text" id="workflow.schedule.cron" name="workflow.schedule.cron" placeholder="* * * * *" title="Valid Cron-syntax string" |
| pattern="(\S+ \S+ \S+ \S+ \S+ *)|@(hourly|daily|weekly|monthly|yearly|annually|midnight)"/> |
| </div> |
| {{else}} |
| <div class="NewWorkflow-parameter"> |
| Unknown form field for {{$sched}}. |
| </div> |
| {{end}} |
| </div> |
| {{end}} |
| </div> |
| </div> |
| {{range $_, $p := .Selected.Parameters}} |
| {{if eq $p.HTMLElement "select"}} |
| <div class="NewWorkflow-parameter NewWorkflow-parameter--select"> |
| <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> |
| <select id="workflow.params.{{$p.Name}}" name="workflow.params.{{$p.Name}}" |
| {{- if $p.RequireNonZero}} required{{end}}> |
| <option></option> |
| {{range $_, $name := $p.HTMLSelectOptions}} |
| <option value="{{$name}}">{{$name}}</option> |
| {{end}} |
| </select> |
| </div> |
| {{else if or (eq $p.Type.String "string") (eq $p.Type.String "task.Date")}} |
| <div class="NewWorkflow-parameter NewWorkflow-parameter--{{$p.Type.String}}"> |
| <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> |
| <input |
| id="workflow.params.{{$p.Name}}" |
| name="workflow.params.{{$p.Name}}" |
| {{- with $p.HTMLInputType}}type="{{.}}"{{end}} |
| {{- if $p.RequireNonZero}}required{{end}} |
| placeholder="{{$p.Example}}" /> |
| </div> |
| {{else if eq $p.Type.String "[]string"}} |
| <div class="NewWorkflow-parameter NewWorkflow-parameter--slice"> |
| <div class="NewWorkflow-parameterRow"> |
| <label title="{{$p.Doc}}">{{$p.Name}}</label> |
| <button |
| class="NewWorkflow-addSliceRowButton" |
| title="Increment the slice length." |
| type="button" |
| data-ParamName="{{$p.Name}}" |
| data-Element="{{$p.HTMLElement}}" |
| data-InputType="{{$p.HTMLInputType}}" |
| data-ParamExample="{{$p.Example}}" |
| >+ |
| </button> |
| </div> |
| </div> |
| {{else}} |
| <div class="NewWorkflow-parameter"> |
| <label title="{{$p.Doc}}">{{$p.Name}}</label> |
| <span>unsupported parameter type "{{$p.ParameterType}}"</span> |
| </div> |
| {{end}} |
| {{end}} |
| <div class="NewWorkflow-workflowCreate"> |
| <input |
| name="workflow.create" |
| type="submit" |
| value="Create" |
| onclick="return this.form.reportValidity() && confirm('This will create and immediately run this workflow.\n\nReady to proceed?')" /> |
| </div> |
| </form> |
| {{end}} |
| </section> |
| {{end}} |