Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
nadouani committed Jun 26, 2020
1 parent 706c8db commit dc96002
Show file tree
Hide file tree
Showing 9 changed files with 258 additions and 42 deletions.
1 change: 1 addition & 0 deletions frontend/app/scripts/controllers/alert/AlertListCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

this.$onInit = function() {
self.filtering = new FilteringSrv('alert', 'alert.list', {
version: 'v1',
defaults: {
showFilters: true,
showStats: false,
Expand Down
1 change: 1 addition & 0 deletions frontend/app/scripts/controllers/case/CaseListCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

this.$onInit = function() {
self.filtering = new FilteringSrv('case', 'case.list', {
version: 'v1',
defaults: {
showFilters: true,
showStats: false,
Expand Down
56 changes: 38 additions & 18 deletions frontend/app/scripts/controllers/case/CaseTasksCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
.controller('CaseTaskDeleteCtrl', CaseTaskDeleteCtrl)
.controller('CaseTasksCtrl', CaseTasksCtrl);

function CaseTasksCtrl($scope, $state, $stateParams, $q, $uibModal, FilteringSrv, CaseTabsSrv, PSearchSrv, CaseTaskSrv, UserSrv, NotificationSrv, CortexSrv, AppLayoutSrv) {
function CaseTasksCtrl($scope, $state, $stateParams, $q, $uibModal, FilteringSrv, CaseTabsSrv, PaginatedQuerySrv, CaseTaskSrv, UserSrv, NotificationSrv, CortexSrv, AppLayoutSrv) {

CaseTabsSrv.activateTab($state.current.data.tab);

Expand All @@ -21,6 +21,7 @@

this.$onInit = function() {
$scope.filtering = new FilteringSrv('case_task', 'task.list', {
version: 'v1',
defaults: {
showFilters: true,
showStats: false,
Expand All @@ -41,26 +42,45 @@
};

$scope.load = function() {
$scope.tasks = PSearchSrv($scope.caseId, 'case_task', {
// $scope.tasks = PSearchSrv($scope.caseId, 'case_task', {
// scope: $scope,
// baseFilter: {
// _and: [{
// _parent: {
// _type: 'case',
// _query: {
// '_id': $scope.caseId
// }
// }
// }, {
// _not: {
// 'status': 'Cancel'
// }
// }]
// },
// filter: $scope.filtering.buildQuery(),
// loadAll: true,
// sort: $scope.filtering.context.sort,
// pageSize: $scope.filtering.context.pageSize,
// onUpdate: function() {
// $scope.buildTaskGroups($scope.tasks.values);
// }
// });

$scope.tasks = new PaginatedQuerySrv({
root: $scope.caseId,
objectType: 'case_task',
version: 'v1',
scope: $scope,
baseFilter: {
_and: [{
_parent: {
_type: 'case',
_query: {
'_id': $scope.caseId
}
}
}, {
_not: {
'status': 'Cancel'
}
}]
},
filter: $scope.filtering.buildQuery(),
loadAll: true,
sort: $scope.filtering.context.sort,
loadAll: true,
pageSize: $scope.filtering.context.pageSize,
filter: $scope.filtering.buildQuery(),
withStats: true,
operations: [
{'_name': 'getCase', "idOrName": $scope.caseId},
{'_name': 'tasks'}
],
onUpdate: function() {
$scope.buildTaskGroups($scope.tasks.values);
}
Expand Down
4 changes: 2 additions & 2 deletions frontend/app/scripts/services/api/AlertingSrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
return new PaginatedQuerySrv({
root: undefined,
objectType: 'alert',
version: 'v0',
version: 'v1',
scope: config.scope,
sort: config.sort || ['-date'],
sort: config.sort || ['-date'],
loadAll: config.loadAll || false,
pageSize: config.pageSize || 10,
filter: config.filter || undefined,
Expand Down
19 changes: 13 additions & 6 deletions frontend/app/scripts/services/api/DashboardSrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@
var baseUrl = './api/dashboard';
var self = this;

this.metadata = null;
this.metadata = {
v0: null,
v1: null
};

this.defaultDashboard = {
period: 'all',
Expand Down Expand Up @@ -209,14 +212,18 @@
return obj;
};

this.getMetadata = function() {
this.getMetadata = function(version) {
var defer = $q.defer();

if (this.metadata !== null) {
defer.resolve(this.metadata);
if(!version) {
version = 'v0';
}

if (this.metadata[version] !== null) {
defer.resolve(this.metadata[version]);
} else {
$http
.get('./api/describe/_all')
.get('./api/' + version + '/describe/_all')
.then(function(response) {
var data = response.data;
var metadata = {
Expand All @@ -228,7 +235,7 @@
metadata[entity].attributes = self._objectifyBy(data[entity].attributes, 'name');
});

self.metadata = metadata;
self.metadata[version] = metadata;

defer.resolve(metadata);
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@
Function to change the page
*/
this.changePage = function() {
console.log('Call to PaginatedQuerySrv.changePage()');

if (this.loadAll) {
this.values.length = 0;
var end = this.currentPage * this.pageSize;
Expand Down Expand Up @@ -87,8 +85,6 @@
Function to change the page
*/
this.update = function(updates) {
console.log('Call to PaginatedQuerySrv.update()', updates);

// Get the list
QuerySrv.call(this.version, this.operations, {
filter: self.filter,
Expand Down
2 changes: 1 addition & 1 deletion frontend/app/scripts/services/common/ui/FilteringSrv.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

this.initContext = function(state) {

return DashboardSrv.getMetadata()
return DashboardSrv.getMetadata(this.config.version || 'v0')
.then(function(response) {
self.metadata = response;
self.attributes = angular.copy(response[self.entity].attributes);
Expand Down
28 changes: 17 additions & 11 deletions frontend/app/views/partials/case/case.list.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ <h3 class="box-title">List of cases ({{$vm.list.total || 0}} of {{$vm.caseStats.
uib-tooltip="Shared from another organisation" tooltip-placement="right"></i></span>
<span class="mr-xxs text-primary" ng-if="!!currentCase.stats.isOwner"><i class="fa fa-building-o"
uib-tooltip="Created by my organisation" tooltip-placement="right"></i></span>
<a ui-sref="app.case.details({caseId: currentCase.id})">#{{currentCase.caseId}} - {{currentCase.title}}</a>
<a ui-sref="app.case.details({caseId: currentCase._id})">#{{currentCase.number}} - {{currentCase.title}}</a>
</div>
<div class="case-tags flexwrap mt-xxs">
<span class="mr-xxxs text-muted"><i class="fa fa-tags"></i></span>
Expand All @@ -76,13 +76,15 @@ <h3 class="box-title">List of cases ({{$vm.list.total || 0}} of {{$vm.caseStats.
</div>
<div class="text-danger" ng-if="currentCase.mergeFrom">
<small>
Merged from <a href ui-sref="app.case.details({caseId: currentCase.mergeFrom[0]})"> Case #{{currentCase.stats.mergeFrom[0].caseId}}</a> and
<a href ui-sref="app.case.details({caseId: currentCase.mergeFrom[1]})"> Case #{{currentCase.stats.mergeFrom[1].caseId}}</a>
Merged from <a href ui-sref="app.case.details({caseId: currentCase.mergeFrom[0]})"> Case #{{currentCase.stats.mergeFrom[0].number}}</a> and
<a href ui-sref="app.case.details({caseId: currentCase.mergeFrom[1]})"> Case #{{currentCase.stats.mergeFrom[1].number}}</a>
</small>
</div>
</td>
<td align="center">
<a href ng-if="currentCase.stats.shareCount > 0" ui-sref="app.case.sharing({caseId: currentCase.id})" class="noline"
<span class="label label-danger">TODO</span>
<!-- TODO nadouani: not yet implemented -->
<!-- <a href ng-if="currentCase.stats.shareCount > 0" ui-sref="app.case.sharing({caseId: currentCase._id})" class="noline"
uib-tooltip="{{ {
true: 'Current organisation has shared this Case with ' + currentCase.stats.shareCount + ' organisation(s)',
false: 'This Case has been shared by its owner with ' + currentCase.stats.shareCount + ' organisation(s)'
Expand All @@ -91,25 +93,29 @@ <h3 class="box-title">List of cases ({{$vm.list.total || 0}} of {{$vm.caseStats.
<i class="fa fa-users"></i>
({{currentCase.stats.shareCount || 0}})
</a>
</a> -->
</td>
<td align="center">
<div class="clickable" ng-click="$vm.addFilterValue('severity', currentCase.severity)">
<severity active="false" value="currentCase.severity"></severity>
</div>
</td>
<td>
<a ui-sref="app.case.tasks({caseId: currentCase.id})">
<span class="label label-danger">TODO</span>
<!-- TODO nadouani: not yet implemented -->
<!-- <a ui-sref="app.case.tasks({caseId: currentCase._id})">
<ng-pluralize count="currentCase.stats.tasks.total" when="{'0': 'No Tasks', '1': '1 Task', 'other': '{} Tasks'}"></ng-pluralize>
</a>
<br>
<task-progress ng-show="currentCase.stats.tasks.total > 0" tasks="currentCase.stats.tasks"/>
<task-progress ng-show="currentCase.stats.tasks.total > 0" tasks="currentCase.stats.tasks"/> -->
</td>
<td>
<a ui-sref="app.case.observables({caseId: currentCase.id})">{{currentCase.stats.artifacts.count}}</a>
<span class="label label-danger">TODO</span>
<!-- TODO nadouani: not yet implemented -->
<!-- <a ui-sref="app.case.observables({caseId: currentCase._id})">{{currentCase.stats.artifacts.count}}</a> -->
</td>
<td class="nowrap">
<user user-id="currentCase.owner" icon-only="true" icon-size="m"></user>
<user user-id="currentCase.assignee" icon-only="true" icon-size="m"></user>
</td>
<td>
<div>
Expand All @@ -123,14 +129,14 @@ <h3 class="box-title">List of cases ({{$vm.list.total || 0}} of {{$vm.caseStats.
</td>
<td if-permission="manageTask" allowed="{{userPermissions}}" ng-if="appConfig.connectors.cortex.enabled">
<span class="ml-xs" uib-dropdown>
<a href class="text-primary noline nowrap" ng-click="$vm.getCaseResponders(currentCase.id, true)" uib-dropdown-toggle>
<a href class="text-primary noline nowrap" ng-click="$vm.getCaseResponders(currentCase._id, true)" uib-dropdown-toggle>
<i class="text-primary fa fa-cog"></i>
<!-- Responders
<i class="text-primary fa fa-angle-down"></i> -->
</a>
<ul class="dropdown-menu align-right" uib-dropdown-menu>
<li ng-if="$vm.caseResponders && $vm.caseResponders.length === 0">
<a href ng-click="$vm.getCaseResponders(currentCase.id, true)">
<a href ng-click="$vm.getCaseResponders(currentCase._id, true)">
<strong><i class="fa fa-refresh mr-xxs"></i> No responders available</strong>
</a>
</li>
Expand Down
Loading

0 comments on commit dc96002

Please sign in to comment.