Skip to content
This repository has been archived by the owner on Sep 9, 2018. It is now read-only.

Commit

Permalink
FIX (Home) modifs callback
Browse files Browse the repository at this point in the history
  • Loading branch information
couturierb committed Feb 7, 2017
1 parent 574bdd0 commit d0d1ce2
Showing 1 changed file with 19 additions and 14 deletions.
33 changes: 19 additions & 14 deletions app/home/home.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

function HomeController($scope, $mdDialog, $interval, $state, $translate, actuatorService, projectsService) {
var vm = this;
var syncCallback = [];
var SYNC_MILLISECONDS = 3000;

vm.addProjectPopup = addProjectPopup;
Expand All @@ -22,21 +21,20 @@


function activate() {
$scope.$on('$destroy', destroy);
$scope.$on('$destroy', $destroy);

vm.projects = projectsService.getAllProjects();
angular.forEach(vm.projects, function (project) {
statusSync(project);
lastTraceSync(project);
angular.forEach(vm.projects, function(project) {
project.statusCallback = statusSync(project);
project.lastTraceCallback = lastTraceSync(project);
});
}

function statusSync(project) {
getStatus(project);
var callback = $interval(function () {
return $interval(function () {
getStatus(project);
}, SYNC_MILLISECONDS);
syncCallback.push(callback);
}

function getStatus(project) {
Expand All @@ -54,10 +52,9 @@

function lastTraceSync(project) {
getTrace(project);
var callback = $interval(function () {
return $interval(function () {
getTrace(project);
}, SYNC_MILLISECONDS);
syncCallback.push(callback);
}

function getTrace(project) {
Expand All @@ -83,12 +80,19 @@
return lastTrace;
}

function destroy() {
angular.forEach(syncCallback, function (callback) {
$interval.cancel(callback);
function $destroy() {
angular.forEach(vm.projects, function (project) {
cancelCallback(project);
});
}

function cancelCallback(project) {
if (project) {
$interval.cancel(project.statusCallback);
$interval.cancel(project.lastTraceCallback);
}
}

function addProjectPopup() {
$mdDialog.show({
controller: 'SaveProjectPopupController',
Expand All @@ -98,9 +102,9 @@
})
.then(function (project) {
project = projectsService.addProject(project);
project.statusCallback = statusSync(project);
project.lastTraceCallback = lastTraceSync(project);
vm.projects.push(project);
statusSync(project);
lastTraceSync(project);
});
}

Expand All @@ -117,6 +121,7 @@
return elem.id === project.id;
});
if (index !== -1) {
cancelCallback(vm.projects[index]);
vm.projects.splice(index, 1);
}
}
Expand Down

0 comments on commit d0d1ce2

Please sign in to comment.