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