148 lines
		
	
	
	
		
			7.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
	
		
			7.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!-- Modal message dialog -->
 | |
| <div class="modal fade" id="createNotificationModal">
 | |
|   <div class="modal-dialog">
 | |
|     <div class="modal-content">
 | |
|       <form id="createForm" name="createForm" ng-submit="createNotification()">
 | |
|         <div class="modal-header">
 | |
|           <button type="button" class="close" data-dismiss="modal" aria-hidden="true" ng-disabled="creating">×</button>
 | |
|           <h4 class="modal-title">
 | |
|             Create Repository Notification
 | |
|           </h4>
 | |
|         </div>
 | |
|         <div class="modal-body">
 | |
|           <!-- Creating spinner -->
 | |
|           <div class="quay-spinner" ng-show="status == 'creating' || status == 'authorizing-email'"></div>
 | |
| 
 | |
|           <!-- Authorize e-mail view -->
 | |
|           <div ng-show="status == 'authorizing-email-sent'">
 | |
|             An e-mail has been sent to <code>{{ currentConfig.email }}</code>. Please click the link contained
 | |
|             in the e-mail.
 | |
|             <br><br>
 | |
|             Waiting... <span class="quay-spinner"></span>
 | |
|           </div>
 | |
| 
 | |
|           <!-- Authorize e-mail view -->
 | |
|           <div ng-show="status == 'unauthorized-email'">
 | |
|             The e-mail address <code>{{ currentConfig.email }}</code> has not been authorized to receive
 | |
|             notifications from this repository. Please click "Send Authorization E-mail" below to start
 | |
|             the authorization process.
 | |
|           </div>
 | |
| 
 | |
|           <!-- Create View -->
 | |
|           <table style="width: 100%" ng-show="status == ''">
 | |
|             <tr>
 | |
|               <td style="width: 120px">When this occurs:</td>
 | |
|               <td>
 | |
|                 <div class="dropdown-select" placeholder="'(Notification Event)'" selected-item="currentEvent.title"
 | |
|                      handle-item-selected="handleEventSelected(datum)" clear-value="clearCounter">
 | |
|                   <!-- Icons -->
 | |
|                   <i class="dropdown-select-icon fa fa-lg" ng-class="currentEvent.icon"></i>
 | |
| 
 | |
|                   <!-- Dropdown menu -->
 | |
|                   <ul class="dropdown-select-menu pull-right" role="menu">
 | |
|                     <li ng-repeat="event in events">
 | |
|                       <a href="javascript:void(0)" ng-click="setEvent(event)">
 | |
|                         <i class="fa fa-lg" ng-class="event.icon"></i> {{ event.title }}
 | |
|                       </a>
 | |
|                     </li>
 | |
|                   </ul>
 | |
|                 </div>
 | |
|               </td>
 | |
|             </tr>
 | |
| 
 | |
|             <tr>
 | |
|               <td>Then issue a:</td>
 | |
|               <td>
 | |
|                 <div class="dropdown-select" placeholder="'(Notification Action)'" selected-item="currentMethod.title"
 | |
|                      handle-item-selected="handleMethodSelected(datum)" clear-value="clearCounter">
 | |
|                   <!-- Icons -->
 | |
|                   <i class="dropdown-select-icon fa fa-lg" ng-class="currentMethod.icon"></i>
 | |
| 
 | |
|                   <!-- Dropdown menu -->
 | |
|                   <ul class="dropdown-select-menu pull-right" role="menu">
 | |
|                     <li ng-repeat="method in methods">
 | |
|                       <a href="javascript:void(0)" ng-click="setMethod(method)">
 | |
|                         <i class="fa fa-lg" ng-class="method.icon"></i> {{ method.title }}
 | |
|                       </a>
 | |
|                     </li>
 | |
|                   </ul>
 | |
|                 </div>
 | |
|               </td>
 | |
|             </tr>
 | |
| 
 | |
|             <tr ng-if="currentMethod.fields.length"><td colspan="2"><hr></td></tr>
 | |
| 
 | |
|             <tr ng-repeat="field in currentMethod.fields">
 | |
|               <td valign="top" style="padding-top: 10px">{{ field.title }}:</td>
 | |
|               <td>
 | |
|                 <div ng-switch on="field.type">
 | |
|                   <span ng-switch-when="email">
 | |
|                     <input type="email" class="form-control" ng-model="currentConfig[field.name]" required>
 | |
|                   </span>
 | |
|                   <input type="url" class="form-control" ng-model="currentConfig[field.name]"  ng-switch-when="url" required>
 | |
|                   <input type="text" class="form-control" ng-model="currentConfig[field.name]"  ng-switch-when="string" required>
 | |
|                   <!-- TODO(jschorr): unify the ability to create an input box with all the usual features -->
 | |
|                   <div ng-switch-when="regex">
 | |
|                     <input type="text" class="form-control" ng-model="currentConfig[field.name]"
 | |
|                            ng-pattern="getPattern(field)"
 | |
|                            placeholder="{{ field.placeholder }}"
 | |
|                            ng-name="field.name"
 | |
|                            id="{{ field.name }}"
 | |
|                            required>
 | |
| 
 | |
|                     <div class="alert alert-warning" style="margin-top: 10px; margin-bottom: 10px"
 | |
|                           ng-if="field.regex_fail_message && hasRegexMismatch(createForm.$error, field.name)">
 | |
|                       <span ng-bind-html="field.regex_fail_message"></span>
 | |
|                     </div>
 | |
|                   </div>
 | |
|                   <div class="entity-search" namespace="repository.namespace"
 | |
|                        placeholder="''"
 | |
|                        current-entity="currentConfig[field.name]"
 | |
|                        ng-model="currentConfig[field.name]"
 | |
|                        allowed-entities="['user', 'team', 'org']"
 | |
|                        ng-switch-when="entity"></div>
 | |
| 
 | |
|                   <div ng-if="getHelpUrl(field, currentConfig)"
 | |
|                        style="margin-top: 10px;  margin-bottom: 10px">
 | |
|                     See: <a href="{{ getHelpUrl(field, currentConfig) }}" target="_blank">{{ getHelpUrl(field, currentConfig) }}</a>
 | |
|                   </div>
 | |
|                 </div>
 | |
|               </td>
 | |
|             </tr>
 | |
| 
 | |
|             <tr ng-if="currentMethod.id == 'webhook'">
 | |
|               <td colspan="2">
 | |
|                 <div class="alert alert-info" style="margin-top: 20px; margin-bottom: 0px">
 | |
|                   JSON metadata representing the event will be <b>POST</b>ed to the URL.
 | |
|                   <br><br>
 | |
|                   The contents for each event can be found in the user guide:
 | |
|                   <a href="http://docs.quay.io/guides/notifications.html#webhook{{ currentEvent.id ? '_' + currentEvent.id : '' }}"
 | |
|                      target="_blank">
 | |
|                     http://docs.quay.io/guides/notifications.html
 | |
|                   </a>
 | |
|                 </div>
 | |
|               </td>
 | |
|             </tr>
 | |
|           </table>
 | |
|        </div>
 | |
| 
 | |
|         <!-- Auth e-mail button bar -->
 | |
|         <div class="modal-footer" ng-if="status == 'unauthorized-email'">
 | |
|           <button type="button" class="btn btn-success" ng-click="sendAuthEmail()">
 | |
|             Send Authorization E-mail
 | |
|           </button>
 | |
|           <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="creating">Cancel</button>
 | |
|         </div>
 | |
| 
 | |
|         <!-- Normal button bar -->
 | |
|         <div class="modal-footer" ng-if="status == '' || status == 'creating'">
 | |
|           <button type="submit" class="btn btn-primary"
 | |
|                   ng-disabled="createForm.$invalid || !currentMethod.id || !currentEvent.id || creating">
 | |
|             Create Notification
 | |
|           </button>
 | |
|           <button type="button" class="btn btn-default" data-dismiss="modal" ng-disabled="creating">Cancel</button>
 | |
|         </div>
 | |
|       </form>
 | |
|     </div><!-- /.modal-content -->
 | |
|   </div><!-- /.modal-dialog -->
 | |
| </div><!-- /.modal -->
 |