Skip to content
This repository has been archived by the owner on Apr 24, 2020. It is now read-only.

Commit

Permalink
fix(tournament): changing options won't break tournaments
Browse files Browse the repository at this point in the history
ref #48
  • Loading branch information
seiyria committed Oct 16, 2015
1 parent d44c51f commit 2e9c0c9
Showing 1 changed file with 30 additions and 24 deletions.
54 changes: 30 additions & 24 deletions 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);
Expand All @@ -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);
Expand Down Expand Up @@ -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 });
});
};

Expand Down

0 comments on commit 2e9c0c9

Please sign in to comment.