993f2a174c
This stops notifications from firing over and over again if they are repeatedly failing. [TESTING -> locally with docker compose, DATABASE MIGRATION -> there is a single migration] Issue: https://www.pivotaltracker.com/story/show/b144646649n - [ ] It works! - [ ] Comments provide sufficient explanations for the next contributor - [ ] Tests cover changes and corner cases - [ ] Follows Quay syntax patterns and format
113 lines
5.1 KiB
HTML
113 lines
5.1 KiB
HTML
<div class="repository-events-table-element">
|
|
<div class="co-panel">
|
|
<div class="co-panel-heading">
|
|
<i class="fa fa-bell"></i> Events and Notifications
|
|
|
|
<div class="heading-controls hidden-sm hidden-xs">
|
|
<a href="/repository/{{ repository.namespace }}/{{ repository.name }}/create-notification" class="btn btn-primary">
|
|
<i class="fa fa-plus"></i> Create Notification
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="panel-body">
|
|
<div class="resource-view" resource="notificationsResource"
|
|
error-message="'Could not load repository events'">
|
|
|
|
<div class="empty" ng-if="!notifications.length">
|
|
<div class="empty-primary-msg">No notifications have been setup for this repository.</div>
|
|
<div class="empty-secondary-msg hidden-sm hidden-xs" ng-if="repository.can_write">
|
|
Click the "Create Notification" button above to add a new notification for a repository event.
|
|
</div>
|
|
<div class="empty-secondary-msg visible-sm visible-xs" ng-if="repository.can_write">
|
|
<a href="/repository/{{ repository.namespace }}/{{ repository.name }}/create-notification">Click here</a> to add a new notification for a repository event.
|
|
</div>
|
|
</div>
|
|
|
|
<table class="co-table permissions" ng-if="notifications.length">
|
|
<thead>
|
|
<tr>
|
|
<td>Title</td>
|
|
<td>Event</td>
|
|
<td>Notification</td>
|
|
<td>Enabled</td>
|
|
<td class="options-col"></td>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<tr class="notification-row" ng-repeat="notification in notifications">
|
|
<td>
|
|
{{ notification.title || '(Untitled)' }}
|
|
</td>
|
|
|
|
<td>
|
|
<span class="notification-event">
|
|
<i class="fa fa-lg" ng-class="getEventInfo(notification).icon"></i>
|
|
{{ getEventInfo(notification).title }}
|
|
</span>
|
|
|
|
<ul class="notification-event-fields" ng-if="getEventInfo(notification).fields.length">
|
|
<li ng-repeat="field in getEventInfo(notification).fields" ng-if="notification.event_config[field.name]">
|
|
{{ field.title }}:
|
|
<span ng-switch on="field.type">
|
|
<span ng-switch-when="enum">
|
|
{{ findEnumValue(field.values, notification.event_config[field.name]).title }}
|
|
</span>
|
|
<code ng-switch-when="regex">
|
|
{{ notification.event_config[field.name] }}
|
|
</code>
|
|
<span ng-switch-default>
|
|
{{ notification.event_config[field.name] }}
|
|
</span>
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
</td>
|
|
|
|
<td>
|
|
<span class="notification-method">
|
|
<i class="fa fa-lg" ng-class="getMethodInfo(notification).icon"></i>
|
|
{{ getMethodInfo(notification).title }}
|
|
</span>
|
|
</td>
|
|
|
|
<td>
|
|
<span ng-if="notification.number_of_failures >= 3">Disabled due to 3 failed attempts in a row</span>
|
|
<span ng-if="notification.number_of_failures < 3">Enabled</span>
|
|
</td>
|
|
|
|
<td>
|
|
<span class="cor-options-menu">
|
|
<span class="cor-option" option-click="testNotification(notification)">
|
|
<i class="fa fa-send"></i> Test Notification
|
|
</span>
|
|
<span class="cor-option" option-click="showNotifyInfo(notification, 'url')"
|
|
ng-if="getMethodInfo(notification).id == 'webhook'">
|
|
<i class="fa fa-link"></i>
|
|
View Webhook URL
|
|
</span>
|
|
<span class="cor-option" option-click="showNotifyInfo(notification, 'email')"
|
|
ng-if="getMethodInfo(notification).id == 'email'">
|
|
<i class="fa fa-envelope"></i>
|
|
View E-mail Address
|
|
</span>
|
|
<span class="cor-option" option-click="showWebhookInfo(notification)"
|
|
ng-if="getMethodInfo(notification).id == 'webhook'">
|
|
<i class="fa fa-book"></i>
|
|
Webhook Documentation
|
|
</span>
|
|
<span class="cor-option" option-click="deleteNotification(notification)">
|
|
<i class="fa fa-times"></i> Delete Notification
|
|
</span>
|
|
<span ng-if="notification.number_of_failures >= 3" class="cor-option" option-click="reenableNotification(notification)">
|
|
<i class="fa fa-adjust"></i> Re-enable Notification
|
|
</span>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|