Skip to content

Commit

Permalink
created functions for posting messages
Browse files Browse the repository at this point in the history
  • Loading branch information
Ladi Adenusi andela-ladenusi committed Jul 13, 2015
1 parent fe815fc commit 2a406eb
Show file tree
Hide file tree
Showing 6 changed files with 244 additions and 24 deletions.
36 changes: 18 additions & 18 deletions app/index.jade
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ html(lang="en" ng-app='Kanoevents')
head
title Kano Events
include shared/head
body
body(ng-controller='mainCtrl')
#header
h1 Live Match Capture
.pure-g.events
.pure-u-1-2.eventsHolder
input(type='player1', placeholder='Player 1 Name')
button.button-point.pure-button.pure-button-primary(type='submit') Point won
button.button-point.pure-button.pure-button-primary(type='submit') Smash point
button.button-point.pure-button.pure-button-primary(type='submit') Lob point
button.button-inplay.pure-button.pure-button-primary(type='submit') Let
button.button-inplay.pure-button.pure-button-primary(type='submit') Rally hit
button.button-inplay.pure-button.pure-button-primary(type='submit') Good serve
button.button-lostpoint.pure-button.pure-button-primary(type='submit') Bad serve
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
.pure-u-1-2.eventsHolder
input(type='player2', placeholder='Player 2 Name')
button.button-point.pure-button.pure-button-primary(type='submit') Point won
button.button-point.pure-button.pure-button-primary(type='submit') Smash point
button.button-point.pure-button.pure-button-primary(type='submit') Lob point
button.button-inplay.pure-button.pure-button-primary(type='submit') Let
button.button-inplay.pure-button.pure-button-primary(type='submit') Rally hit
button.button-inplay.pure-button.pure-button-primary(type='submit') Good serve
button.button-lostpoint.pure-button.pure-button-primary(type='submit') Bad serve
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-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(type='submit') Start Match
button.pure-button.pure-button-primary(ng-click='startMatch(player1, player2)') Start Match
98 changes: 96 additions & 2 deletions app/js/controllers/mainCtrl.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,99 @@
angular.module('kanoevents.controllers')
.controller('mainCtrl', ['$scope', '$rootScope', '$location',
function($scope, $rootScope, $location) {
.controller('mainCtrl', ['$scope', '$rootScope', '$location', '$http',
function($scope, $rootScope, $location, $http) {

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

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

$scope.let = function (player) {
var message = 'Let!\n' + player + ' has to serve again!';
var payload = {
text: message
};

postMessage(payload);
};

$scope.rallyHit = function (player) {
var message = player + ' had a rally hit!';
var payload = {
text: message
};

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

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

$http(request)
.success(function (data, status, headers, config) {
console.log(data);
return true;
})
.error(function (data, status, headers, config) {
console.log('Error: ', data);
return false;
});
}
}
]);
32 changes: 32 additions & 0 deletions public/css/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
body {
padding: 10px;
}
button,
input {
margin: 2px;
text-align: center;
}
.button-point {
background-color: #008000;
width: 80%;
}
.button-lostpoint {
background-color: #f00;
width: 80%;
}
.button-inplay {
background-color: #c0c0c0;
width: 80%;
}
.eventsHolder {
text-align: center;
}
.events {
width: 100%;
}
#header {
text-align: center;
}
#footer {
text-align: center;
}
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"><!--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><span>Kano Events</span></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(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>
98 changes: 96 additions & 2 deletions public/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,102 @@ Kanoevents.config(['$routeProvider','$locationProvider',
}]);
},{"./controllers/mainCtrl.js":2,"./services/refs.js":3}],2:[function(require,module,exports){
angular.module('kanoevents.controllers')
.controller('mainCtrl', ['$scope', '$rootScope', '$location',
function($scope, $rootScope, $location) {
.controller('mainCtrl', ['$scope', '$rootScope', '$location', '$http',
function($scope, $rootScope, $location, $http) {

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

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

$scope.let = function (player) {
var message = 'Let!\n' + player + ' has to serve again!';
var payload = {
text: message
};

postMessage(payload);
};

$scope.rallyHit = function (player) {
var message = player + ' had a rally hit!';
var payload = {
text: message
};

postMessage(payload);
};

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

postMessage(payload);
};

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

postMessage(payload);
};

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

$http(request)
.success(function (data, status, headers, config) {
console.log(data);
return true;
})
.error(function (data, status, headers, config) {
console.log('Error: ', data);
return false;
});
}
}
]);

Expand Down
2 changes: 1 addition & 1 deletion public/shared/head.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<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"/><!--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>
<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>

0 comments on commit 2a406eb

Please sign in to comment.