Files
lunchrun.me/www/linker/js/controllers/run-controller.js
2014-04-14 11:35:11 -05:00

55 lines
1.7 KiB
JavaScript

var lunchControllers;
lunchControllers = angular.module('lunchControllers');
lunchControllers.controller('RunCtrl', [
'$scope', 'socket', '$routeParams', function($scope, socket, $routeParams) {
$scope.show = false;
$scope.progress = 0;
$scope.numOrders = 0;
$scope.progressClass = 'progress-bar-danger';
socket.get('/run/' + $routeParams['id'], function(response) {
$scope.show = true;
$scope.run = response;
$scope.numOrders = $scope.run.invitees.length;
$scope.setStatusClasses();
$scope.setProgress();
return $scope.$apply();
});
socket.on('message', function(m) {
if (m.verb === 'update' && m.id === $routeParams.id) {
$scope.run = m.data;
$scope.setProgress();
$scope.setStatusClasses();
return $scope.$apply();
}
});
$scope.setStatusClasses = function() {
var i, _i, _len, _ref, _results;
_ref = $scope.run.invitees;
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
i = _ref[_i];
if (i.order) {
_results.push(i.statusClass = 'done');
} else {
_results.push(i.statusClass = 'incomplete');
}
}
return _results;
};
return $scope.setProgress = function() {
var numFilledOrders;
numFilledOrders = _.filter($scope.run.invitees, function(i) {
return i.order;
}).length;
$scope.progress = (numFilledOrders / $scope.numOrders) * 100;
if ($scope.progress >= 100) {
return $scope.progressClass = 'progress-bar-success';
} else {
return $scope.progressClass = 'progress-bar-danger';
}
};
}
]);