From 8a44670e1bf6a0045da5e100f64b670e02e7efac Mon Sep 17 00:00:00 2001 From: Nabil Adouani Date: Mon, 13 Jul 2020 17:18:43 +0200 Subject: [PATCH] #1431 Use responder selector from case, alert, task, observable detail pages --- .../controllers/alert/AlertListCtrl.js | 8 +++- .../scripts/controllers/case/CaseMainCtrl.js | 37 ++++++++------- .../case/CaseObservablesItemCtrl.js | 27 ++++++----- .../controllers/case/CaseTasksItemCtrl.js | 23 ++++----- frontend/app/scripts/directives/logEntry.js | 47 +++++++++++++------ frontend/app/views/directives/log-entry.html | 9 ++-- .../views/partials/case/case.panelinfo.html | 13 +++-- .../app/views/partials/case/case.tasks.html | 14 ++++-- .../views/partials/case/case.tasks.item.html | 8 ++-- .../partials/observables/details/summary.html | 18 +------ 10 files changed, 113 insertions(+), 91 deletions(-) diff --git a/frontend/app/scripts/controllers/alert/AlertListCtrl.js b/frontend/app/scripts/controllers/alert/AlertListCtrl.js index 269e017492..b9b77a2b95 100755 --- a/frontend/app/scripts/controllers/alert/AlertListCtrl.js +++ b/frontend/app/scripts/controllers/alert/AlertListCtrl.js @@ -162,7 +162,7 @@ }; self.import = function(event) { - $uibModal.open({ + var modalInstance = $uibModal.open({ templateUrl: 'views/partials/alert/event.dialog.html', controller: 'AlertEventCtrl', controllerAs: 'dialog', @@ -175,6 +175,12 @@ readonly: false } }); + + modalInstance.result.catch(function(err) { + if(err && !_.isString(err)) { + NotificationSrv.error('AlertListCtrl', err.data, err.status); + } + }); }; self.resetSelection = function() { diff --git a/frontend/app/scripts/controllers/case/CaseMainCtrl.js b/frontend/app/scripts/controllers/case/CaseMainCtrl.js index ae6140f3d1..c16b42a209 100644 --- a/frontend/app/scripts/controllers/case/CaseMainCtrl.js +++ b/frontend/app/scripts/controllers/case/CaseMainCtrl.js @@ -323,24 +323,25 @@ $scope.caseResponders = null; CortexSrv.getResponders('case', $scope.caseId) - .then(function(responders) { - $scope.caseResponders = responders; - }) - .catch(function(response) { - NotificationSrv.error('caseDetails', response.data, response.status); - }); - }; - - $scope.runResponder = function(responderId, responderName) { - CortexSrv.runResponder(responderId, responderName, 'case', _.pick($scope.caze, '_id', 'tlp', 'pap')) - .then(function(response) { - NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on case', $scope.caze.title].join(' '), 'success'); - }) - .catch(function(response) { - if(response && !_.isString(response)) { - NotificationSrv.error('caseDetails', response.data, response.status); - } - }); + .then(function(responders){ + $scope.caseResponders = responders; + return CortexSrv.promntForResponder(responders); + }) + .then(function(response) { + if(response && _.isString(response)) { + NotificationSrv.log(response, 'warning'); + } else { + return CortexSrv.runResponder(response.id, response.name, 'case', _.pick($scope.caze, '_id', 'tlp', 'pap')); + } + }) + .then(function(response){ + NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on case', $scope.caze.title].join(' '), 'success'); + }) + .catch(function(err) { + if(err && !_.isString(err)) { + NotificationSrv.error('caseDetails', err.data, err.status); + } + }); }; /** diff --git a/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js b/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js index 7cfdb5f46d..61c57d6eed 100644 --- a/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js +++ b/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js @@ -269,30 +269,31 @@ }); }; - $scope.getObsResponders = function(observableId, force) { + $scope.getObsResponders = function(observable, force) { if(!force && $scope.obsResponders !== null) { return; } $scope.obsResponders = null; - CortexSrv.getResponders('case_artifact', observableId) + CortexSrv.getResponders('case_artifact', observable._id) .then(function(responders) { $scope.obsResponders = responders; + return CortexSrv.promntForResponder(responders); }) - .catch(function(err) { - NotificationSrv.error('observablesList', err.data, err.status); - }); - }; - - $scope.runResponder = function(responderId, responderName, artifact) { - CortexSrv.runResponder(responderId, responderName, 'case_artifact', _.pick(artifact, '_id')) .then(function(response) { - var data = '['+$filter('fang')(artifact.data || artifact.attachment.name)+']'; + if(response && _.isString(response)) { + NotificationSrv.log(response, 'warning'); + } else { + return CortexSrv.runResponder(response.id, response.name, 'case_artifact', _.pick(observable, '_id')); + } + }) + .then(function(response){ + var data = '['+$filter('fang')(observable.data || observable.attachment.name)+']'; NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on observable', data].join(' '), 'success'); }) - .catch(function(response) { - if(response && !_.isString(response)) { - NotificationSrv.error('observablesList', response.data, response.status); + .catch(function(err) { + if(err && !_.isString(err)) { + NotificationSrv.error('Observable Details', err.data, err.status); } }); }; diff --git a/frontend/app/scripts/controllers/case/CaseTasksItemCtrl.js b/frontend/app/scripts/controllers/case/CaseTasksItemCtrl.js index 5824a866e5..bb4b2fa8d7 100644 --- a/frontend/app/scripts/controllers/case/CaseTasksItemCtrl.js +++ b/frontend/app/scripts/controllers/case/CaseTasksItemCtrl.js @@ -230,23 +230,24 @@ CortexSrv.getResponders('case_task', $scope.task.id) .then(function(responders) { $scope.taskResponders = responders; + return CortexSrv.promntForResponder(responders); }) - .catch(function(err) { - NotificationSrv.error('taskDetails', err.data, err.status); - }); - }; - - $scope.runResponder = function(responderId, responderName) { - CortexSrv.runResponder(responderId, responderName, 'case_task', _.pick($scope.task, '_id')) .then(function(response) { + if(response && _.isString(response)) { + NotificationSrv.log(response, 'warning'); + } else { + return CortexSrv.runResponder(response.id, response.name, 'case_task', _.pick($scope.task, '_id')); + } + }) + .then(function(response){ NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on task', $scope.task.title].join(' '), 'success'); }) - .catch(function(response) { - if(response && !_.isString(response)) { - NotificationSrv.error('taskDetails', response.data, response.status); + .catch(function(err) { + if(err && !_.isString(err)) { + NotificationSrv.error('taskDetails', err.data, err.status); } }); - }; + }; $scope.reloadTask = function() { CaseTaskSrv.get({ diff --git a/frontend/app/scripts/directives/logEntry.js b/frontend/app/scripts/directives/logEntry.js index a783f2faf1..c7b690c083 100644 --- a/frontend/app/scripts/directives/logEntry.js +++ b/frontend/app/scripts/directives/logEntry.js @@ -8,28 +8,45 @@ $scope.showActions = false; $scope.actions = null; $scope.logResponders = null; - $scope.getLogResponders = function(logId) { + $scope.getLogResponders = function(taskLog, force) { + if(!force && $scope.logResponders !== null) { + return; + } + $scope.logResponders = null; - CortexSrv.getResponders('case_task_log', logId) + CortexSrv.getResponders('case_task_log', taskLog._id) .then(function(responders) { $scope.logResponders = responders; + return CortexSrv.promntForResponder(responders); + }) + .then(function(response) { + if(response && _.isString(response)) { + NotificationSrv.log(response, 'warning'); + } else { + return CortexSrv.runResponder(response.id, response.name, 'case_task_log', _.pick(taskLog, '_id')); + } }) - .catch(function(response) { - NotificationSrv.error('logEntry', response.data, response.status); + .then(function(response){ + NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on task log'].join(' '), 'success'); + }) + .catch(function(err) { + if(err && !_.isString(err)) { + NotificationSrv.error('logEntry', err.data, err.status); + } }); }; - $scope.runResponder = function(responderId, responderName, log) { - CortexSrv.runResponder(responderId, responderName, 'case_task_log', _.pick(log, '_id')) - .then(function(response) { - NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on task log'].join(' '), 'success'); - }) - .catch(function(response) { - if(response && !_.isString(response)) { - NotificationSrv.error('logEntry', response.data, response.status); - } - }); - }; + // $scope.runResponder = function(responderId, responderName, log) { + // CortexSrv.runResponder(responderId, responderName, 'case_task_log', _.pick(log, '_id')) + // .then(function(response) { + // NotificationSrv.log(['Responder', response.data.responderName, 'started successfully on task log'].join(' '), 'success'); + // }) + // .catch(function(response) { + // if(response && !_.isString(response)) { + // NotificationSrv.error('logEntry', response.data, response.status); + // } + // }); + // }; $scope.getActions = function(logId) { $scope.actions = PSearchSrv(null, 'connector/cortex/action', { diff --git a/frontend/app/views/directives/log-entry.html b/frontend/app/views/directives/log-entry.html index 1cfec7f775..a65f1de562 100644 --- a/frontend/app/views/directives/log-entry.html +++ b/frontend/app/views/directives/log-entry.html @@ -6,13 +6,12 @@
- - + + Responders - -