diff --git a/data/resultats.yaml b/data/resultats.yaml index aa1476e..0846357 100644 --- a/data/resultats.yaml +++ b/data/resultats.yaml @@ -3,7 +3,6 @@ - date: 2016/06/02 # year/month/day time: "18:00" - name: Jeudi 2 juin home: gris away: jaune home_points: 6 @@ -12,7 +11,6 @@ - date: 2016/06/02 # year/month/day time: "20:30" - name: Jeudi 2 juin home: bleu away: rouge home_points: 9 @@ -20,7 +18,6 @@ - date: 2016/06/09 # year/month/day time: "18:00" - name: Jeudi 9 juin home: bleu away: jaune home_points: 7 @@ -29,7 +26,6 @@ - date: 2016/06/09 # year/month/day time: "20:30" - name: Jeudi 9 juin home: gris away: rouge home_points: 4 @@ -37,7 +33,6 @@ - date: 2016/06/16 # year/month/day time: "18:00" - name: Jeudi 16 juin home: bleu away: jaune home_points: 4 @@ -46,7 +41,6 @@ - date: 2016/06/16 # year/month/day time: "20:30" - name: Jeudi 16 juin home: gris away: rouge home_points: ~ diff --git a/gulpfile.js b/gulpfile.js index 2a6db98..c3ae212 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -43,5 +43,7 @@ gulp.task('webserver', function(){ }); gulp.task('dev', ['default', 'webserver'], function(){ - return gulp.watch('./scss/*.scss', ['sass']); + gulp.watch('./scss/*.scss', ['sass']); + return gulp.watch('./data/*.yaml', ['compile-results']); + }); diff --git a/script/resultParser.js b/script/resultParser.js index cb07f71..94b04e6 100644 --- a/script/resultParser.js +++ b/script/resultParser.js @@ -3,7 +3,7 @@ define(['_'], function(_) { resultParser._addJSDateToResult = function(res){ var date = res.date.split('/'); - var time = res.time.split(':'); + var time = _.isString(res.time) ? res.time.split(':'): [0, 0]; res.jsDate = new Date( Number(date[0]), Number(date[1]) - 1, @@ -30,7 +30,7 @@ define(['_'], function(_) { } }); return _.map(ret, function(games, date){ - return {date: date, games: games}; + return resultParser._addJSDateToResult({date: date, games: games}); }); }; @@ -40,20 +40,59 @@ define(['_'], function(_) { return _.uniq(_.concat(homeTeams, awayTeams)); }; + resultParser._getWinner = function(res){ + if(res.home_points > res.away_points){ + return res.home; + } + if(res.home_points < res.away_points){ + return res.away; + } + }; + resultParser._hasWon = function(res, team){ + return resultParser._getWinner(res) == team; + }; + + resultParser._hasLost = function(res, team){ + return !resultParser._isDraw(res) && resultParser._getWinner(res) != team; + }; + + resultParser._isDraw = function(res){ + return res.home_points == res.away_points; + }; + + resultParser._getPointsFor = function(res, team){ + if(res.home == team){ + return res.home_points; + } + return res.away_points; + }; + + resultParser._getPointsForOpponent = function(res, team){ + if(res.home == team){ + return res.away_points; + } + return res.home_points; + }; resultParser._getTeamStats = function(rawResults, team){ - var ret = {team: team, gamePlayed: 0}; + var ret = { + team: team, gamePlayed: 0, victories: 0, + defeats: 0, draws: 0, pointsFor: 0, pointsAgaint: 0}; _.each(rawResults, function(res){ if((team != res.home && team != res.away) || !_.isNumber(res.home_points)){ return; } ret.gamePlayed += 1; + ret.victories += resultParser._hasWon(res, team) ? 1: 0; + ret.defeats += resultParser._hasLost(res, team) ? 1: 0; + ret.draws += resultParser._isDraw(res) ? 1: 0; + ret.pointsFor += resultParser._getPointsFor(res, team); + ret.pointsAgaint += resultParser._getPointsForOpponent(res, team); }); return ret; }; - resultParser.getStats = function(rawResults){ var allTeams = resultParser._getAllTeams(rawResults); var getTeamStats = _.partial(resultParser._getTeamStats, rawResults); diff --git a/script/util.js b/script/util.js index 3e1d220..4d33f07 100644 --- a/script/util.js +++ b/script/util.js @@ -15,6 +15,16 @@ define(['m'], function(m) { "in urna ultrices accumsan. Donec sed od"; }; + util.formatDate = function(date){ + var monthNames = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', + 'juiller', 'août', 'septembre', 'octobre', 'novembre', + 'decembre']; + return [date.getDate(), + monthNames[date.getMonth()], + date.getFullYear()].join(' '); + + }; + util.facebookLink = function(){ return m('a[href="https://www.facebook.com/LigueDeBalleLesPhenix"]', m('i.fa.fa-facebook-square') diff --git a/script/views/calendarPage.js b/script/views/calendarPage.js index fa26edb..87299df 100644 --- a/script/views/calendarPage.js +++ b/script/views/calendarPage.js @@ -1,4 +1,4 @@ -define(['m', '_', 'resultParser', 'teams', 'views/topNavBar', 'views/footer'], function(m, _, resultParser, teams, topNavBar, footer) { +define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/footer'], function(m, _, util, resultParser, teams, topNavBar, footer) { var statsView = {}; statsView.controller = function(){ @@ -97,7 +97,7 @@ define(['m', '_', 'resultParser', 'teams', 'views/topNavBar', 'views/footer'], f }; schedulView._gameView = function(gameNight){ - return m('div', [m('h3', gameNight.date), + return m('div', [m('h3', util.formatDate(gameNight.jsDate)), m('table.uk-table.uk-table-hover.uk-table-condensed.uk-table-striped', m('tbody',[ _.map(gameNight.games, schedulView._gameRow), diff --git a/script/views/mainPage.js b/script/views/mainPage.js index a6d946d..6422340 100644 --- a/script/views/mainPage.js +++ b/script/views/mainPage.js @@ -43,7 +43,7 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu nextGameDaySchedule._getGamesRow = function(game){ return m('tr', [ - m('td', 'small txt'), + m('td', game.date), m('td', game.time), m('td', game.away), m('td', game.home) @@ -55,11 +55,11 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu }; nextGameDaySchedule.view = function(games){ - return m('table.uk-table.uk-table-hover.uk-table-striped.uk-table-condensed', - m('tbody', [ - nextGameDaySchedule._getTableHead(), + return m('table.uk-table.uk-table-hover.uk-table-striped.uk-table-condensed',[ + nextGameDaySchedule._getTableHead(), + m('tbody', nextGameDaySchedule._getGamesRows(games) - ])); + )]); }; var mainPageSchedule = {};