diff --git a/src/js/controllers/tournaments/notStartedCtrl.js b/src/js/controllers/tournaments/notStartedCtrl.js index 1d0d1ac..acf0dc2 100644 --- a/src/js/controllers/tournaments/notStartedCtrl.js +++ b/src/js/controllers/tournaments/notStartedCtrl.js @@ -1,11 +1,21 @@ import site from '../../app'; -site.controller('notStartedController', ($scope, EnsureLoggedIn, UserStatus, ShareToken, TournamentStatus, FirebaseURL, $firebaseObject, CurrentPlayerBucket, CurrentTournament, $state, $stateParams) => { +site.controller('notStartedController', ($scope, Auth, EnsureLoggedIn, UserStatus, ShareToken, TournamentStatus, FirebaseURL, $firebaseObject, CurrentPlayerBucket, CurrentTournament, $state, $stateParams) => { const authData = EnsureLoggedIn.check(); - $scope.bucket = CurrentPlayerBucket.get(); - CurrentPlayerBucket.watch.then(null, null, bucket => $scope.bucket = bucket); + $scope.bucket = []; + $scope.tournamentOptions = {}; + + Auth.ready.then(() => { + $scope.ref = $firebaseObject(new Firebase(`${FirebaseURL}/users/${UserStatus.firebase.playerSetUid}/players/${UserStatus.firebase.playerSet}/tournaments/${$stateParams.tournamentId}`)); + + $scope.ref.$loaded().then(() => { + $scope.tournamentOptions = $scope.ref.options || { type: 'singles' }; + $scope.bucket = $scope.ref.players || CurrentPlayerBucket.get(); + CurrentPlayerBucket.watch.then(null, null, bucket => $scope.bucket = bucket); + }); + }); $scope.toCharacter = (num) => { let bucket = Math.ceil(num/2); @@ -20,12 +30,8 @@ site.controller('notStartedController', ($scope, EnsureLoggedIn, UserStatus, Sha const stringToArray = (string) => _.compact(_.map(string.split(','), s => parseInt(s.trim()))) || []; - $scope.tournamentOptions = { - type: 'singles' - }; - $scope.setStringArrValue = (key, value) => $scope.tournamentOptions[key] = stringToArray($scope.tournamentOptions[value]); - + $scope.getOptions = () => { const type = $scope.tournamentOptions.type; if(type === 'singles' || type === 'doubles') return _.extend({ last: type === 'singles' ? Duel.WB : Duel.LB }, $scope.tournamentOptions); @@ -62,22 +68,22 @@ site.controller('notStartedController', ($scope, EnsureLoggedIn, UserStatus, Sha $scope.baseGroupSize = () => ~~Math.sqrt($scope.bucket.length); $scope.start = () => { - const ref = $firebaseObject(new Firebase(`${FirebaseURL}/users/${UserStatus.firebase.playerSetUid}/players/${UserStatus.firebase.playerSet}/tournaments/${$stateParams.tournamentId}`)); - - ref.$loaded().then(() => { - ref.options = $scope.getOptions(); - ref.players = _.map($scope.bucket, (player) => { - return { - id: player.$id, - name: player.name, - alias: player.chosenAlias || '' - }; - }); - ref.status = TournamentStatus.IN_PROGRESS; - ref.$save().then(() => { - CurrentPlayerBucket.clear(); - $state.go('tournamentInProgress', { userId: ShareToken(authData.uid), tournamentId: $stateParams.tournamentId, setId: UserStatus.firebase.playerSet }); - }); + $scope.ref.options = $scope.getOptions(); + $scope.ref.players = _.map($scope.bucket, (player) => { + return { + id: player.$id || player.id, + name: player.name, + alias: player.alias || player.chosenAlias || '', + wins: player.wins || 0, + losses: player.losses || 0, + points: player.points || 0, + aliases: player.aliases || [] + }; + }); + $scope.ref.status = TournamentStatus.IN_PROGRESS; + $scope.ref.$save().then(() => { + CurrentPlayerBucket.clear(); + $state.go('tournamentInProgress', { userId: ShareToken(authData.uid), tournamentId: $stateParams.tournamentId, setId: UserStatus.firebase.playerSet }); }); };