Edit run functionality

This commit is contained in:
Ben Ramey
2014-06-24 22:49:02 -05:00
parent 90fee4987e
commit 65a3d36cd2
8 changed files with 35 additions and 34 deletions

View File

@@ -20,6 +20,9 @@ module.exports = {
order: { order: {
type: 'string' type: 'string'
}, },
isCreator: {
type: 'boolean'
},
run_id: { run_id: {
type: 'string' type: 'string'
} }

View File

@@ -1,7 +1,8 @@
lunchApp = angular.module 'lunchApp', [ lunchApp = angular.module 'lunchApp', [
'ngRoute', 'ngRoute',
'lunchControllers', 'lunchControllers',
'lunchServices' 'lunchServices',
'lunchFilters'
] ]
lunchApp.config ['$routeProvider', lunchApp.config ['$routeProvider',

View File

@@ -17,6 +17,7 @@ lunchControllers.controller 'CreateRunCtrl', ['$scope', '$http', '$location', 's
inviteeData.push inviteeData.push
name: runData.creatorName name: runData.creatorName
email: runData.creatorEmail email: runData.creatorEmail
isCreator: true
socket.post '/run', runData, (runResponse) -> socket.post '/run', runData, (runResponse) ->
inviteesCreated = 0 inviteesCreated = 0

View File

@@ -3,10 +3,6 @@ lunchControllers = angular.module 'lunchControllers'
lunchControllers.controller 'EditRunCtrl', ['$scope', 'socket', '$routeParams', '$sce', lunchControllers.controller 'EditRunCtrl', ['$scope', 'socket', '$routeParams', '$sce',
EditRunController = ($scope, socket, $routeParams, $sce) -> EditRunController = ($scope, socket, $routeParams, $sce) ->
$scope.show = false $scope.show = false
$scope.progress = 0
$scope.numOrders = 0
$scope.progressClass = 'progress-bar-danger'
$scope.showMenuUrl = false
socket.get '/run/' + $routeParams['id'], socket.get '/run/' + $routeParams['id'],
(response) -> (response) ->
@@ -16,36 +12,30 @@ lunchControllers.controller 'EditRunCtrl', ['$scope', 'socket', '$routeParams',
$scope.show = true $scope.show = true
$scope.run = response $scope.run = response
$scope.showMenuUrl = response.menuUrl
$scope.menuUrl = $sce.trustAsResourceUrl(response.menuUrl)
socket.get '/invitee', run_id: response.id, (inviteeResponse) -> socket.get '/invitee', run_id: response.id, (inviteeResponse) ->
$scope.invitees = inviteeResponse $scope.invitees = inviteeResponse
$scope.numOrders = $scope.invitees.length
$scope.setStatusClasses()
$scope.setProgress()
$scope.$apply() $scope.$apply()
socket.on 'message', (m) -> $scope.addInvitee = () ->
if m.verb is 'update' and m.data.run_id is $routeParams.id $scope.invitees.push {}
invitee = _.findWhere $scope.invitees, id: m.data.id
_.extend invitee, m.data
$scope.setProgress()
$scope.setStatusClasses()
$scope.$apply()
$scope.setStatusClasses = () -> $scope.removeInvitee = (index) ->
for i in $scope.invitees $scope.invitees.splice index, 1
if i.order
i.statusClass = 'done'
else
i.statusClass = 'incomplete'
$scope.setProgress = () -> $scope.update = (run,invitees) ->
numFilledOrders = _.filter($scope.invitees, (i) -> i.order).length runData = angular.copy run
$scope.progress = (numFilledOrders / $scope.numOrders) * 100 inviteeData = angular.copy invitees
if $scope.progress >= 100 creatorInvitee = _.find inviteeData, (i) -> return i.isCreator
$scope.progressClass = 'progress-bar-success' creatorInvitee.name = runData.creatorName
else creatorInvitee.email = runData.creatorEmail
$scope.progressClass = 'progress-bar-danger'
socket.put '/run/update/' + runData.id, runData, (runResponse) ->
inviteesCreated = 0
for i in inviteeData
socket.put '/invitee/update/' + i.id, i, (inviteeResponse) ->
inviteesCreated++
if inviteesCreated is inviteeData.length
$location.path '/run/' + runResponse.id
$scope.$apply()
] ]

View File

@@ -0,0 +1,5 @@
lunchFilters = angular.module 'lunchFilters', []
lunchFilters.filter 'notCreatorInvitees', () ->
return (invitees) ->
return _.filter invitees, (i) -> return not i.isCreator

View File

@@ -48,7 +48,7 @@
.col-xs-12.col-lg-2.step-num .col-xs-12.col-lg-2.step-num
span.glyphicon.glyphicon-list(title='Lunch Invitees') span.glyphicon.glyphicon-list(title='Lunch Invitees')
.col-xs-12.col-lg-10 .col-xs-12.col-lg-10
.invitee.clearfix(ng-repeat='i in invitees') .invitee.clearfix(ng-repeat='i in invitees | notCreatorInvitees')
ng-form(name='inviteeForm') ng-form(name='inviteeForm')
.row .row
.col-xs-10.name-wrapper .col-xs-10.name-wrapper

View File

@@ -5,9 +5,9 @@ block pagetitle
| update your lunch run | update your lunch run
block interiorcontent block interiorcontent
.create-run-form(ng-controller='CreateRunCtrl') .create-run-form(ng-controller='EditRunCtrl')
form.row(name='form',novalidate,role='form') form.row(name='form',novalidate,role='form',ng-show="show")
include _form include _form
section.submit section.submit
button.btn.btn-lg.btn-success.btn-block(ng-click="create(run,invitees)",ng-disabled="form.$invalid") button.btn.btn-lg.btn-success.btn-block(ng-click="update(run,invitees)",ng-disabled="form.$invalid")
| Update | Update

View File

@@ -34,6 +34,7 @@ html(lang="en",ng-app="lunchApp")
script(type="text/javascript", src="/linker/js/controllers/home-controller.js") script(type="text/javascript", src="/linker/js/controllers/home-controller.js")
script(type="text/javascript", src="/linker/js/controllers/run-controller.js") script(type="text/javascript", src="/linker/js/controllers/run-controller.js")
script(type="text/javascript", src="/linker/js/controllers/update-order-controller.js") script(type="text/javascript", src="/linker/js/controllers/update-order-controller.js")
script(type="text/javascript", src="/linker/js/lunchFilters.js")
script(type="text/javascript", src="/linker/js/services/socket.js") script(type="text/javascript", src="/linker/js/services/socket.js")
script(type="text/javascript", src="/linker/js/uservoice.js") script(type="text/javascript", src="/linker/js/uservoice.js")
script(type="text/javascript", src="/linker/js/vendor/jquery.backstretch.min.js") script(type="text/javascript", src="/linker/js/vendor/jquery.backstretch.min.js")