<html>
<head>
  <title>Find Build</title>
  <meta name="description" content="Find the first build containing a changelist">
  <link rel="stylesheet" href="/static/css/base.css">
  <link rel="stylesheet" href="/static/css/changelog.css">
</head>
<body>
  <div class="navbar">
    <p class="navbar-title">Container Optimized OS</p>
    <a class="signout" href="/signout/?redirect=/findbuild/">Sign Out</a>
  </div>
  <div class="sidenav">
    <a href="/">Home</a>
    <a href="/changelog/">Changelog</a>
    <a class="active" href="/findbuild/">Find Build</a>
    <a href="/readme/">Readme</a>
  </div>
  <div class="main">
    <h1>Find Build with CL</h1>
    <p class="feature-info">
      Find the first Container-Optimized OS build containing a desired
      changelist.<br>
      Example input: <b>3280</b> or
      <b>18d4ce48c1dc2f530120f85973fec348367f78a0</b>
    </p>
    <p class="feature-info">
      <b>Note:</b> It is possible that a COS build was not created using the
      build number returned. However, any COS build with build number greater
      than the returned build number should have the desired change present.
    </p>
    <p class="feature-info">
      <b>Note:</b> Commits must be submitted through Gerrit to be tracked by
      this tool. Commits directly submitted to a Git repository are not
      supported.
    </p>
    <form class="changelog-form" action="/findbuild">
      <div class="text">
        {{if (ne .CL "")}}
          <input type="text" class="cl-input" name="cl" placeholder="CL-Number or Commit-SHA" value={{.CL}} required>
        {{else}}
          <input type="text" class="cl-input" name="cl" placeholder="CL-Number or Commit-SHA" required>
        {{end}}
        <input class="submit" type="submit" value="Submit"><br>
      </div>
      <div class="radio">
        {{if .Internal}}
          <label>
            <input type="radio" class="internal" name="internal" value="true" checked>
            Internal
          </label>
          <label>
            <input type="radio" class="external" name="internal" value="false">
            External
          </label>
        {{else}}
          <label>
            <input type="radio" class="internal" name="internal" value="true">
            Internal
          </label>
          <label>
            <input type="radio" class="external" name="internal" value="false" checked>
            External
          </label>
        {{end}}
      </div>
    </form>
    <div class="locate-build-result">
      {{if (ne .BuildNum "")}}
        <p>
          <a href={{.GerritLink}} target="_blank"> CL {{.CLNum}}</a>
          landed in build <b>{{.BuildNum}}</b>.
        </p>
      {{end}}
    </div>
  </div>
</body>
</html>