48 lines
1.6 KiB
CoffeeScript
48 lines
1.6 KiB
CoffeeScript
lunchControllers = angular.module 'lunchControllers'
|
|
|
|
lunchControllers.controller 'RunCtrl', ['$scope', 'socket', '$routeParams', ($scope, socket, $routeParams) ->
|
|
$scope.show = false
|
|
$scope.progress = 0
|
|
$scope.numOrders = 0
|
|
$scope.progressClass = 'progress-bar-danger'
|
|
|
|
socket.get '/run/' + $routeParams['id'],
|
|
(response) ->
|
|
if response.status is 404
|
|
window.location = '/404'
|
|
return
|
|
|
|
$scope.show = true
|
|
$scope.run = response
|
|
|
|
socket.get '/invitee', run_id: response.id, (inviteeResponse) ->
|
|
$scope.invitees = inviteeResponse
|
|
$scope.numOrders = $scope.invitees.length
|
|
$scope.setStatusClasses()
|
|
$scope.setProgress()
|
|
$scope.$apply()
|
|
|
|
socket.on 'message', (m) ->
|
|
if m.verb is 'update' and m.data.run_id is $routeParams.id
|
|
invitee = _.findWhere $scope.invitees, run_id: m.data.run_id
|
|
_.extend invitee, m.data
|
|
$scope.setProgress()
|
|
$scope.setStatusClasses()
|
|
$scope.$apply()
|
|
|
|
$scope.setStatusClasses = () ->
|
|
for i in $scope.invitees
|
|
if i.order
|
|
i.statusClass = 'done'
|
|
else
|
|
i.statusClass = 'incomplete'
|
|
|
|
$scope.setProgress = () ->
|
|
numFilledOrders = _.filter($scope.invitees, (i) -> i.order).length
|
|
$scope.progress = (numFilledOrders / $scope.numOrders) * 100
|
|
if $scope.progress >= 100
|
|
$scope.progressClass = 'progress-bar-success'
|
|
else
|
|
$scope.progressClass = 'progress-bar-danger'
|
|
]
|