<!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 - Repositories 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; Repositories Replication </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>Accept &gt;</span></span>
                </button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!--div.header end -->

    <!--div.container start -->
    <div class="container">
      <div class="center">
        <form id="repositories" action="repositories-next.gh" method="post" class="signupform">
          <h5>Select GitHub repositories to clone and replicate</h5>
          <ul class="repo-sync-header">
            <li>
              <input class="keycheckbox" type="checkbox" id="selectallcheckbox" checked="checked"/>
              <select id="organisation" name="organisation">
                <option selected="selected">$myself.login</option>
                #foreach( $organisation in $myself.allOrganizations )
                  <option>$organisation.login</option>
                #end
              </select>
              <label class="repository"> / Repository name</label>
              <label class="rows">Rows</label>
              <select id="numitems">
                <option>10</option>
                <option>50</option>
                <option>100</option>
              </select>
              <input type="text" id="filter" class="filter" name="filter" placeholder="Filter by name" />
            </li>
          </ul>
          <div class="loading">
            <p>Loading list of GitHub repositories ...</p>
          </div>
          <ul class="repo-sync">
          </ul>
          <script type="text/template" id="repo-sync-template">
            <li>
              <input class="keycheckbox" type="checkbox" name="repo_<%= index %>" />
              <span class="private_<%= repo.private %>"><%= repo.private ? "PRIVATE":"PUBLIC" %></span>
              <label class="repository"><%= repo.organisation %> / <b><%= repo.name %></b></label>
              <input type="hidden" name="repo_<%= index %>_organisation" value="<%= repo.organisation %>" />
              <input type="hidden" class="name" name="repo_<%= index %>_repository" value="<%= repo.name %>" />
              <input type="hidden" name="repo_<%= index %>_description" value="<%= repo.description %>" />
              <span id="status_<%= index %>" class="status" style="visibility: hidden;"></span>
              <label id="repo_<%= index %>" class="synch-status"></label>
            </li>
          </script>
        </form>
      </div>
    </div>
    <!-- div.container end -->

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

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