Skip to content

Commit

Permalink
#1410 Update alert list: status column, quick filters
Browse files Browse the repository at this point in the history
  • Loading branch information
nadouani committed Jun 28, 2020
1 parent c271b2a commit 40f0cdd
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 34 deletions.
28 changes: 14 additions & 14 deletions frontend/app/scripts/controllers/alert/AlertListCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,9 @@
sort: ['-date']
},
defaultFilter: [{
field: 'status',
type: 'enumeration',
value: {
list: [{
text: 'New',
label: 'New'
}, {
text: 'Updated',
label: 'Updated'
}]
}
field: 'imported',
type: 'boolean',
value: false
}]
});
self.filtering.initContext('list')
Expand Down Expand Up @@ -408,24 +400,32 @@
this.search();
};

this.filterByStatus = function(status) {
this.filterByStatus = function(flag) {
self.filtering.clearFilters()
.then(function(){
self.addFilterValue('status', status);
self.addFilterValue('imported', flag);
});
};

this.filterByNewAndUpdated = function() {
self.filtering.clearFilters()
.then(function(){
self.addFilterValue('status', ['New', 'Updated']);
// TODO nadouani: how to support updated alerts
self.addFilterValue('imported', true);
});
};

this.filterBySeverity = function(numericSev) {
self.addFilterValue('severity', Severity.values[numericSev]);
};

this.filterBy = function(field, value) {
self.filtering.clearFilters()
.then(function(){
self.addFilterValue(field, value);
});
};

this.sortBy = function(sort) {
self.list.sort = sort;
self.list.update();
Expand Down
17 changes: 6 additions & 11 deletions frontend/app/views/partials/alert/list.html
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ <h3 class="box-title">List of alerts ({{$vm.list.total || 0}} of {{alertEvents.c
<span>{{::event.sourceRef}}</span>

<span ng-if="event.externalLink" class="pl-xxs">
<a ng-href="{{event.externalLink}}" target="_blank">
<a ng-href="{{event.externalLink}}" target="_blank" uib-tooltip="Open alert's external link">
<i class="fa fa-external-link"></i>
</a>
</span>
Expand All @@ -122,14 +122,13 @@ <h3 class="box-title">List of alerts ({{$vm.list.total || 0}} of {{alertEvents.c
<span><a href ng-click="$vm.addFilterValue('type', event.type)">{{::event.type}}</a></span>
</td>
<td>
<span class="clickable label label-default" ng-class="{'label-danger': event.status==='New', 'label-warning': event.status === 'Updated'}" ng-click="$vm.addFilterValue('status', event.status)">{{::event.status}}</span>
<span class="clickable label label-default" ng-class="{'label-danger': !event.case}">{{event.case ? 'Imported' : 'New'}}</span>
<span class="clickable label label-default" ng-class="{'label-danger': !event.caseId}" ng-click="$vm.addFilterValue('imported', !!event.caseId)">{{event.caseId ? 'Imported' : 'New'}}</span>
</td>
<td class="wrap">
<div class="case-title">
<span>
<span ng-if="!event.case">{{::event.title}}</span>
<span ng-if="event.case" ui-sref="app.case.details({caseId: event.case})">
<span ng-if="!event.caseId">{{::event.title}}</span>
<span ng-if="event.caseId" ui-sref="app.case.details({caseId: event.caseId})">
<a href>{{::event.title}}</a>
</span>
</span>
Expand All @@ -139,10 +138,6 @@ <h3 class="box-title">List of alerts ({{$vm.list.total || 0}} of {{alertEvents.c
<strong class="text-muted mr-xxxs" ng-if="!event.tags || event.tags.length === 0">None</strong>
<span ng-repeat="tag in event.tags track by $index" class="label label-primary mb-xxxs mr-xxxs pointer" ng-click="$vm.addFilterValue('tags', tag)">{{tag}}</span>
</div>
<!-- <div class="flexwrap" ng-if="event.type === 'misp'">
<span class="mr-xxxs text-muted"><i class="fa fa-link"></i></span>
<a ng-href="{{$vm.urls[event.source]}}/events/{{event.sourceRef}}" target="_blank">Open in MISP</a>
</div> -->
</td>
<td><a href ng-click="$vm.addFilterValue('source', event.source)">{{event.source}}</a></td>
<td class="text-center">
Expand Down Expand Up @@ -189,10 +184,10 @@ <h3 class="box-title">List of alerts ({{$vm.list.total || 0}} of {{alertEvents.c
</div>

<div class="pull-right">
<a class="btn btn-xs btn-icon btn-clear" href ng-click="$vm.import(event)" uib-tooltip="Preview and Import" ng-if="!event.case">
<a class="btn btn-xs btn-icon btn-clear" href ng-click="$vm.import(event)" uib-tooltip="Preview and Import" ng-if="!event.caseId">
<i class="text-info text-20 fa fa-file-text-o"></i>
</a>
<a class="btn btn-xs btn-icon btn-clear" href ui-sref="app.case.details({caseId: event.case})" uib-tooltip="View case" ng-if="event.case">
<a class="btn btn-xs btn-icon btn-clear" href ui-sref="app.case.details({caseId: event.caseId})" uib-tooltip="View case" ng-if="event.caseId">
<i class="text-info text-20 fa fa-search"></i>
</a>
</div>
Expand Down
17 changes: 8 additions & 9 deletions frontend/app/views/partials/alert/list/toolbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,23 +47,22 @@
<span class="caret"></span>
</button>
<ul class="dropdown-menu" uib-dropdown-menu>
<!-- TODO nadouani: fix this filter -->
<!-- <li>
<a class="clickable" ng-click="$vm.filterByNewAndUpdated()">New & Updated events ({{(alertEvents.Updated.count || 0) + (alertEvents.New.count || 0)}})</a>
</li> -->
<li>
<!-- TODO nadouani: fix this filter -->
<a ng-click="$vm.filterByNewAndUpdated()">New & Updated events ({{(alertEvents.Updated.count || 0) + (alertEvents.New.count || 0)}})</a>
<a class="clickable" ng-click="$vm.filterByStatus(false)">New events ({{alertEvents.New.count || 0}})</a>
</li>
<li>
<!-- TODO nadouani: fix this filter -->
<a ng-click="$vm.filterByNewAndUpdated()">New & Updated events ({{(alertEvents.Updated.count || 0) + (alertEvents.New.count || 0)}})</a>
<a class="clickable" ng-click="$vm.filterByStatus(true)">Imported events ({{alertEvents.Imported.count || 0}})</a>
</li>
<li>
<!-- TODO nadouani: fix this filter -->
<a ng-click="$vm.filterByStatus('New')">New events ({{alertEvents.New.count || 0}})</a>
<a class="clickable" ng-click="$vm.filterBy('read', true)">Read events</a>
</li>
<li>
<!-- TODO nadouani: fix this filter -->
<a ng-click="$vm.filterByStatus('Updated')">Updated events({{alertEvents.Updated.count || 0}})</a>
<a class="clickable" ng-click="$vm.filterBy('read', false)">Unread events</a>
</li>

</ul>
</div>

Expand Down

0 comments on commit 40f0cdd

Please sign in to comment.