<!-- 
 Copyright (C) 2018 GerritForge Ltd

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
<!DOCTYPE html>
<html ng-app="Account">

<head>
<link rel="stylesheet" href="css/account.css">
<script src="js/angular.min.js"></script>
<script src="js/account.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/account.css">
</head>

<body ng-controller="AccountDeleteController">

  <nav class="navbar navbar-light" style="background-color: #ffe6e8">
    <a class="navbar-brand" href="/">&lt; Back to Gerrit</a> <span
      class="navbar-text">Personal Information</span>
  </nav>

  <div class="container-fluid">

    <div class="jumbotron">
      <h1 class="display-5">Your Personal Information</h1>
      <p class="lead">This is the full set of personal information
        held in Gerrit Code Review and associated to your account and
        shown in full detail to you for maximum transparency.</p>
      <p>You have full control over it. You can amend or remove personal information,
         or even completely wipe out your Gerrit Account.</p>
      <hr class="my-4">
      <form>
        <div class="form-group">
          <label for="username">Username</label> <input type="text"
            class="form-control" id="username"
            aria-describedby="emailHelp" value="{{account.username}}"
            readonly="readonly">
        </div>
        <div class="form-group">
          <label for="fullname">Full name</label> <input type="text"
            class="form-control" id="fullname"
            value="{{account.fullname}}" readonly="readonly">
        </div>
        <div class="form-group">
          <label for="emails">E-mails addresses</label> <select multiple
            class="form-control" id="emails">
            <option ng-repeat="email in account.emails">{{email}}</option>
          </select>
        </div>
      </form>
      <button type="button" class="btn btn-primary  btn-danger"
        data-toggle="modal" data-target="#confirmDeleteModal">Delete
        Account</button>

      <div class="modal fade" tabindex="-1" role="dialog"
        id="confirmDeleteModal" ng-blur="backToGerrit()">
        <div class="modal-dialog" role="document">
          <div class="modal-content">
            <div class="modal-header">
              <h5 class="modal-title">Confirm Account Removal</h5>
              <button type="button" class="close" data-dismiss="modal"
                aria-label="Close">
                <span aria-hidden="true">&times;</span>
              </button>
            </div>
            <div class="modal-body">
              <p>
                You are about to remove all your personal information
                from Gerrit Code Review and deactivate your account. <strong>This
                  operation CANNOT BE UNDONE</strong> and your account and the
                associated personal information will be completely
                wiped out. Any attempt to sign-in to GerritHub with your old identity
                will be denied to prevent anybody else from impersonate your removed
                user id.
              </p>
              <p>You <b>WOULD NOT BE ABLE TO SIGN-UP AGAIN</b>, unless you rename or create
                 a new GitHub account and thus creating a completely new GerritHub identity.</p>
              <hr />
              <p>If you do wish to continue, please enter again your
                full name below to confirm that you have <p>READ AND UNERSTOOD</p>
                the implications of this operation and you would
                like to proceed.</p>
              <form>
                <div class="form-group">
                  <label for="fullname" class="col-form-label">Full
                    name:</label> <input type="text" class="form-control"
                    id="fullname" aria-describedby="emailHelp"
                    required="required"
                    placeholder="Enter your full name to confirm your action"
                    ng-model="fullName">
                </div>
              </form>
              <div class="alert alert-warning" role="alert" ng-if="alert">{{alert}}</div>
              <div class="alert alert-primary" role="alert" ng-if="deleted">{{deleted}}</div>
            </div>
            <div class="modal-footer" ng-if="!deleted">
              <button type="button" class="btn btn-secondary"
                data-dismiss="modal" >Cancel</button>
              <button type="button" class="btn btn-primary btn-danger"
                ng-click="deleteAccount()">YES, DELETE MY
                ACCOUNT</button>
              </form>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
  <script src="js/jquery.min.js"></script>
  <!-- Include all compiled plugins (below), or include individual files as needed -->
  <script src="js/bootstrap.min.js"></script>

</body>
</html>
