<!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 - Account review</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>Account profile</h2>
              <div class="right">
                <button type="button" onclick="window.location='/'" id="cancel">
                  <span class="button"><span>Cancel</span></span>
                </button>
                <button type="submit" onclick="document.forms[0].submit()">
                  <span class="button green"><span>Next &gt;</span></span>
                </button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- div.header end -->

    <!-- div.container start -->
    <div class="container">
      <div class="center">
        <form class="signupform" method="post" action="account.gh">
          <h5>GitHub account details</h5>
          <ul>
            <li>
              <label for="username">Username:</label>
              <input maxlength="50" id="username" name="username" type="text"
                value="$!myself.login" readonly="readonly" />
            </li>

            <li>
              <label for="lastName">Full name:</label>
              <input maxlength="50" id="fullname" name="fullname" type="text"
                value="$!myself.name" readonly="readonly" />
            </li>

            <li>
              <label for="eMail">e-Mail:</label>
              <select id="email" name="email">
                #foreach ( $email in $myself.emails2 )
                  #if ( $email.email == $!myself.email || $email.primary )
                    <option selected="selected">$email.email</option>
                  #else
                    <option>$email.email</option>
                  #end
                #end
              </select>
            </li>
          </ul>

          <h5>Import GitHub SSH Public Keys</h5>
          <ul>
            #foreach ( $key in $myself.publicVerifiedKeys )
              #if ( $key.key.length() > 45 )
                <li>
                  <label for="$key.title" style="font-weight: bold;">$key.title :</label>
                  #set ( $trailStart = $key.key.length() - 10 )
                  <textarea class="keyvalue" rows="1" cols="80" readonly="readonly">$key.key.substring(1,35) ... $key.key.substring($trailStart).trim()</textarea>
                  <input class="keycheckbox" type="checkbox" name="key_check_$key.id" checked="checked" />
                </li>
              #end
            #end
          </ul>
        </form>
      </div>
    </div>
    <!--div.container end -->

    #include ("static/footer.html")

    <script type='text/javascript' src='js/jquery/jquery.form.js?ver=2.02m'></script>
  </body>
</html>
