55 lines
1.7 KiB
JavaScript
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';
|
|
}
|
|
};
|
|
}
|
|
]);
|