Fix UI for dismissing notifications

Fixes #959
This commit is contained in:
Joseph Schorr 2015-12-22 07:38:57 -05:00
parent 5ac7369bf5
commit 9cb1366d36
3 changed files with 11 additions and 7 deletions

View file

@ -8,9 +8,10 @@
</div> </div>
</div> </div>
<div class="right-controls"> <div class="right-controls">
<a href="javascript:void(0)" ng-if="canDismiss(notification)" ng-click="dismissNotification(notification)"> <a href="javascript:void(0)" ng-if="canDismiss(notification)" ng-click="dismissNotification(notification)" ng-show="!dismissing">
Dismiss Notification Dismiss Notification
</a> </a>
<span class="cor-loader-inline" ng-show="dismissing"></span>
<button class="btn" ng-class="'btn-' + action.kind" ng-repeat="action in getActions(notification)" ng-click="action.handler(notification)"> <button class="btn" ng-class="'btn-' + action.kind" ng-repeat="action in getActions(notification)" ng-click="action.handler(notification)">
{{ action.title }} {{ action.title }}
</button> </button>

View file

@ -13,6 +13,8 @@ angular.module('quay').directive('notificationView', function () {
'parent': '=parent' 'parent': '=parent'
}, },
controller: function($scope, $element, $window, $location, UserService, NotificationService, ApiService) { controller: function($scope, $element, $window, $location, UserService, NotificationService, ApiService) {
$scope.dismissing = false;
var stringStartsWith = function (str, prefix) { var stringStartsWith = function (str, prefix) {
return str.slice(0, prefix.length) == prefix; return str.slice(0, prefix.length) == prefix;
}; };
@ -51,6 +53,7 @@ angular.module('quay').directive('notificationView', function () {
}; };
$scope.dismissNotification = function(notification) { $scope.dismissNotification = function(notification) {
$scope.dismissing = true;
NotificationService.dismissNotification(notification); NotificationService.dismissNotification(notification);
}; };

View file

@ -140,14 +140,14 @@ function($rootScope, $interval, UserService, ApiService, StringBuilderService, P
'uuid': notification.id 'uuid': notification.id
}; };
ApiService.updateUserNotification(notification, params, function() { ApiService.updateUserNotification(notification, params).then(function(resp) {
notificationService.update();
}, ApiService.errorDisplay('Could not update notification'));
var index = $.inArray(notification, notificationService.notifications); var index = $.inArray(notification, notificationService.notifications);
if (index >= 0) { if (index >= 0) {
notificationService.notifications.splice(index, 1); notificationService.notifications.splice(index, 1);
} }
notificationService.update();
}, ApiService.errorDisplay('Could not update notification'));
}; };
notificationService.getActions = function(notification) { notificationService.getActions = function(notification) {