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

Commit

Permalink
feat(tournaments): when editing the options for a tournament, you can…
Browse files Browse the repository at this point in the history
… now add your player bucket

closes #65
  • Loading branch information
seiyria committed Oct 16, 2015
1 parent 79b9e24 commit 0858626
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 24 deletions.
12 changes: 10 additions & 2 deletions src/jade/partials/tournaments/not-started.jade
@@ -1,9 +1,17 @@
script(type="text/ng-template", id="/tournaments/not-started")
div(layout="row", flex)
md-card.almost-max-height(layout="column", flex="40")
md-content(flex, md-scroll-y)
md-content(ng-class="{ 'player-bucket-list-container': showBucketButton() }", flex, md-scroll-y)
md-list.player-bucket-list(flex, sv-root, sv-part="bucket")
md-subheader Players ({{bucket.length}})
md-subheader.no-padding
div(flex, layout="row", layout-align="center center")
span(flex, offset="5") Players ({{bucket.length}})
span(flex)
span.text-right(flex)
md-button.md-fab.md-mini.md-primary(ng-show="showBucketButton()", ng-click="addBucketToBucket()")
ng-md-icon(size="24", icon="group_add", style="fill:white")
md-tooltip Add player bucket ({{currentPlayerBucket().length}} players)

md-list-item.md-2-line(
ng-if="bucket.length === 0"
)
Expand Down
45 changes: 31 additions & 14 deletions src/js/controllers/tournaments/notStartedCtrl.js
@@ -1,19 +1,43 @@
import site from '../../app';

site.controller('notStartedController', ($scope, Auth, EnsureLoggedIn, UserStatus, ShareToken, TournamentStatus, FirebaseURL, $firebaseObject, CurrentPlayerBucket, CurrentTournament, $state, $stateParams) => {
site.controller('notStartedController', ($scope, Auth, EnsureLoggedIn, UserStatus, ShareToken, Toaster, TournamentStatus, FirebaseURL, $timeout, $firebaseObject, CurrentPlayerBucket, CurrentTournament, $state, $stateParams) => {

const authData = EnsureLoggedIn.check();

$scope.bucket = [];
$scope.tournamentOptions = {};

$scope.currentPlayerBucket = () => CurrentPlayerBucket.get();
$scope.showBucketButton = () => $scope.currentPlayerBucket().length !== 0 && $scope.ref && $scope.ref.status === TournamentStatus.IN_PROGRESS;

// lol, add the bucket to the bucket
$scope.addBucketToBucket = () => {
$scope.bucket.push(...$scope.transformPlayers($scope.currentPlayerBucket()));
CurrentPlayerBucket.clear();
$scope.bucket = _.uniq($scope.bucket, 'id');
Toaster.show('Successfully added player bucket to tournament!');
};

$scope.transformPlayers = (players) => {
return _.map(players, (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 || []
};
});
};

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);
});
});

Expand Down Expand Up @@ -63,23 +87,16 @@ site.controller('notStartedController', ($scope, Auth, EnsureLoggedIn, UserStatu
}
};

$scope.removeFromBucket = CurrentPlayerBucket.remove;
$scope.removeFromBucket = (player) => {
CurrentPlayerBucket.remove(player);
$scope.bucket = _.without($scope.bucket, player);
};

$scope.baseGroupSize = () => ~~Math.sqrt($scope.bucket.length);

$scope.start = () => {
$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.players = $scope.transformPlayers($scope.bucket);
$scope.ref.status = TournamentStatus.IN_PROGRESS;
$scope.ref.$save().then(() => {
CurrentPlayerBucket.clear();
Expand Down
35 changes: 27 additions & 8 deletions src/scss/site.scss
Expand Up @@ -69,9 +69,6 @@ $match-column-width: 130px;
$duel-bg: #eee;
$card-border: 1px solid #eee;

.duel-area {
}

.pointer {
cursor: pointer;
}
Expand Down Expand Up @@ -211,11 +208,33 @@ input.hide-spinner[type="number"] {
-moz-appearance: textfield;
}

.player-bucket-list {
.highlight:not(.sv-helper) {
//md-list-item:not(.sv-helper):not(.sv-candidate):nth-child(4n),
//md-list-item:not(.sv-helper):not(.sv-candidate):nth-child(4n+1) {
background-color: #ccc;
.player-bucket-list-container {

.md-subheader-wrapper {
.md-subheader-inner {
padding: 0;
}
}

.player-bucket-list {
padding-top: 0;

.highlight:not(.sv-helper) {
//md-list-item:not(.sv-helper):not(.sv-candidate):nth-child(4n),
//md-list-item:not(.sv-helper):not(.sv-candidate):nth-child(4n+1) {
background-color: #ccc;
}

.md-subheader.no-padding {
margin-right: 0;

.md-subheader-inner {
padding: 0;
}
}
}

md-list.no-padding {
}
}

Expand Down

0 comments on commit 0858626

Please sign in to comment.