<div class="container" ng-show="deleting"><div class="quay-spinner"></div></div>
<div class="resource-view" resource="repository" error-message="'No repository found'"></div>
<div class="container repo repo-admin" ng-show="accessDenied">
  You do not have permission to view this page
</div>
<div class="container repo repo-admin" ng-show="repo && !deleting">
  <div class="header row">
    <a href="{{ '/repository/' + repo.namespace + '/' + repo.name }}" class="back"><i class="fa fa-chevron-left"></i></a>
    <h3>
      <span class="repo-circle no-background" repo="repo"></span>
      <span class="repo-breadcrumb" repo="repo" subsection-icon="'fa-cog'"
            subsection="'Admin'"></span>
    </h3>
  </div>

  <div class="row">
    <!-- Side tabs -->
    <div class="col-md-2">
      <ul class="nav nav-pills nav-stacked">
        <li class="active"><a href="javascript:void(0)" data-toggle="tab" data-target="#permissions">Permissions</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#trigger" ng-click="loadTriggers()"
               quay-show="Features.BUILD_SUPPORT">Build Triggers</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#badge">Status Badge</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#notification" ng-click="loadNotifications()">Notifications</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#publicprivate">Public/Private</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#delete">Delete</a></li>
        <li><a href="javascript:void(0)" data-toggle="tab" data-target="#logs" ng-click="loadLogs()">Usage Logs</a></li>
      </ul>
    </div>

    <!-- Content -->
    <div class="col-md-10">

      <div class="tab-content">
        <!-- Logs tab -->
        <div id="logs" class="tab-pane">
          <div class="logs-view" repository="repo" makevisible="logsShown"></div>
        </div>

        <!-- Badge tab -->
        <div id="badge" class="tab-pane">
          <div class="panel panel-default">
            <div class="panel-heading">Status Badge
              <i class="info-icon fa fa-info-circle" data-placement="left" data-content="Embeddable widget for displaying the status of the repository"></i>
            </div>
            <div class="panel-body">
              <div class="alert alert-warning" ng-if="!repo.is_public">
                Note: This repository is currently <b>private</b>. Publishing this badge will reveal the status information of your repository (and links may
                not work for unregistered users).
              </div>

              <!-- Status Image -->
              <a ng-href="/repository/{{ repo.namespace }}/{{ repo.name }}" ng-if="repo && repo.name">
                <img ng-src="/repository/{{ repo.namespace }}/{{ repo.name }}/status?token={{ repo.status_token }}" data-title="Docker Repository on Quay.io">
              </a>

              <!-- Embed formats -->
              <table style="margin-top: 20px; width: 600px;">
                <thead>
                  <th style="width: 150px"></th>
                  <th></th>
                </thead>
                <tr>
                  <td>Image (SVG):</td>
                  <td>
                    <div class="copy-box" hovering-message="true" value="getBadgeFormat('svg', repo)"></div>
                  </td>
                </tr>
                <tr>
                  <td>Markdown:</td>
                  <td>
                    <div class="copy-box" hovering-message="true" value="getBadgeFormat('md', repo)"></div>
                  </td>
                </tr>
                <tr>
                  <td>AsciiDoc:</td>
                  <td>
                    <div class="copy-box" hovering-message="true" value="getBadgeFormat('asciidoc', repo)"></div>
                  </td>
                </tr>
              </table>
            </div>
          </div>
        </div>

        <!-- Permissions tab -->
        <div id="permissions" class="tab-pane active">
          <!-- User Access Permissions -->
          <div class="panel panel-default">
            <div class="panel-heading">Access Permissions

              <i class="info-icon fa fa-info-circle" data-placement="left" data-content="Allow any number of users, robot accounts or teams to read, write or administer this repository"></i>
            </div>
            <div class="panel-body">
              <!-- Throbber -->
              <span class="quay-spinner" ng-show="permissions.loading > 0"></span>
              <table class="permissions" ng-show="permissions.loading <= 0">
                <thead>
                  <tr>
                    <td style="min-width: 400px;">User<span ng-show="repo.is_organization">/Team</span>/Robot Account</td>
                    <td>Permissions</td>
                    <td style="width: 95px;"></td>
                  </tr>
                </thead>

                <!-- Team Permissions -->
                <tr ng-repeat="(name, permission) in permissions['team']">
                  <td class="team entity">
                    <span class="entity-reference" namespace="repo.namespace"
                          entity="buildEntityForPermission(name, permission, 'team')">
                    </span>
                  </td>
                  <td class="user-permissions">
                    <span class="role-group" current-role="permission.role" role-changed="setRole(role, name, 'team')" roles="roles"></span>
                  </td>
                  <td>
                    <span class="delete-ui" delete-title="'Delete Permission'" perform-delete="deleteRole(name, 'team')"></span>
                  </td>
                </tr>

                <!-- User Permissions -->
                <tr ng-repeat="(name, permission) in permissions['user']">
                  <td class="{{ 'user entity ' + (permission.is_org_member ? '' : 'outside') }}">
                    <span class="entity-reference" namespace="repo.namespace"
                          entity="buildEntityForPermission(name, permission, 'user')">
                    </span>
                  </td>
                  <td class="user-permissions">
                    <div class="btn-group btn-group-sm">
                      <span class="role-group" current-role="permission.role" role-changed="setRole(role, name, 'user')" roles="roles"></span>
                    </div>
                  </td>
                  <td>
                    <span class="delete-ui" delete-title="'Delete Permission'" perform-delete="deleteRole(name, 'user')"></span>
                  </td>
                </tr>

                <tr>
                  <td id="add-entity-permission" colspan="2" class="admin-search">
                    <span class="entity-search" namespace="repo.namespace"
                          placeholder="'Add a ' + (repo.is_organization ? 'team or ' : '') + 'user...'"
                          entity-selected="addNewPermission(entity)"
                          current-entity="selectedEntity"
                          auto-clear="true"></span>
                  </td>
                </tr>
              </table>
            </div>
          </div>

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

              <i class="info-icon fa fa-info-circle" 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 style="min-width: 400px;">Token Description</td>
                      <td>Permissions</td>
                      <td></td>
                    </tr>
                  </thead>

                  <tr ng-repeat="(code, token) in tokens">
                    <td class="user token">
                      <i class="fa fa-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" delete-title="'Delete Token'" perform-delete="deleteToken(token.code)"></span>
                    </td>
                  </tr>

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

        <!-- Notification tab -->
        <div id="notification" class="tab-pane">
          <div class="panel panel-default">
            <div class="panel-heading">Repository Notifications
              <i class="info-icon fa fa-info-circle" data-placement="left" data-content="Notifications to call to external services (web, email, etc) on repository events"></i>
            </div>

            <div class="panel-body">
              <!-- Notifications list -->
              <div class="resource-view" resource="notificationsResource" error-message="'Could not load notifications'">
                <div class="empty" ng-if="!notifications.length">
                  There are no notifications defined for this repository
                </div>
                <div class="nonempty" ng-show="notifications.length">
                  <div class="external-notification-view" notification="notification" repository="repo"
                       notification-deleted="handleNotificationDeleted(notification)"
                       ng-repeat="notification in notifications"></div>
                </div>
              </div>

              <!-- Right controls -->
              <div class="right-controls">
                <button class="btn btn-success" ng-click="showNewNotificationDialog()">
                  <i class="fa fa-paper-plane"></i>
                  New Notification
                </button>
              </div>
            </div>
          </div>
        </div>

        <!-- Triggers tab -->
        <div id="trigger" class="tab-pane" quay-show="['BUILD_SUPPORT']">
          <div class="panel panel-default">
            <div class="panel-heading">Build Triggers
              <i class="info-icon fa fa-info-circle" data-placement="left" data-content="Triggers from various services (such as GitHub) which tell the repository to be built and updated."></i>
            </div>

            <div class="panel-body">
              <!-- Resource view -->
              <div class="resource-view" resource="triggersResource" error-message="'Could not load build triggers'">
                <div ng-show="!triggers.length">No build triggers defined for this repository</div>

                <table class="permissions" ng-show="triggers.length">
                  <thead>
                    <tr>
                      <td style="width: 562px;">Trigger</td>
                      <td style="width: 104px;"></td>
                    </tr>
                  </thead>

                  <tbody>
                    <tr ng-repeat="trigger in triggers">
                      <td>
                        <div ng-show="!trigger.is_active" style="color: #444;">
                          <span class="quay-spinner" style="vertical-align: middle; margin-right: 6px;"></span>
                          Setting up trigger
                        </div>
                        <div ng-show="trigger.is_active" class="trigger-description" trigger="trigger"></div>
                        <div class="trigger-pull-credentials" ng-if="trigger.is_active && trigger.pull_robot">
                          <span class="context-tooltip" data-title="The credentials used by the builder when pulling images" bs-tooltip>
                            Pull Credentials:
                          </span>
                          <span class="entity-reference" entity="trigger.pull_robot"></span>
                        </div>
                      </td>
                      <td style="white-space: nowrap;" valign="top">
                        <div class="dropdown" style="display: inline-block" ng-visible="trigger.is_active">
                          <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-title="Build History" bs-tooltip="tooltip.title" data-container="body"
                                  ng-click="loadTriggerBuildHistory(trigger)">
                            <i class="fa fa-tasks"></i>
                            <b class="caret"></b>
                          </button>
                          <ul class="dropdown-menu dropdown-menu-right pull-right">
                            <li ng-show="trigger.$loadingHistory" style="text-align: center"><span class="quay-spinner" style="padding: 4px;"></span></li>
                            <li role="presentation" class="dropdown-header" ng-show="!trigger.$loadingHistory && !trigger.$builds.length">No builds have been triggered</li>
                            <li role="presentation" class="dropdown-header" ng-show="!trigger.$loadingHistory && trigger.$builds.length">Build History</li>
                            <li ng-repeat="buildInfo in trigger.$builds">
                              <div class="build-info clickable" ng-click="showBuild(buildInfo)">
                                <span class="build-status" build="buildInfo"></span>
                              </div>
                            </li>
                          </ul>
                        </div>

                        <div class="dropdown" style="display: inline-block">
                          <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" data-title="Trigger Settings" bs-tooltip="tooltip.title" data-container="body">
                            <i class="fa fa-cog"></i>
                            <b class="caret"></b>
                          </button>
                          <ul class="dropdown-menu dropdown-menu-right pull-right">
                            <li><a href="javascript:void(0)" ng-click="setupTrigger(trigger)" ng-show="!trigger.is_active"><i class="fa fa-wrench"></i>Resume Setup</a></li>
                            <li><a href="javascript:void(0)" ng-click="startTrigger(trigger)" ng-show="trigger.is_active"><i class="fa fa-tasks"></i>Build Now</a></li>
                            <li><a href="javascript:void(0)" ng-click="deleteTrigger(trigger)"><i class="fa fa-times"></i>Delete Trigger</a></li>
                          </ul>
                        </div>
                      </td>
                    </tr>
                  </tbody>
                </table>


                <!-- Right controls -->
                <div class="right-controls">
                  <span ng-show="!Features.GITHUB_BUILD" class="pull-left">No build trigger types enabled.</span>
                  <div class="dropdown">
                    <button class="btn btn-primary dropdown-toggle" data-toggle="dropdown" ng-disabled="!Features.GITHUB_BUILD">
                      New Trigger
                      <b class="caret"></b>
                    </button>
                    <ul class="dropdown-menu dropdown-menu-right pull-right">
                      <li>
                        <a href="{{ TriggerService.getRedirectUrl('github', repo.namespace, repo.name) }}">
                          <i class="fa fa-github fa-lg"></i>
                          GitHub <span ng-if="KeyService.isEnterprise('github-trigger')">Enterprise</span> - Repository Push
                        </a>
                      </li>
                    </ul>
                  </div>
                </div>

              </div>
            </div>
          </div>
        </div>

        <!-- Public/private tab -->
        <div id="publicprivate" class="tab-pane">
          <!-- Public/Private -->
          <div class="panel panel-default">
            <div class="panel-body">
              <div class="repo-access-state" ng-show="!repo.is_public">
                <div class="state-icon"><i class="fa fa-lock"></i></div>

                This repository is currently <b>private</b>. Only users on the permissions 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="fa fa-unlock"></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>
        </div>

        <!-- Delete tab -->
        <div id="delete" class="tab-pane">
          <!-- Delete Repo -->
          <div class="panel panel-default">
            <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>
        </div>
      </div>
    </div>
  </div>
</div>
</div>

<!-- Auth dialog -->
<div class="docker-auth-dialog" username="'$token'" token="shownToken.code"
     shown="!!shownToken" counter="shownTokenCounter">
  <i class="fa fa-key"></i> {{ shownToken.friendlyName }}
</div>

<!-- Setup trigger dialog-->
<div class="setup-trigger-dialog" repository="repo"
     trigger="currentSetupTrigger"
     canceled="cancelSetupTrigger(trigger)"
     counter="showTriggerSetupCounter"></div>

<!--  New notification dialog-->
<div class="create-external-notification-dialog" repository="repo"
     counter="showNewNotificationCounter"
     notification-created="handleNotificationCreated(notification)"></div>

<!-- Manual trigger dialog -->
<div class="manual-trigger-build-dialog" repository="repo"
     trigger="currentStartTrigger"
     counter="showManualBuildDialog"
     start-build="startTrigger(trigger, parameters)"></div>

<!-- 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="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 -->


<!-- Modal message dialog -->
<div class="modal fade" id="confirmaddoutsideModal">
  <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">Add User?</h4>
      </div>
      <div class="modal-body">
        The selected user is outside of your organization. Are you sure you want to grant the user access to this repository?
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-primary" ng-click="grantRole()">Yes, I'm sure</button>
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

