Skip to content

Commit

Permalink
Merge pull request ladisays#6 from andela-ladenusi/dev
Browse files Browse the repository at this point in the history
refactored and added checks
  • Loading branch information
Ladi Adenusi committed Jul 13, 2015
2 parents 1d36b09 + e6d5dd0 commit 4b9a93e
Show file tree
Hide file tree
Showing 4 changed files with 139 additions and 73 deletions.
36 changes: 18 additions & 18 deletions app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ html(lang="en" ng-app='Kanoevents')
h1 Live Match Capture
.pure-g.events
.pure-u-1-2.eventsHolder
input(type='text' ng-model='player1' placeholder='Player 1 Name')
button.button-point.pure-button.pure-button-primary(ng-click='pointWon(player1, player2)') Point won
button.button-point.pure-button.pure-button-primary(ng-click='smashPoint(player1, player2)') Smash point
button.button-point.pure-button.pure-button-primary(ng-click='lobPoint(player1, player2)') Lob point
button.button-inplay.pure-button.pure-button-primary(ng-click='let(player1)') Let
button.button-inplay.pure-button.pure-button-primary(ng-click='rallyHit(player1)') Rally hit
button.button-inplay.pure-button.pure-button-primary(ng-click='goodServe(player1)') Good serve
button.button-lostpoint.pure-button.pure-button-primary(ng-click='badServe(player1)') Bad serve
input(type='text' ng-model='player1.name' placeholder='Player 1 Name')
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='pointWon(player1, player2)') Point won
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='smashPoint(player1, player2)') Smash point
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='lobPoint(player1, player2)') Lob point
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='let(player1)') Let
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='rallyHit(player1)') Rally hit
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='goodServe(player1)') Good serve
button.button-lostpoint.pure-button.pure-button-primary(ng-show='match' ng-click='badServe(player1)') Bad serve
.pure-u-1-2.eventsHolder
input(type='text' ng-model='player2' placeholder='Player 2 Name')
button.button-point.pure-button.pure-button-primary(ng-click='pointWon(player2, player1)') Point won
button.button-point.pure-button.pure-button-primary(ng-click='smashPoint(player2, player1)') Smash point
button.button-point.pure-button.pure-button-primary(ng-click='lobPoint(player2, player1)') Lob point
button.button-inplay.pure-button.pure-button-primary(ng-click='let(player2)') Let
button.button-inplay.pure-button.pure-button-primary(ng-click='rallyHit(player2)') Rally hit
button.button-inplay.pure-button.pure-button-primary(ng-click='goodServe(player2)') Good serve
button.button-lostpoint.pure-button.pure-button-primary(ng-click='badServe(player2)') Bad serve
input(type='text' ng-model='player2.name' placeholder='Player 2 Name')
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='pointWon(player2, player1)') Point won
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='smashPoint(player2, player1)') Smash point
button.button-point.pure-button.pure-button-primary(ng-show='match' ng-click='lobPoint(player2, player1)') Lob point
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='let(player2)') Let
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='rallyHit(player2)') Rally hit
button.button-inplay.pure-button.pure-button-primary(ng-show='match' ng-click='goodServe(player2)') Good serve
button.button-lostpoint.pure-button.pure-button-primary(ng-show='match' ng-click='badServe(player2)') Bad serve
#footer
button.pure-button.pure-button-primary(ng-click='startMatch(player1, player2)') Start Match
button.pure-button.pure-button-primary(ng-class='{"pure-button-disabled" : !player1.name || !player2.name}' ng-show='!match' ng-click='startMatch(player1, player2); match = true') Start Match
ul#updates
li(ng-repeat="update in updates track by $index"): {{update}}
li(ng-repeat="update in updates track by $index") {{update}}
87 changes: 60 additions & 27 deletions app/js/controllers/mainCtrl.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,63 @@ angular.module('kanoevents.controllers')
.controller('mainCtrl', ['$scope', '$rootScope', '$location', '$http',
function($scope, $rootScope, $location, $http) {
$scope.updates = [];
$scope.players = {};
$scope.player1 = {
name: undefined,
score: 0
};

$scope.player2 = {
name: undefined,
score: 0
};

$scope.startMatch = function (player, opponent) {
var message = player + ' has just started a game of 11 against ' + opponent;
var payload = {
text: message
};
if (!player.name || !opponent.name) {
alert('Please enter the name of the player before proceeding');
return false;
}
else {
var message = player.name + ' has just started a game of 11 against ' + opponent.name;
var payload = {
text: message
};

initialiseMatch(player, opponent);
postMessage(payload);
postMessage(payload);
}
};

$scope.pointWon = function (player, opponent) {
var message = player + ' just won a point over ' + opponent;
var message = player.name + ' just won a point over ' + opponent.name;
var payload = {
text: message
};

$scope[player].score++;
addPoint(player, opponent);
postMessage(payload);
};

$scope.smashPoint = function (player, opponent) {
var message = player + ' just won a smash point!';
var message = player.name + ' just won a smash point!';
var payload = {
text: message
};

$scope[player].score++;
addPoint(player, opponent);
postMessage(payload);
};

$scope.lobPoint = function (player, opponent) {
var message = player + ' just won a point by lobbing ' + opponent;
var message = player.name + ' just won a point by lobbing ' + opponent.name;
var payload = {
text: message
};

$scope[player].score++;
addPoint(player, opponent);
postMessage(payload);
};

$scope.let = function (player) {
var message = 'Let!\n' + player + ' has to serve again!';
var message = 'Let!\n' + player.name + ' has to serve again!';
var payload = {
text: message
};
Expand All @@ -54,7 +67,7 @@ angular.module('kanoevents.controllers')
};

$scope.rallyHit = function (player) {
var message = player + ' had a rally hit!';
var message = player.name + ' had a rally hit!';
var payload = {
text: message
};
Expand All @@ -63,7 +76,7 @@ angular.module('kanoevents.controllers')
};

$scope.goodServe = function (player) {
var message = 'That was a good serve by ' + player;
var message = 'That was a good serve by ' + player.name;
var payload = {
text: message
};
Expand All @@ -72,26 +85,46 @@ angular.module('kanoevents.controllers')
};

$scope.badServe = function (player) {
var message = 'That was a poor serve by ' + player;
var message = 'That was a poor serve by ' + player.name;
var payload = {
text: message
};

postMessage(payload);
};

function initialiseMatch(player, opponent) {
$scope.players.player1 = player;
$scope.players.player2 = opponent;
$scope[player] = { score : 0 };
$scope[opponent] = { score : 0 };
}

function addScoresToPayload(payload) {
var score1 = $scope[$scope.players.player1].score,
score2 = $scope[$scope.players.player2].score;
var score1 = $scope.player1.score,
score2 = $scope.player2.score;

payload.text = "[" + score1 + " - " + score2 + "] " + payload.text;
payload.text = "`[" + score1 + " - " + score2 + "]` " + payload.text;
}

function addPoint (player, opponent) {
player.score += 1;
getWinner(player, opponent);
}

// show the total scores for the match
function getWinner (player, opponent) {
var message;

if (player.score === 11) {
message = player.name + ' has just won the game against ' + opponent.name;
}

else if (opponent.score === 11) {
message = opponent.name + ' has just won the game against ' + player.name;
}

var payload = {
text: message
};

if (message) {
postMessage(payload);
alert(message);
}
}

function postMessage (payload) {
Expand Down
2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html lang="en" ng-app="Kanoevents"><head><title>Kano Events</title><meta name="HandheldFriendly" content="True"><meta name="MobileOptimized" content="320"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><base href="/"><!-- CDN provided--><link href="//fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css"><link href="https://cdn.jsdelivr.net/g/[email protected](pure-min.css+grids-responsive-min.css)" rel="stylesheet"><!--build:css /dist/style.css--><link rel="stylesheet" href="/css/styles.css" type="text/css"><!-- endbuild--><!-- CDN provided scripts--><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.js"></script><script type="text/javascript" src="https://cdn.firebase.com/js/client/2.2.7/firebase.js"></script><script type="text/javascript" src="https://cdn.firebase.com/libs/angularfire/1.1.2/angularfire.min.js"></script><!-- endcdn--><script type="text/javascript" src="/js/index.js"></script></head><body ng-controller="mainCtrl"><div id="header"><h1>Live Match Capture</h1></div><div class="pure-g events"><div class="pure-u-1-2 eventsHolder"><input type="text" ng-model="player1" placeholder="Player 1 Name"><button ng-click="pointWon(player1, player2)" class="button-point pure-button pure-button-primary">Point won </button><button ng-click="smashPoint(player1, player2)" class="button-point pure-button pure-button-primary">Smash point </button><button ng-click="lobPoint(player1, player2)" class="button-point pure-button pure-button-primary">Lob point </button><button ng-click="let(player1)" class="button-inplay pure-button pure-button-primary">Let </button><button ng-click="rallyHit(player1)" class="button-inplay pure-button pure-button-primary">Rally hit </button><button ng-click="goodServe(player1)" class="button-inplay pure-button pure-button-primary">Good serve </button><button ng-click="badServe(player1)" class="button-lostpoint pure-button pure-button-primary">Bad serve</button></div><div class="pure-u-1-2 eventsHolder"><input type="text" ng-model="player2" placeholder="Player 2 Name"><button ng-click="pointWon(player2, player1)" class="button-point pure-button pure-button-primary">Point won</button><button ng-click="smashPoint(player2, player1)" class="button-point pure-button pure-button-primary">Smash point</button><button ng-click="lobPoint(player2, player1)" class="button-point pure-button pure-button-primary">Lob point </button><button ng-click="let(player2)" class="button-inplay pure-button pure-button-primary">Let</button><button ng-click="rallyHit(player2)" class="button-inplay pure-button pure-button-primary">Rally hit </button><button ng-click="goodServe(player2)" class="button-inplay pure-button pure-button-primary">Good serve </button><button ng-click="badServe(player2)" class="button-lostpoint pure-button pure-button-primary">Bad serve</button></div></div><div id="footer"><button ng-click="startMatch(player1, player2)" class="pure-button pure-button-primary">Start Match</button><ul id="updates"><li ng-repeat="update in updates track by $index">{{update}}</li></ul></div></body></html>
<!DOCTYPE html><html lang="en" ng-app="Kanoevents"><head><title>Kano Events</title><meta name="HandheldFriendly" content="True"><meta name="MobileOptimized" content="320"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><base href="/"><!-- CDN provided--><link href="//fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css"><link href="https://cdn.jsdelivr.net/g/[email protected](pure-min.css+grids-responsive-min.css)" rel="stylesheet"><!--build:css /dist/style.css--><link rel="stylesheet" href="/css/styles.css" type="text/css"><!-- endbuild--><!-- CDN provided scripts--><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.js"></script><script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.js"></script><script type="text/javascript" src="https://cdn.firebase.com/js/client/2.2.7/firebase.js"></script><script type="text/javascript" src="https://cdn.firebase.com/libs/angularfire/1.1.2/angularfire.min.js"></script><!-- endcdn--><script type="text/javascript" src="/js/index.js"></script></head><body ng-controller="mainCtrl"><div id="header"><h1>Live Match Capture</h1></div><div class="pure-g events"><div class="pure-u-1-2 eventsHolder"><input type="text" ng-model="player1.name" placeholder="Player 1 Name"><button ng-show="match" ng-click="pointWon(player1, player2)" class="button-point pure-button pure-button-primary">Point won </button><button ng-show="match" ng-click="smashPoint(player1, player2)" class="button-point pure-button pure-button-primary">Smash point </button><button ng-show="match" ng-click="lobPoint(player1, player2)" class="button-point pure-button pure-button-primary">Lob point </button><button ng-show="match" ng-click="let(player1)" class="button-inplay pure-button pure-button-primary">Let </button><button ng-show="match" ng-click="rallyHit(player1)" class="button-inplay pure-button pure-button-primary">Rally hit </button><button ng-show="match" ng-click="goodServe(player1)" class="button-inplay pure-button pure-button-primary">Good serve </button><button ng-show="match" ng-click="badServe(player1)" class="button-lostpoint pure-button pure-button-primary">Bad serve</button></div><div class="pure-u-1-2 eventsHolder"><input type="text" ng-model="player2.name" placeholder="Player 2 Name"><button ng-show="match" ng-click="pointWon(player2, player1)" class="button-point pure-button pure-button-primary">Point won</button><button ng-show="match" ng-click="smashPoint(player2, player1)" class="button-point pure-button pure-button-primary">Smash point</button><button ng-show="match" ng-click="lobPoint(player2, player1)" class="button-point pure-button pure-button-primary">Lob point </button><button ng-show="match" ng-click="let(player2)" class="button-inplay pure-button pure-button-primary">Let</button><button ng-show="match" ng-click="rallyHit(player2)" class="button-inplay pure-button pure-button-primary">Rally hit </button><button ng-show="match" ng-click="goodServe(player2)" class="button-inplay pure-button pure-button-primary">Good serve </button><button ng-show="match" ng-click="badServe(player2)" class="button-lostpoint pure-button pure-button-primary">Bad serve</button></div></div><div id="footer"><button ng-class="{&quot;pure-button-disabled&quot; : !player1.name || !player2.name}" ng-show="!match" ng-click="startMatch(player1, player2); match = true" class="pure-button pure-button-primary">Start Match</button><ul id="updates"><li ng-repeat="update in updates track by $index">{{update}}</li></ul></div></body></html>
Loading

0 comments on commit 4b9a93e

Please sign in to comment.