<!DOCTYPE html>
<html dir="ltr" lang="en-US">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>GitHub plugin for Gerrit Code Review - Pull Requests replication</title>
    #include ("static/styles.html")
    #include ("static/scripts.html")
  </head>
  <body>
    <!-- div.header start -->
    <div class="header">
      <div>
        <div class="center">
          #include ("static/header.html")
          <div class="page-title">
            <div>
              <h2>
                <a href="account.html">Account </a> &gt; <a href="repositories.html">Repositories Replication</a> &gt; Opened Pull Requests
              </h2>
              <div class="right">
                <button type="button" id="cancel">
                  <span class="button"><span>Cancel</span></span>
                </button>
                <button type="submit" id="submit" disabled="disabled">
                  <span class="button green"><span>Import selected</span></span>
                </button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- div.header end -->

    <!--div.container start -->
    <div class="container">
      <div class="center">
        <form id="pullrequests" action="pullrequests-next.gh" method="get" class="signupform">
          <div id="repositories">
            <ul class="pullrequest-repos">
              <li>
                <select id="organisation" name="organisation">
                  <option selected="selected">$myself.login</option>
                  #foreach( $organisation in $myself.allOrganizations )
                    #if ( $request.getParameter("organisation") == $organisation.login )
                      <option selected="selected">$organisation.login</option>
                    #else
                      <option>$organisation.login</option>
                    #end
                  #end
                </select>
              </li>
              <li class="filter" style="display: none;">
                <input type="text" id="repo-filter" class="filter" name="filter" placeholder="Filter repositories" />
              </li>
            </ul>
            <ul class="repo-list">
            </ul>
          </div>
          <div id="pullrequests">
            <div class="loading">
              <p>Loading Pull Requests from GitHub ...</p>
            </div>
            <table class="table simple-table responsive-table responsive-table-on" style="display: none;" id="pull-requests">
              <thead>
                <tr>
                  <th scope="col" ><input type="checkbox" name="checkall" id="checkall" value="1" checked="checked"></th>
                  <th scope="col" >Id</th>
                  <th scope="col" >Repository / Pull request subject / Author</th>
                  <th scope="col" >Timestamp</th>
                  <th scope="col" >
                    <select id="importtype">
                      <option selected="selected">Commits</option>
                    </select>
                  </th>
                </tr>
              </thead>
              <tbody>
              </tbody>
            </table>
          </div>
        </form>
      </div>
    </div>
    <!--div.container end -->

    <script type='text/javascript' src='js/pullrequests.js'></script>

    #include ("static/footer.html")
  </body>
</html>
