59 lines
2 KiB
JavaScript
59 lines
2 KiB
JavaScript
/**
|
|
* An element which displays controls and information about a defined external notification on
|
|
* a repository.
|
|
*/
|
|
angular.module('quay').directive('externalNotificationView', function () {
|
|
var directiveDefinitionObject = {
|
|
priority: 0,
|
|
templateUrl: '/static/directives/external-notification-view.html',
|
|
replace: false,
|
|
transclude: false,
|
|
restrict: 'C',
|
|
scope: {
|
|
'repository': '=repository',
|
|
'notification': '=notification',
|
|
'notificationDeleted': '¬ificationDeleted'
|
|
},
|
|
controller: function($scope, $element, ExternalNotificationData, ApiService) {
|
|
$scope.deleteNotification = function() {
|
|
var params = {
|
|
'repository': $scope.repository.namespace + '/' + $scope.repository.name,
|
|
'uuid': $scope.notification.uuid
|
|
};
|
|
|
|
ApiService.deleteRepoNotification(null, params).then(function() {
|
|
$scope.notificationDeleted({'notification': $scope.notification});
|
|
});
|
|
};
|
|
|
|
$scope.testNotification = function() {
|
|
var params = {
|
|
'repository': $scope.repository.namespace + '/' + $scope.repository.name,
|
|
'uuid': $scope.notification.uuid
|
|
};
|
|
|
|
ApiService.testRepoNotification(null, params).then(function() {
|
|
bootbox.dialog({
|
|
"title": "Test Notification Queued",
|
|
"message": "A test version of this notification has been queued and should appear shortly",
|
|
"buttons": {
|
|
"close": {
|
|
"label": "Close",
|
|
"className": "btn-primary"
|
|
}
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
$scope.$watch('notification', function(notification) {
|
|
if (notification) {
|
|
$scope.eventInfo = ExternalNotificationData.getEventInfo(notification.event);
|
|
$scope.methodInfo = ExternalNotificationData.getMethodInfo(notification.method);
|
|
$scope.config = notification.config;
|
|
}
|
|
});
|
|
}
|
|
};
|
|
return directiveDefinitionObject;
|
|
});
|