<script src="static/lib/Blob.js"></script>
<script src="static/lib/FileSaver.js"></script>
<script src="static/lib/jquery.base64.min.js"></script>

<div class="loading" ng-show="loading">
  <i class="icon-spinner icon-spin icon-3x"></i>
</div>

<div class="container" ng-show="!loading && (!repo || !permissions)">
  No repository found
</div>

<div class="container repo repo-admin" ng-show="!loading && repo && permissions">
  <div class="header">
    <a href="{{ '/repository/' + repo.namespace + '/' + repo.name }}" class="back"><i class="icon-chevron-left"></i></a>
    <h3>
      <span class="repo-circle no-background" repo="repo"></span> <span style="color: #aaa;"> {{repo.namespace}}</span> <span style="color: #ccc">/</span> {{repo.name}}
    </h3>
   </div>
  
  <!-- User Access Permissions -->
  <div class="panel panel-default">
    <div class="panel-heading">User Access Permissions

      <i class="info-icon icon-info-sign" data-placement="left" data-content="Allow any number of users to read, write or administer this repository"></i>
    </div>
    <div class="panel-body">
        
      <table class="permissions">
        <thead>
          <tr>
            <td>User</td>
            <td>Permissions</td>
            <td></td>
          </tr>
        </thead>
        
        <tr ng-repeat="(username, permission) in permissions">
          <td class="user">
            <i class="icon-user"></i> 
            <span>{{username}}</span>
          </td>
          <td class="user-permissions">
            <div class="btn-group btn-group-sm">
              <button type="button" class="btn btn-default" ng-click="setRole(username, 'read')" ng-class="{read: 'active', write: '', admin: ''}[permission.role]">Read only</button>
              <button type="button" class="btn btn-default" ng-click="setRole(username, 'write')" ng-class="{read: '', write: 'active', admin: ''}[permission.role]">Write</button>
              <button type="button" class="btn btn-default" ng-click="setRole(username, 'admin')" ng-class="{read: '', write: '', admin: 'active'}[permission.role]">Admin</button>
            </div>
          </td>
          <td>
            <span class="delete-ui" tabindex="0" title="Delete Permission">
              <span class="delete-ui-button" ng-click="deleteRole(username)"><button class="btn btn-danger">Delete</button></span>
              <i class="icon-remove"></i>
            </span>
          </td>
        </tr>

        <tr>
          <td colspan="2">
            <input id="userSearch" class="form-control" placeholder="Add new user...">
          </td>
        </tr>
      </table>
    </div>
  </div>

  <!-- Token Permissions -->
  <div class="panel panel-default">
    <div class="panel-heading">Access Token Permissions

      <i class="info-icon icon-info-sign" data-placement="left" data-content="Grant permissions to this repository by creating unique tokens that can be used without entering account passwords<br><br>To use in docker:<br><dl class='dl-horizontal'><dt>Username</dt><dd>$token</dd><dt>Password</dt><dd>(token value)</dd><dt>Email</dt><dd>(any value)</dd></dl>"></i>
    </div>
    <div class="panel-body">
      <form name="createTokenForm" ng-submit="createToken()">
        <table class="permissions">
          <thead>
            <tr>
              <td>Token Description</td>
              <td>Permissions</td>
              <td></td>
            </tr>
          </thead>
          
          <tr ng-repeat="(code, token) in tokens">
            <td class="user token">
              <i class="icon-key"></i> 
              <a ng-click="showToken(token.code)">{{ token.friendlyName }}</a>
            </td>
            <td class="user-permissions">
              <div class="btn-group btn-group-sm">
                <button type="button" class="btn btn-default" ng-click="changeTokenAccess(token.code, 'read')" ng-class="{read: 'active', write: ''}[token.role]">Read only</button>
                <button type="button" class="btn btn-default" ng-click="changeTokenAccess(token.code, 'write')" ng-class="{read: '', write: 'active'}[token.role]">Write</button>
              </div>
            </td>
            <td>
              <span class="delete-ui" tabindex="0" title="Delete Token">
                <span class="delete-ui-button" ng-click="deleteToken(token.code)"><button class="btn btn-danger" type="button">Delete</button></span>
                <i class="icon-remove"></i>
              </span>
            </td>
          </tr>

          <tr>
              <td>
                <input type="text" class="form-control" placeholder="New token description" ng-model="newToken.friendlyName"required>
              </td>
              <td>
                <button type="submit" ng-disabled="createTokenForm.$invalid" class="btn btn-sm btn-default">Create</button>
              </td>
          </tr>
        </table>
      </form>
    </div>
  </div>

  <!-- Public/Private -->
  <div class="panel panel-default">
    <div class="panel-heading">Repository Settings</div>
    <div class="panel-body">
    <div class="repo-access-state" ng-show="!repo.is_public">
    <div class="state-icon"><i class="icon-lock"></i></div>

        This repository is currently <b>private</b>. Only users on the above access list may view and interact with it.

        <div class="change-access">
          <button class="btn btn-danger" ng-click="askChangeAccess('public')">Make Public</button>
        </div>
      </div>

      <div class="repo-access-state" ng-show="repo.is_public">
        <div class="state-icon"><i class="icon-unlock-alt"></i></div>

        This repository is currently <b>public</b> and is visible to all users, and may be pulled by all users.

        <div class="change-access">
          <button class="btn btn-danger" ng-click="askChangeAccess('private')">Make Private</button>
        </div>
      </div>
    </div>
  </div>
  <br>

  <!-- Delete Repo -->
  <div class="panel panel-default">
    <div class="panel-heading">Delete Repository</div>
    <div class="panel-body">
      <div class="repo-delete">
        <div class="alert alert-danger">Deleting a repository <b>cannot be undone</b>. Here be dragons!</div>
        <button class="btn btn-danger" ng-click="askDelete()">Delete Repository</button>
      </div>
    </div>
  </div>

 <!-- Modal message dialog -->
  <div class="modal fade" id="cannotchangeModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Cannot change</h4>
        </div>
        <div class="modal-body">
          The selected action could not be performed because you do not have that authority.
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->

  <!-- Modal message dialog -->
  <div class="modal fade" id="tokenmodal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title"><i class="icon-key"></i> {{ shownToken.friendlyName }}</h4>
        </div>
        <div class="modal-body token-dialog-body">
          <div class="alert alert-info">The docker <u>username</u> is <b>$token</b> and the <u>password</u> is the token. You may use any value for email.</div>
          <div class="well well-sm">
            <input id="token-view" class="token-view" type="text" value="{{ shownToken.code }}" onClick="this.select();" readonly>
          </div>
        </div>
        <div class="modal-footer">
           <span class="download-cfg" ng-show="isDownloadSupported()">
             <i class="icon-download"></i>
             <a href="javascript:void(0)" ng-click="downloadCfg(shownToken)">Download dockercfg file</a>
           </span>
           <div id="clipboardCopied" style="display: none">
                   Copied to clipboard
           </div>
          <button id="copyClipboard" type="button" class="btn btn-primary" data-clipboard-target="token-view">Copy to clipboard</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
  

 <!-- Modal message dialog -->
  <div class="modal fade" id="makepublicModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Make Repository Public</h4>
        </div>
        <div class="modal-body">
          <div class="alert alert-warning">
            Warning: This will allow <b>anyone</b> to pull from this repository
          </div>
          Are you sure you want to make this repository public?
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-danger" ng-click="changeAccess('public')">Make Public</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
  

  <!-- Modal message dialog -->
  <div class="modal fade" id="makeprivateModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Make Repository Private</h4>
        </div>
        <div class="modal-body">
          <div class="alert alert-warning">
            Warning: Only users on the permissions list will be able to access this repository.
          </div>
      	  Are you sure you want to make this repository private?
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-success" ng-click="changeAccess('private')">Make Private</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
  

  <!-- Modal message dialog -->
  <div class="modal fade" id="onlyadminModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Cannot change permissions</h4>
        </div>
        <div class="modal-body">
          The selected permissions could not be changed because the user is the only <b>admin</b> on the repo.
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
  

  <!-- Modal message dialog -->
  <div class="modal fade" id="confirmdeleteModal">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
          <h4 class="modal-title">Delete Repository?</h4>
        </div>
        <div class="modal-body">
          Are you <b>absolutely, positively</b> sure you would like to delete this repository? This <b>cannot be undone</b>.
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-danger" ng-click="deleteRepo()">Delete Repository</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->

</div>