diff --git a/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js b/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js index 605f994af8..f9793b094c 100644 --- a/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js +++ b/frontend/app/scripts/controllers/case/CaseObservablesItemCtrl.js @@ -125,33 +125,71 @@ $scope.similarArtifactsLimit = $scope.similarArtifactsLimit + 10; }; - $scope.showReport = function (jobId) { + $scope.refreshCurrentJob = function() { + $scope.loadReport($scope.currentJob); + }; + + $scope.loadReport = function(jobId) { $scope.report = {}; - CortexSrv.getJob(jobId, true).then(function(response) { - var job = response.data; - $scope.report = { - template: job.analyzerDefinition, - content: job.report, - status: job.status, - startDate: job.startDate, - endDate: job.endDate - }; - - $scope.currentJob = jobId; - - $timeout(function() { - var reportEl = angular.element('#analysis-report')[0]; - - // Scrolling hack using jQuery stuff - $('html,body').animate({ - scrollTop: $(reportEl).offset().top - }, 'fast'); - }, 500); - - }, function(/*err*/) { - NotificationSrv.error('An expected error occured while fetching the job report'); - }); + return CortexSrv.getJob(jobId, true) + .then(function(response) { + var job = response.data; + $scope.report = { + template: job.analyzerDefinition, + content: job.report, + status: job.status, + startDate: job.startDate, + endDate: job.endDate + }; + + $scope.currentJob = jobId; + }); + }; + + $scope.showReport = function (jobId) { + + $scope.loadReport(jobId) + .then(function(){ + $timeout(function() { + var reportEl = angular.element('#analysis-report')[0]; + + // Scrolling hack using jQuery stuff + $('html,body').animate({ + scrollTop: $(reportEl).offset().top + }, 'fast'); + }, 500); + }) + .catch(function(/*err*/) { + NotificationSrv.error('An expected error occured while fetching the job report'); + }); + + // $scope.report = {}; + + // CortexSrv.getJob(jobId, true).then(function(response) { + // var job = response.data; + // $scope.report = { + // template: job.analyzerDefinition, + // content: job.report, + // status: job.status, + // startDate: job.startDate, + // endDate: job.endDate + // }; + // + // $scope.currentJob = jobId; + // + // $timeout(function() { + // var reportEl = angular.element('#analysis-report')[0]; + // + // // Scrolling hack using jQuery stuff + // $('html,body').animate({ + // scrollTop: $(reportEl).offset().top + // }, 'fast'); + // }, 500); + // + // }, function(/*err*/) { + // NotificationSrv.error('An expected error occured while fetching the job report'); + // }); }; $scope.openArtifact = function (a) { diff --git a/frontend/app/scripts/directives/report-observables.js b/frontend/app/scripts/directives/report-observables.js index 149f10926d..5ef8020ac5 100644 --- a/frontend/app/scripts/directives/report-observables.js +++ b/frontend/app/scripts/directives/report-observables.js @@ -8,7 +8,8 @@ observables: '=', analyzer: '=', caseId: '=', - permissions: '=' + permissions: '=', + onRefresh: '&?' }, templateUrl: 'views/directives/report-observables.html', link: function(scope) { @@ -117,6 +118,10 @@ item.imported = true; item.selected = false; }); + + if($scope.onRefresh) { + $scope.onRefresh(); + } }); }); diff --git a/frontend/app/views/directives/report-observables.html b/frontend/app/views/directives/report-observables.html index 7b3bf5754e..a221402c9a 100644 --- a/frontend/app/views/directives/report-observables.html +++ b/frontend/app/views/directives/report-observables.html @@ -39,13 +39,13 @@ offset: (pagination.currentPage-1)*pagination.pageSize | limitTo: pagination.pageSize ">