Skip to content

Commit

Permalink
Merge pull request #43 from unlimitedlabs/task_signals
Browse files Browse the repository at this point in the history
Add signal registration for task submit and save
  • Loading branch information
jrbotros committed Oct 8, 2015
2 parents eb03ac1 + 29ccc04 commit d8af990
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
8 changes: 8 additions & 0 deletions orchestra/static/orchestra/task/js/controllers.js
Original file line number Diff line number Diff line change
Expand Up @@ -116,17 +116,21 @@
vm.saving = true;
vm.saveError = false;
vm.cancelAutoSave();
orchestraService.signals.fireSignal('save.before');
$http.post('/orchestra/api/interface/save_task_assignment/',
{'task_id': vm.taskId, 'task_data': vm.taskAssignment.task.data})
.success(function(data, status, headers, config) {
vm.lastSaved = Date.now();
// Reset timeout counter on save success
vm.autoSaveTimeout = 10000;
orchestraService.signals.fireSignal('save.success');
})
.error(function(data, status, headers, config) {
vm.saveError = true;
orchestraService.signals.fireSignal('save.error');
})
.finally(function() {
orchestraService.signals.fireSignal('save.finally');
vm.saving = false;
if (vm.saveError) {
// Retry save with exp backoff
Expand All @@ -138,18 +142,22 @@

vm.confirmSubmission = function(command, totalSeconds) {
vm.submitting = true;
orchestraService.signals.fireSignal('submit.before');
$http.post('/orchestra/api/interface/submit_task_assignment/',
{'task_id': vm.taskId, 'task_data': vm.taskAssignment.task.data,
'command_type': command, 'work_time_seconds': totalSeconds})
.success(function(data, status, headers, config) {
// Prevent additional confirmation dialog on leaving the page; data
// will be saved by submission
vm.cancelAutoSave();
orchestraService.signals.fireSignal('submit.success');
$location.path('/');
})
.error(function(data, status, headers, config) {
orchestraService.signals.fireSignal('submit.error');
})
.finally(function() {
orchestraService.signals.fireSignal('submit.finally');
vm.submitting = false;
});
};
Expand Down
16 changes: 16 additions & 0 deletions orchestra/static/orchestra/task/js/services.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,25 @@ serviceModule.factory('orchestraService', function() {
}
}

var signals = new function() {
var registered = {};

this.registerSignal = function(signalType, callback) {
registered[signalType] = registered[signalType] || [];
registered[signalType].push(callback);
}
this.fireSignal = function(signalType) {
registered[signalType] = registered[signalType] || [];
registered[signalType].forEach(function(callback) {
callback();
});
}
}

var orchestraService = new function() {
this.googleUtils = googleUtils;
this.taskUtils = taskUtils;
this.signals = signals;
}
return orchestraService;
});

0 comments on commit d8af990

Please sign in to comment.