golang.org/x/build@v0.0.0-20240506185731-218518f32b70/internal/relui/templates/new_workflow.html (about) 1 <!-- 2 Copyright 2020 The Go Authors. All rights reserved. 3 Use of this source code is governed by a BSD-style 4 license that can be found in the LICENSE file. 5 --> 6 {{template "layout" .}} 7 8 {{define "content"}} 9 {{- /*gotype: golang.org/x/build/internal/relui.newWorkflowResponse*/ -}} 10 {{$response := .}} 11 <section class="NewWorkflow"> 12 <h2>New Go Release</h2> 13 <form class="NewWorkflow-workflowSelect" action="{{baseLink "/new_workflow"}}" method="get"> 14 <div class="NewWorkflow-parameter"> 15 <label for="workflow.name">Workflow:</label> 16 <select id="workflow.name" name="workflow.name" onchange="this.form.submit()"> 17 <option value="">Select Workflow</option> 18 {{range $name, $definition := .Definitions}} 19 <option value="{{$name}}" {{if eq $name $.Name}}selected="selected"{{end}}> 20 {{$name}} 21 </option> 22 {{end}} 23 </select> 24 </div> 25 <noscript> 26 <input name="workflow.new" type="submit" value="New" /> 27 </noscript> 28 </form> 29 {{if .Selected}} 30 <form action="{{baseLink "/workflows"}}" method="post"> 31 <input type="hidden" id="workflow.name" name="workflow.name" value="{{$.Name}}" /> 32 <div class="NewWorkflow-parameter"> 33 <div class="NewWorkflow-tabContainer"> 34 {{range $sched := .ScheduleTypes}} 35 <input class="NewWorkflow-tabControl" type="radio" id="workflow.schedule.{{$sched.ElementID}}" name="workflow.schedule" value="{{$sched}}" {{if eq $sched $.Schedule}}checked{{end}}> 36 {{end}} 37 <ul class="NewWorkflow-tabHeader"> 38 {{range $sched := .ScheduleTypes}} 39 <li class="NewWorkflow-tab"><label class="NewWorkflow-tabLabel" for="workflow.schedule.{{$sched.ElementID}}">{{$sched}}</label></li> 40 {{end}} 41 </ul> 42 {{range $sched := .ScheduleTypes}} 43 {{ $input := $sched.FormField }} 44 <div class="NewWorkflow-tabContent"> 45 {{if eq $input ""}} 46 <div class="NewWorkflow-parameter"> 47 Run workflow once immediately. 48 </div> 49 {{else if eq $input "datetime-local"}} 50 <div class="NewWorkflow-parameter"> 51 <label for="workflow.schedule.datetime">Run Once (UTC):</label> 52 <input type="datetime-local" id="workflow.schedule.datetime" name="workflow.schedule.datetime" min="{{$response.ScheduleMinTime}}" value="{{$response.ScheduleMinTime}}"/> 53 </div> 54 {{else if eq $input "duration"}} 55 <div class="NewWorkflow-parameter"> 56 <label for="workflow.schedule.interval">Run every N minutes:</label> 57 <input type="number" id="workflow.schedule.interval" name="workflow.schedule.interval" placeholder="5" min="0"/> 58 </div> 59 {{else if eq $input "cron"}} 60 <div class="NewWorkflow-parameter"> 61 <label for="workflow.schedule.cron">Run on a cron schedule (minute hour day-of-month month day-of-week):</label> 62 <input type="text" id="workflow.schedule.cron" name="workflow.schedule.cron" placeholder="* * * * *" title="Valid Cron-syntax string" 63 pattern="(\S+ \S+ \S+ \S+ \S+ *)|@(hourly|daily|weekly|monthly|yearly|annually|midnight)"/> 64 </div> 65 {{else}} 66 <div class="NewWorkflow-parameter"> 67 Unknown form field for {{$sched}}. 68 </div> 69 {{end}} 70 </div> 71 {{end}} 72 </div> 73 </div> 74 {{range $_, $p := .Selected.Parameters}} 75 {{if eq $p.HTMLElement "select"}} 76 <div class="NewWorkflow-parameter NewWorkflow-parameter--select"> 77 <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> 78 <select id="workflow.params.{{$p.Name}}" name="workflow.params.{{$p.Name}}" 79 {{- if $p.RequireNonZero}} required{{end}}> 80 <option></option> 81 {{range $_, $name := $p.HTMLSelectOptions}} 82 <option value="{{$name}}">{{$name}}</option> 83 {{end}} 84 </select> 85 </div> 86 {{else if eq $p.Type.String "[]string"}} 87 <div class="NewWorkflow-parameter NewWorkflow-parameter--slice"> 88 <div class="NewWorkflow-parameterRow"> 89 <label title="{{$p.Doc}}">{{$p.Name}}</label> 90 <button 91 class="NewWorkflow-addSliceRowButton" 92 title="Increment the slice length." 93 type="button" 94 data-ParamName="{{$p.Name}}" 95 data-Element="{{$p.HTMLElement}}" 96 data-InputType="{{$p.HTMLInputType}}" 97 data-ParamExample="{{$p.Example}}" 98 >+ 99 </button> 100 </div> 101 </div> 102 {{else if eq $p.HTMLElement "textarea"}} 103 <div class="NewWorkflow-parameter NewWorkflow-parameter--{{$p.Type.String}}"> 104 <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> 105 <textarea 106 id="workflow.params.{{$p.Name}}" 107 name="workflow.params.{{$p.Name}}" 108 placeholder="{{$p.Example}}"></textarea> 109 </div> 110 {{else if or (eq $p.Type.String "string") (eq $p.Type.String "task.Date")}} 111 <div class="NewWorkflow-parameter NewWorkflow-parameter--{{$p.Type.String}}"> 112 <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> 113 <input 114 id="workflow.params.{{$p.Name}}" 115 name="workflow.params.{{$p.Name}}" 116 {{- with $p.HTMLInputType}}type="{{.}}"{{end}} 117 {{- if $p.RequireNonZero}}required{{end}} 118 placeholder="{{$p.Example}}" /> 119 </div> 120 {{else if eq $p.Type.String "bool"}} 121 <div class="NewWorkflow-parameter NewWorkflow-parameter--bool"> 122 <label for="workflow.params.{{$p.Name}}" title="{{$p.Doc}}">{{$p.Name}}</label> 123 <input 124 id="workflow.params.{{$p.Name}}" 125 name="workflow.params.{{$p.Name}}" 126 {{- with $p.HTMLInputType}}type="{{.}}"{{end}} 127 {{- if $p.RequireNonZero}}required{{end}} /> 128 </div> 129 {{else}} 130 <div class="NewWorkflow-parameter"> 131 <label title="{{$p.Doc}}">{{$p.Name}}</label> 132 <span>unsupported parameter type "{{$p.ParameterType}}"</span> 133 </div> 134 {{end}} 135 {{end}} 136 <div class="NewWorkflow-workflowCreate"> 137 <input 138 name="workflow.create" 139 type="submit" 140 value="Create" 141 onclick="return this.form.reportValidity() && confirm('This will create and immediately run this workflow.\n\nReady to proceed?')" /> 142 </div> 143 </form> 144 {{end}} 145 </section> 146 {{end}}