From e34b2133275fab757701316714bb555a805d7986 Mon Sep 17 00:00:00 2001 From: didier amyot Date: Tue, 23 May 2017 22:29:06 -0400 Subject: [PATCH] blah blah blah --- data/players.clear.yaml | 18 +++++++++++++++ script/teams.js | 12 +++++++++- script/views/playersPage.js | 44 +++++++++++++++++++++++++++---------- 3 files changed, 62 insertions(+), 12 deletions(-) diff --git a/data/players.clear.yaml b/data/players.clear.yaml index 89b6c5c..d4d1ba0 100644 --- a/data/players.clear.yaml +++ b/data/players.clear.yaml @@ -287,3 +287,21 @@ score: 3 team: rouge tel: 224-921-0391x3813 +- + email: brossard@chat.miaou + name: "brossard" + score: 3 + team: vert + tel: (432)161-1237 +- + email: hobo@chat.miaou + name: "hobo" + score: 1 + team: vert + tel: (432)161-1237 +- + email: western@chat.miaou + name: "western" + score: 2 + team: vert + tel: (432)161-1237 diff --git a/script/teams.js b/script/teams.js index f4a0615..28e5246 100644 --- a/script/teams.js +++ b/script/teams.js @@ -1,6 +1,7 @@ define(['m', '_'], function (m, _) { var teams = {}; +<<<<<<< HEAD teams.getTeamColor = function(teamName){ if(teamName == 'jaune'){ return '#FF0'; @@ -21,8 +22,17 @@ define(['m', '_'], function (m, _) { return '#008000'; } - return undefined; + teams.teams = function(){ + return [ + {name: 'jaune', color: '#FF0'}, + {name:'rouge', color: '#F00'}, + {name:'bleu', color: '#00F'}, + {name:'gris', color: '#808080'}, + {name:'vert', color: '#008000'}, + {name: 'orange', color: '#FFA500'} + ]; }; + return teams; }); diff --git a/script/views/playersPage.js b/script/views/playersPage.js index f15441b..1dce451 100644 --- a/script/views/playersPage.js +++ b/script/views/playersPage.js @@ -34,16 +34,18 @@ define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) { ); }; + playersSelectionBar.getTeamInput = function(model, team){ + var label = team.name; + return playersSelectionBar.teamInput(label, team.name, model.activatedTeams); + }; + playersSelectionBar.chooseTeams = function(model){ return m('form.uk-grid', {style: {'margin-top': '1em'}}, m('div.uk-width-1-6', m('label', m('b', 'Équipes'))), m('div.uk-width-5-6', - m('div.uk-grid', [ - playersSelectionBar.teamInput('Bleu', 'bleu', model.activatedTeams), - playersSelectionBar.teamInput('Rouge', 'rouge', model.activatedTeams), - playersSelectionBar.teamInput('Jaune', 'jaune', model.activatedTeams), - playersSelectionBar.teamInput('Gris', 'gris', model.activatedTeams), - ])) + m('div.uk-grid', + _.map(teams.teams(), _.partial(playersSelectionBar.getTeamInput, model)) + )) ); }; @@ -60,12 +62,18 @@ define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) { ]))); }; - playersSelectionBar.searchBar = function(){ + playersSelectionBar.searchFactory = function(model){ + return function(){ + model.searchTerm(this.value); + }; + }; + + playersSelectionBar.searchBar = function(model){ var icon = m('i.fa.fa-search', {'aria-hidden': true}, ''); return m('form.uk-grid', {style: {'margin-top': '1em'}}, m('div.uk-width-1-1.', {style: 'text-align: right;'}, m('label', m('b', icon, " Rechercher ")), - m('input', {type: 'text'}))); + m('input', {type: 'text', onkeypress: playersSelectionBar.searchFactory(model)}))); }; playersSelectionBar.controller = function(model){ @@ -247,11 +255,22 @@ define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) { }; }; - playersTable.tableBody = function(players, visibleTeams, activatedScores){ + playersTable.playerHasBeenSearchedFor = function(searchTerm){ + return function(player){ + if(_.isEmpty(searchTerm)){ + return true; + } + return new RegExp(searchTerm, 'i').test(player.name); + + }; + } + + playersTable.tableBody = function(players, visibleTeams, activatedScores, searchTerm){ return m('tbody', _(players) .filter(playersTable.onlyPlayerOfTeams(visibleTeams)) .filter(playersTable.onlyPlayerOfScore(activatedScores)) + .filter(playersTable.playerHasBeenSearchedFor(searchTerm)) .map(playersTable.playerRowAndInformation).flatten().value() ); }; @@ -262,7 +281,9 @@ define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) { playersTable.tableHeader(ctrl.model.sorting), playersTable.tableBody(ctrl.players(), ctrl.model.activatedTeams(), - ctrl.model.activatedScores() + ctrl.model.activatedScores(), + ctrl.model.searchTerm() + ) ); }; @@ -271,9 +292,10 @@ define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) { playersPage.controller = function(){ var model = {}; - model.activatedTeams = m.prop(['bleu', 'rouge', 'jaune', 'gris']); + model.activatedTeams = m.prop(_.map(teams.teams(), 'name')); model.activatedScores = m.prop([1, 2, 3, 4, 5]); model.sorting = m.prop([{key: 'team', direction: 1}, {key: 'score', direction: -1}, {key: 'name', direction: 1}]); + model.searchTerm = m.prop(''); return model; };