<div class="setup-trigger-directive-element">
  <!-- Modal message dialog -->
  <div class="modal fade" id="setupTriggerModal">
    <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">Setup new build trigger</h4>
        </div>
        <div class="modal-body loading" ng-show="currentView == 'activating'">
          <span class="cor-loader-inline"></span> Setting up trigger...
        </div>
        <div class="modal-body" ng-show="currentView != 'activating'">
          <!-- Trigger-specific setup -->
          <div class="trigger-description-element trigger-option-section" ng-switch on="trigger.service">
            <div ng-switch-when="custom-git">
              <div class="trigger-setup-custom" repository="repository" trigger="trigger"
                   next-step-counter="nextStepCounter" current-step-valid="state.stepValid"
                   analyze="checkAnalyze(isValid)"></div>
            </div>
            <div ng-switch-default>
              <div class="trigger-setup-githost" repository="repository" trigger="trigger"
                   kind="{{ trigger.service }}"
                   next-step-counter="nextStepCounter" current-step-valid="state.stepValid"
                   analyze="checkAnalyze(isValid)"></div>
            </div>
          </div>

          <!-- Loading pull information -->
          <div ng-show="currentView == 'analyzing'" class="loading">
            <span class="cor-loader-inline"></span> Checking pull credential requirements...
          </div>

          <!-- Pull information -->
          <div class="trigger-option-section" ng-show="currentView == 'analyzed'">

            <!-- Messaging -->
            <div ng-switch on="pullInfo.analysis.status">
              <div ng-switch-when="error" class="alert alert-danger">{{ pullInfo.analysis.message }}</div>
              <div ng-switch-when="warning" class="alert alert-warning">{{ pullInfo.analysis.message }}</div>
              <div ng-switch-when="notimplemented" class="alert alert-warning">
                <p>For {{ TriggerService.getTitle(trigger.service) }} triggers, we are unable to determine dependencies automatically.</p>
                <p>If the git repository being built depends on a private base image, you must manually select a robot account with the proper permissions.</p>
              </div>
            </div>
            <div class="dockerfile-found" ng-if="pullInfo.analysis.is_public === false">
              <div class="dockerfile-found-content">
                A robot account is <strong>required</strong> for this build trigger because the
                Dockerfile found
                pulls from the private <span class="registry-name"></span> repository

                <a href="/repository/{{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}" target="_blank">
                  {{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}
                </a>
              </div>
            </div>

            <div style="margin-bottom: 12px">
              Please select the credentials to use when pulling the base image:
            </div>
            <div ng-if="!isNamespaceAdmin(repository.namespace)" style="color: #aaa;">
              <strong>Note:</strong> In order to set pull credentials for a build trigger, you must be an
              Administrator of the namespace <strong>{{ repository.namespace }}</strong>
            </div>

            <!-- Namespace admin -->
            <div ng-show="isNamespaceAdmin(repository.namespace)">
              <!-- Select credentials -->
              <div class="btn-group btn-group-sm">
                <button type="button" class="btn btn-default"
                        ng-class="pullInfo.is_public ? 'active btn-info' : ''"
                        ng-click="pullInfo.is_public = true">
                  None
                </button>
                <button type="button" class="btn btn-default"
                        ng-class="pullInfo.is_public ? '' : 'active btn-info'"
                        ng-click="pullInfo.is_public = false">
                  <i class="fa ci-robot"></i>
                  Robot account
                </button>
              </div>

              <!-- Robot Select -->
              <div ng-show="!pullInfo.is_public" style="margin-top: 10px">
                <div class="entity-search" namespace="repository.namespace"
                     placeholder="'Select robot account for pulling...'"
                     current-entity="pullInfo.pull_entity"
                     allowed-entities="['robot']"></div>

                <div ng-if="pullInfo.analysis.robots.length" style="margin-top: 20px; margin-bottom: 0px;">
                  <strong>Note</strong>: We've automatically selected robot account
                  <span class="entity-reference" entity="pullInfo.analysis.robots[0]"></span>,
                  since it has access to the private repository.
                </div>
                <div ng-if="!pullInfo.analysis.robots.length && pullInfo.analysis.name"
                     style="margin-top: 20px; margin-bottom: 0px;">
                  <strong>Note</strong>: No robot account currently has access to the private repository. Please create one and/or assign access in the
                  <a href="/repository/{{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}/admin" target="_blank">
                    repository's admin panel.
                  </a>
                </div>
              </div>
            </div>

          </div>

          <div class="trigger-option-section" ng-show="currentView == 'postActivation'">
            <div ng-if="trigger.config.credentials" class="credentials" trigger="trigger"></div>
            <div ng-if="!trigger.config.credentials">
              <div class="alert alert-success">The trigger has been successfully created.</div>
            </div>
          </div>

        </div>
        <div class="modal-footer" ng-show="currentView != 'activating'">
          <button type="button" class="btn btn-primary" ng-disabled="!state.stepValid"
                  ng-click="nextStepCounter = nextStepCounter + 1"
                  ng-show="currentView == 'config'">Next</button>

          <button type="button" class="btn btn-primary"
                  ng-disabled="!trigger.$ready || (!pullInfo['is_public'] && !pullInfo['pull_entity'])"
                  ng-click="activate()"
                  ng-show="currentView == 'analyzed'">Create Trigger</button>

          <button type="button" class="btn btn-success" ng-click="runTriggerNow()"
                  ng-if="currentView == 'postActivation'">Run Trigger Now</button>

          <button type="button" class="btn btn-default" data-dismiss="modal">{{ currentView == 'postActivation' ? 'Done' : 'Cancel' }}</button>
        </div>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
</div>
