Skip to content

Commit

Permalink
#170 Update bulk actions menu
Browse files Browse the repository at this point in the history
  • Loading branch information
nadouani committed Apr 18, 2017
1 parent 6d694a9 commit 4627049
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 40 deletions.
31 changes: 23 additions & 8 deletions ui/app/scripts/controllers/alert/AlertEventCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
var self = this;
var eventId = event.id;

self.event = event;

self.loading = true;

self.pagination = {
Expand Down Expand Up @@ -70,13 +72,7 @@
});
};

self.ignore = function(){
AlertingSrv.ignore(self.event.id).then(function( /*data*/ ) {
$uibModalInstance.dismiss();
});
};

self.follow = function() {
this.follow = function() {
var fn = angular.noop;

if (self.event.follow === true) {
Expand All @@ -86,12 +82,31 @@
}

fn(self.event.id).then(function() {
self.load();
$uibModalInstance.dismiss();
}).catch(function(response) {
NotificationSrv.error('AlertEventCtrl', response.data, response.status);
});
};

this.canMarkAsRead = AlertingSrv.canMarkAsRead;
this.canMarkAsUnread = AlertingSrv.canMarkAsUnread;

this.markAsRead = function() {
var fn = angular.noop;

if(this.canMarkAsRead(this.event)) {
fn = AlertingSrv.markAsRead;
} else {
fn = AlertingSrv.markAsUnread;
}

fn(this.event.id).then(function( /*data*/ ) {
$uibModalInstance.dismiss();
}, function(response) {
NotificationSrv.error('AlertEventCtrl', response.data, response.status);
});
};

self.cancel = function() {
$uibModalInstance.dismiss();
};
Expand Down
58 changes: 29 additions & 29 deletions ui/app/scripts/controllers/alert/AlertListCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
follow: false,
unfollow: false,
markAsRead: false,
markAsUnRead: false,
selectAll: false
};
self.filtering = new FilteringSrv('alert-section', {
Expand Down Expand Up @@ -105,13 +106,8 @@
this.filtering.toggleFilters();
};

this.canMarkAsRead = function(event) {
return event.status === 'New' || event.status === 'Update';
};

this.canMarkAsUnread = function(event) {
return event.status === 'Imported' || event.status === 'Ignore';
};
this.canMarkAsRead = AlertingSrv.canMarkAsRead;
this.canMarkAsUnread = AlertingSrv.canMarkAsUnread;

this.markAsRead = function(event) {
var fn = angular.noop;
Expand Down Expand Up @@ -164,39 +160,41 @@
});
};

self.import = function(event) {
$uibModal.open({
templateUrl: 'views/partials/alert/event.dialog.html',
controller: 'AlertEventCtrl',
controllerAs: 'dialog',
size: 'lg',
resolve: {
event: event
}
});
};

self.ignore = function(event) {
AlertingSrv.ignore(event.id).then(function( /*data*/ ) {
self.list.update();
});
};

self.bulkIgnore = function() {
self.bulkMarkAsRead = function(markAsReadFlag) {
var ids = _.pluck(self.selection, 'id');
var fn = angular.noop;
var markAsRead = markAsReadFlag && this.canMarkAsRead(self.selection[0]);

if(markAsRead) {
fn = AlertingSrv.markAsRead;
} else {
fn = AlertingSrv.markAsUnread;
}

var promises = _.map(ids, function(id) {
return AlertingSrv.ignore(id);
return fn(id);
});

$q.all(promises).then(function( /*response*/ ) {
self.list.update();
NotificationSrv.log('The selected events have been ignored', 'success');
NotificationSrv.log('The selected events have been ' + (markAsRead ? 'marked as read' : 'marked as unread'), 'success');
}, function(response) {
NotificationSrv.error('AlertListCtrl', response.data, response.status);
});
};

self.import = function(event) {
$uibModal.open({
templateUrl: 'views/partials/alert/event.dialog.html',
controller: 'AlertEventCtrl',
controllerAs: 'dialog',
size: 'lg',
resolve: {
event: event
}
});
};

self.resetSelection = function() {
if (self.menu.selectAll) {
self.selectAll();
Expand Down Expand Up @@ -234,7 +232,9 @@

temp = _.uniq(_.pluck(self.selection, 'status'));

self.menu.markAsRead = temp.indexOf('Ignore') === -1;
self.menu.markAsRead = temp.indexOf('Ignore') === -1 && temp.indexOf('Imported') === -1;
self.menu.markAsUnread = temp.indexOf('New') === -1 && temp.indexOf('Update') === -1;

};

self.select = function(event) {
Expand Down
8 changes: 8 additions & 0 deletions ui/app/scripts/services/AlertingSrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@
return $http.post(baseUrl + '/' + alertId + '/createCase', {});
},

canMarkAsRead: function(event) {
return event.status === 'New' || event.status === 'Update';
},

canMarkAsUnread: function(event) {
return event.status === 'Imported' || event.status === 'Ignore';
},

markAsRead: function(alertId) {
return $http.post(baseUrl + '/' + alertId + '/markAsRead');
},
Expand Down
10 changes: 8 additions & 2 deletions ui/app/views/partials/alert/event.dialog.html
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,16 @@ <h4 class="vpad10 text-primary">
<div class="modal-footer text-left">
<button class="btn btn-default" ng-click="dialog.cancel()" type="button">Cancel</button>
<button class="btn btn-primary pull-right" type="button" ng-disabled="dialog.loading" ng-click="dialog.import()">Import event</button>
<button class="btn btn-default pull-right" type="button" ng-disabled="dialog.loading" ng-click="dialog.ignore()">
<i class="fa fa-check"></i> Mark as read
<button class="btn btn-default pull-right" ng-if="dialog.canMarkAsRead(dialog.event)" ng-click="dialog.markAsRead(dialog.event)">
<i class="fa fa-envelope"></i> Mark as read
</button>
<button class="btn btn-default pull-right" ng-if="dialog.canMarkAsUnread(dialog.event)" ng-click="dialog.markAsRead(dialog.event)">
<i class="fa fa-envelope-open-o"></i> Mark as unread
</button>

<button class="btn btn-default pull-right" type="button" ng-disabled="dialog.loading" ng-click="dialog.follow()">
<i class="fa" ng-class="{'fa-eye': dialog.event.follow, 'fa-eye-slash': !dialog.event.follow}"></i> {{dialog.event.follow ? 'Ignore new updates' : 'Track new updates'}}
</button>


</div>
5 changes: 4 additions & 1 deletion ui/app/views/partials/alert/list/toolbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@
<a href ng-click="$vm.bulkFollow(false)">Ignore new updates</a>
</li>
<li ng-show="$vm.menu.markAsRead">
<a href ng-click="$vm.bulkIgnore()">Mark as read</a>
<a href ng-click="$vm.bulkMarkAsRead(true)">Mark as read</a>
</li>
<li ng-show="$vm.menu.markAsUnread">
<a href ng-click="$vm.bulkMarkAsRead(false)">Mark as unread</a>
</li>
</ul>
</div>
Expand Down

0 comments on commit 4627049

Please sign in to comment.