Skip to content

Commit

Permalink
some bug fixes, added messages to appear on view and score tally
Browse files Browse the repository at this point in the history
  • Loading branch information
Arif Shanji committed Jul 13, 2015
1 parent 02911eb commit f267e01
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 19 deletions.
10 changes: 6 additions & 4 deletions app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ html(lang="en" ng-app='Kanoevents')
button.button-lostpoint.pure-button.pure-button-primary(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(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(player2') Let
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
#footer
button.pure-button.pure-button-primary(ng-click='startMatch(player1, player2)') Start Match
ul#updates
li(ng-repeat="update in updates track by $index"): {{update}}
39 changes: 32 additions & 7 deletions app/js/controllers/mainCtrl.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
angular.module('kanoevents.controllers')
.controller('mainCtrl', ['$scope', '$rootScope', '$location', '$http',
function($scope, $rootScope, $location, $http) {
$scope.updates = [];
$scope.players = {};

$scope.startMatch = function (player, opponent) {
var message = player + ' has just started a game of 11 against ' + opponent;
var payload = {
text: message
};

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

Expand All @@ -17,6 +20,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand All @@ -26,6 +30,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand All @@ -35,6 +40,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand Down Expand Up @@ -74,16 +80,35 @@ angular.module('kanoevents.controllers')
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;

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

function postMessage (payload) {

// send message to slack channel using the webhook integration
payload = JSON.stringify(payload);
var webhookURL = 'https://hooks.slack.com/services/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',
request = {
method: 'POST',
url: webhookURL,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: payload
};
request = {
method: 'POST',
url: webhookURL,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
};

addScoresToPayload(payload);
request.data = JSON.stringify(payload);

// update view
$scope.updates.push( payload.text );

$http(request)
.success(function (data, status, headers, config) {
Expand Down
4 changes: 4 additions & 0 deletions app/styles/styles.styl
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ button, input
#footer
text-align center

ul#updates
list-style none
text-align left

4 changes: 4 additions & 0 deletions public/css/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@ input {
#footer {
text-align: center;
}
ul#updates {
list-style: none;
text-align: left;
}
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(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(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></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" 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>
39 changes: 32 additions & 7 deletions public/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,16 @@ Kanoevents.config(['$routeProvider','$locationProvider',
angular.module('kanoevents.controllers')
.controller('mainCtrl', ['$scope', '$rootScope', '$location', '$http',
function($scope, $rootScope, $location, $http) {
$scope.updates = [];
$scope.players = {};

$scope.startMatch = function (player, opponent) {
var message = player + ' has just started a game of 11 against ' + opponent;
var payload = {
text: message
};

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

Expand All @@ -47,6 +50,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand All @@ -56,6 +60,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand All @@ -65,6 +70,7 @@ angular.module('kanoevents.controllers')
text: message
};

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

Expand Down Expand Up @@ -104,16 +110,35 @@ angular.module('kanoevents.controllers')
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;

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

function postMessage (payload) {

// send message to slack channel using the webhook integration
payload = JSON.stringify(payload);
var webhookURL = 'https://hooks.slack.com/services/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',
request = {
method: 'POST',
url: webhookURL,
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
data: payload
};
request = {
method: 'POST',
url: webhookURL,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
};

addScoresToPayload(payload);
request.data = JSON.stringify(payload);

// update view
$scope.updates.push( payload.text );

$http(request)
.success(function (data, status, headers, config) {
Expand Down

0 comments on commit f267e01

Please sign in to comment.