87 Commits
Author SHA1 Message Date
didier amyot dfefef815b fix rebasing 2017-05-23 22:37:04 -04:00
didier amyot e34b213327 blah blah blah 2017-05-23 22:35:11 -04:00
didier amyot f67080571a stuff 2017-05-23 22:33:30 -04:00
didier amyot 5d630e28f4 added new schedule 2017-05-13 09:58:11 -04:00
didier amyot 337508e72a changed parc to fucking george vernot 2017-05-07 10:07:29 -04:00
didier amyot ae5b3365e2 added season 2017 email 2017-05-06 10:44:36 -04:00
didier amyot 5a0582a37b fixed build.js 2017-04-23 11:28:48 -04:00
didier amyot f711a5876d moved away from bower 2017-04-23 11:19:06 -04:00
didier amyot bb3a616f7c saison retarde 2017-04-23 10:21:57 -04:00
didier amyot 3c9cacd8ea changed dated 2017-03-19 09:28:43 -04:00
didier amyot 378e8ab7cc updated message 2017-03-19 08:56:36 -04:00
didier amyot cc73d82288 oupsi 2017-03-18 16:32:57 -04:00
didier amyot 7fc849842f new season inscrition time! 2017-03-18 09:16:04 -04:00
didier amyot 16d8c290d8 updted game schedule 2017-03-16 20:45:09 -04:00
didier amyot 09a08a3c68 changed parc 2017-03-16 20:05:53 -04:00
didier amyot dd932664e0 updated uikit version 2017-02-19 11:09:55 -05:00
didier amyot d08ffff206 updated last meeting updates 2017-02-19 10:51:47 -05:00
didier amyot da77c69063 Update resultats.yaml 2016-09-13 12:41:01 +00:00
didier amyot a0e5a806ef Update resultats.yaml 2016-09-11 22:48:47 +00:00
didier amyot 2576d75f2f Update resultats.yaml 2016-09-06 13:08:20 +00:00
didier amyot 62a18dbd6d Update resultats.yaml 2016-08-31 13:22:05 +00:00
didier amyot dd089045d2 ended final regular season 2016-08-29 19:40:07 -04:00
didier amyot 450cd26ff0 added new scores 2016-08-19 13:55:32 -04:00
didier amyot 7129c334a6 added new games 2016-08-18 13:48:54 -04:00
didier amyot 06eade5a4d Update resultats.yaml 2016-08-17 02:09:23 +00:00
didier amyot 56d893e6a4 Update resultats.yaml 2016-08-15 20:12:21 +00:00
didier amyot 93776f6b72 Update resultats.yaml 2016-08-11 20:18:57 +00:00
didier amyot a89892e2fb Update resultats.yaml 2016-07-22 20:14:49 +00:00
didier amyot f5d343aca2 Update resultats.yaml 2016-07-15 17:57:15 +00:00
didier amyot 6b0652092c ordered the team results 2016-07-12 13:32:10 -04:00
didier amyot b36c7ebcdc Update resultats.yaml 2016-07-08 15:22:55 +00:00
didier amyot 7181d871c0 Update resultats.yaml 2016-07-06 11:53:47 +00:00
didier amyot 9690b60a6d Update resultats.yaml 2016-07-06 02:17:47 +00:00
didier amyot 76950581b4 added new result 2016-06-26 09:30:40 -04:00
didier amyot 813a4968b0 added rain day for today 2016-06-16 17:58:04 -04:00
didier amyot 7a447278be Update resultats.yaml 2016-06-11 15:21:58 +00:00
didier amyot 418e161cc7 fix result typo 2016-06-10 16:42:51 -04:00
didier amyot fe1ed751e1 added cache to gitlab pages 2016-06-10 15:41:46 -04:00
didier amyot df9d8b9109 changed cache buster 2016-06-10 18:30:37 +00:00
didier amyot 41a563ff34 updated results 2016-06-10 18:04:03 +00:00
didier amyot b3e48ebdfa added cache buster in for all result url 2016-06-02 08:48:55 -04:00
didier amyot 137912eaa4 added cache buster 2016-06-02 08:45:22 -04:00
didier amyot a0ae5e89b7 re-added new schedule 2016-06-01 19:15:21 -04:00
didier amyot de0b35f476 cancel season (or almost) 2016-05-11 19:36:05 -04:00
didier amyot 3eae9143fa added real schedule! 2016-05-06 19:47:44 +00:00
didier amyot 61f32a74da fixed many bugs 2016-04-30 11:06:30 -04:00
didier amyot 7e54032605 pined node version in build pack 2016-04-27 20:10:19 -04:00
didier amyot 18938a77d0 changed way to get encrypted data to make cross server requests possible 2016-04-27 19:40:01 -04:00
didier amyot d1c01b6bf9 pointed player list to private repo 2016-04-23 23:53:26 -04:00
didier amyot 1d0a2d4b22 renamed files 2016-04-23 23:34:03 -04:00
didier amyot 930f3cc799 added spritz in build.js 2016-04-23 23:23:55 -04:00
didier amyot 15120d48fc use https instead of ssh for npm 2016-04-23 23:19:22 -04:00
didier amyot bc5a3ce364 added default params to deployemnt 2016-04-23 23:11:04 -04:00
didier amyot 2a689dd20b added encryption to player list 2016-04-23 23:02:19 -04:00
didier amyot 9f113a8588 fixed article order 2016-03-31 09:49:37 -04:00
didier amyot 1d1b697d46 added a new news 2016-03-31 09:01:35 -04:00
didier amyot 9e794ed81e change website url 2016-03-20 00:49:57 +00:00
didier amyot 325360084b improved dropdown nav for cell phones 2016-03-19 17:42:51 -04:00
didier amyot d7ce36f1bc improved top bar for small devices 2016-03-19 15:31:56 -04:00
didier amyot a158a9e323 re-implemented user details 2016-03-19 13:42:20 -04:00
didier amyot efd279691a refactored out the players page 2016-03-19 13:07:05 -04:00
didier amyot bfd839b4cb refactored login page out 2016-03-19 12:59:56 -04:00
didier amyot 73f4f3b8e0 fixed bugs on member page 2016-03-19 12:45:34 -04:00
Comite Ballephenix d6be795177 updated readme files with the new repo url 2016-03-18 01:27:06 +00:00
didier amyot 999bf1afd5 updated public information 2016-03-17 20:00:58 -04:00
didier amyot b009ad7115 added first news! 2016-03-13 22:22:33 -04:00
didier amyot 639a493dfa empty game list 2016-03-13 22:00:33 -04:00
didier amyot c200acc7bc loaded article in main and news page 2016-03-13 21:57:08 -04:00
didier amyot 80f4a937b6 compiled articles in gulp 2016-03-13 21:48:53 -04:00
didier amyot 3f75921194 update a result a for demo 2016-03-06 23:54:00 +00:00
didier amyot ff993beb55 added sorting of players-teams-score in confidential page. 2016-03-06 10:45:07 -05:00
didier amyot a314f5d804 improved ui on different screen sizes 2016-03-05 11:27:28 -05:00
didier amyot 54e2edad11 removed broken dependencies 2016-02-22 21:45:56 -05:00
didier amyot df37a6c5a4 type 2016-02-22 21:34:24 -05:00
didier amyot b1b657b6f7 working evening 2016-02-22 21:27:59 -05:00
didier amyot 7f0bbbb55b prepared for encryption 2016-02-19 16:20:08 -05:00
didier amyot 83e957965f Merge branch 'master' of gitlab.com:didiercrunch/phenix-website 2016-02-15 21:41:30 -05:00
didier amyot 005b008b26 Merge branch 'member_section' 2016-02-15 21:39:23 -05:00
didier amyot 5569fa14f6 ui ui ui 2016-02-15 21:36:20 -05:00
didier amyot f2ad5aced8 changed css 2016-02-15 20:32:25 -05:00
didier amyot 3dcd306ccc example of change 2016-02-16 00:22:34 +00:00
didier amyot 45622ee2a9 started to implement the member section 2016-02-15 19:18:45 -05:00
didier amyot d0a163c873 started to implement the member section 2016-02-15 10:29:15 -05:00
didier amyot e49884ccc8 implemented games points 2016-02-07 15:13:57 -05:00
didier amyot 1f0870529b update readme 2016-02-07 19:42:35 +00:00
didier amyot e3e1499d63 added default pages 2016-02-07 14:32:28 -05:00
didier amyot f90d1621f0 added r.js to build 2016-02-07 13:31:34 -05:00
58 changed files with 16678 additions and 219 deletions

No files matched your search

+2
View File
@@ -3,3 +3,5 @@ lib/*
css/* css/*
/api/resultats.json /api/resultats.json
/index.html /index.html
/main-built.js
/api
+9 -1
View File
@@ -1,4 +1,4 @@
image: node image: "node:4.4.3"
before_script: before_script:
# install ssh-agent # install ssh-agent
@@ -6,9 +6,17 @@ before_script:
pages: pages:
stage: deploy stage: deploy
cache:
paths:
- node_modules/
- lib/
script: script:
- export SALT="salt_and_pepper"
- export KEY="qwerty"
- export PLAYER_LIST_LOCATION="//ballephenix.gitlab.io/private/players.spritz.js"
- npm install - npm install
- node_modules/.bin/gulp prod - node_modules/.bin/gulp prod
- node_modules/.bin/r.js -o build.js
- rm -rf node_modules .public public - rm -rf node_modules .public public
- mkdir .public - mkdir .public
- cp -r * .public - cp -r * .public
+41
View File
@@ -1 +1,42 @@
# Site Web de Balle Phénix # Site Web de Balle Phénix
![Image Alt](https://gitlab.com/ballephenix/website/raw/master/images/phenix_logo.png)
## introduction
Vous trouverez le code source du site web pour les Phénix ici. Le site web
en lui-même est accessible au http://ballephenix.com ou au
https://ballephenix.gitlab.io/website/.
### Structure du site web.
Premièrement, mille excuses pour mes choix hétéroclites. J'ai décidé d'explorer
de nouvels technologies avec ce projet. En conséquence, le code est un peu
difficile à comprendre à première vue mais il est __tellement__ plus cool!
#### Choix
* mithril.js comme framework dans le fureteur
* require.js pour les dépendances
* uikit avec sass comme framework css
* gulp pour la compilation
* gitlab pour le deployment
---
# English Version
All the source code is in english. The source code is for a static web
side for The softball league 'Balle Phénix'.
## How to build
$ npm install
$ node_modules/.bin/gulp help
# How it is made
* mithril.js as client side framework
* uikit as css framework
* coffee and love
+1 -7
View File
@@ -16,11 +16,5 @@
"lib", "lib",
"test", "test",
"tests" "tests"
], ]
"dependencies": {
"uikit": "~2.24.3",
"mithril": "~0.2.1",
"lodash": "~4.2.1",
"almond": "~0.3.1"
}
} }
+5 -4
View File
@@ -1,11 +1,12 @@
({ ({
baseUrl: "script", baseUrl: "script",
paths: { paths: {
m: '../lib/mithril/mithril.min', m: '../node_modules/mithril/mithril.min',
_: '../lib/lodash/dist/lodash.min', _: '../node_modules/lodash/lodash.min',
requireLib: '../lib/requirejs/require' spritz: '../node_modules/spritzjs/dist/spritz',
requireLib: '../node_modules/requirejs/require'
}, },
include: 'main', include: 'main',
name: "../lib/almond/almond", name: "../node_modules/almond/almond",
out: "main-built.js" out: "main-built.js"
}) })
+24
View File
@@ -0,0 +1,24 @@
[title]
innerMarkdown = """
## Parc Beaubien
"""
[meta]
innerMarkdown = """
Vendredi 19 aout 2016
"""
[body]
innerMarkdown = """
Bonjour à tous les phénixiens phénixiennes.
Dès la semaine prochaine, **nous nous relocaliserons au parc Beaubien**, dans
Rosemont. [Google map](http://bit.ly/2bPWCY8) vous aidera a trouver votre
chemin.
Votre comité de balle les phénix.
"""
+61
View File
@@ -0,0 +1,61 @@
[title]
innerMarkdown = """
## Inscription 2016!
"""
[meta]
innerMarkdown = """
Lundi 14 mars 2016
"""
[body]
innerMarkdown = """
Bonjour à tous les phénixiens phénixiennes.
Eh bien oui l'hiver tire à ça fin et il sera bientôt temps de sortir gants et
batons (en bon français mites et battes) pour jouer à notre sport préféré:
la balle-molle.
**L'inscription aura lieu le vendredi 18 mars 2016 de 19h30 à 21h30 à la [taverne
le normandie](http://bit.ly/1pmNWu8)**; situé au [1295 rue amherst,
Montréal](http://bit.ly/1QUC6Ou). Il s'agit de l'endroit ou nous avons fêté la
fin de la dernière saison.
Le prix de l'inscription est de 110$ incluant la location du chandail au coût de
10$. La valeur de la location du chandail vous sera rendu en fin de saison
lorsque vous le rendrez.
Pour ceux et celles qui ne pourront être présent à l'inscription, vous pouvez
vous inscrire par courrier. Imprimez, remplissez et envoyez le formulaire
avec le chèque.
Nous avons très hâte de vous y voir et de fêter avec vous!!!
Votre comité de balle les phénix.
[<i class="fa fa-paperclip"></i> Formulaire d'inscription](/files/inscription2016.pdf)
"""
[smallBody]
innerMarkdown = """
Bonjour à tous les phénixiens phénixiennes.
Eh bien oui l'hiver tire à ça fin et il sera bientôt temps de sortir gants et
batons (en bon français mites et battes) pour jouer à notre sport préféré:
la balle-molle.
**L'inscription aura lieu le vendredi 18 mars 2016 de 19h30 à 21h30 à la [taverne
le normandie](http://bit.ly/1pmNWu8)**; situé au [1295 rue amherst,
Montréal](http://bit.ly/1QUC6Ou). Il s'agit de l'endroit ou nous avons fêté la
fin de la dernière saison.
**[lire la suite ...](#/nouvelles)**
"""
+60
View File
@@ -0,0 +1,60 @@
[title]
innerMarkdown = """
## Inscription 2017!
"""
[meta]
innerMarkdown = """
Samedi 18 mars 2017
"""
[body]
innerMarkdown = """
Bonjour à tous les phénixiens phénixiennes.
Bien que subtilement, l'hiver tire à sa fin et et la saison de la balle-molle
arrive a grand pas. Comble du bonheur, nous retrouvons notre parc, Walter-Stewart,
et gardons notre plage horaire, les jeudi soirs.
**L'inscription aura lieu le vendredi 24 mars 2017 de 18h30 à 21h30 à la [taverne
le normandie](http://bit.ly/1pmNWu8)**; situé au [1295 rue amherst,
Montréal](http://bit.ly/1QUC6Ou). Il s'agit de l'endroit ou nous avons fêté la
fin de la dernière saison.
Le prix de l'inscription est de **110$** incluant la location du chandail au coût de
10$. La valeur de la location du chandail vous sera rendue en fin de saison
lorsque vous le rendrez.
Pour ceux et celles qui ne pourront être présent à l'inscription, vous pouvez
vous inscrire par courrier. Imprimez, remplissez et envoyez le formulaire
avec le chèque.
Nous allons jouer une **partie hors concours le 4 mai** et la **saison
commencera le jeudi 11 mai**.
Nous avons très hâte de vous y voir et de fêter avec vous!!!
Votre comité de balle les phénix.
[<i class="fa fa-paperclip"></i> Formulaire d'inscription](/files/inscription2017.pdf)
"""
[smallBody]
innerMarkdown = """
Bonjour à tous les phénixiens phénixiennes.
Bien que subtilement, l'hiver tire à sa fin et et la saison de la balle-molle
arrive a grand pas. Comble du bonheur, nous retrouvons notre parc, Walter-Stewart,
et gardons notre plage horaire, les jeudi soirs.
**L'inscription aura lieu le vendredi 24 mars 2017 de 18h30 à 21h30 à la [taverne
le normandie](http://bit.ly/1pmNWu8)**; situé au [1295 rue amherst,
Montréal](http://bit.ly/1QUC6Ou). Il s'agit de l'endroit ou nous avons fêté la
fin de la dernière saison.
**[lire la suite ...](#/nouvelles)**
"""
+50
View File
@@ -0,0 +1,50 @@
[title]
innerMarkdown="""
## Inscription 2016 et Dates!
"""
[meta]
innerMarkdown = """
Jeudi 31 mars 2016
"""
[body]
innerMarkdown = """
Bonjour a tous,
Permièrement, il est encore temps de s'inscrire. Par ordre de l'Association de
Sport de Ball de Montréal, **l'inscription doit être fini le 15 avril**. Donc
imprimez et envovez votre inscription le plus vite possible!
Deuxièmement, nous avons des nouvelles sur les dates. La **saison commencera
le jeudi 12 mai**. Nous allons jouer une **partie hors concours le 5 mai**.
Comme aux saisons précédentes, nous jouerons les jeudi soir au parc
Walter-Stewart et y organiserons une pratique les dimanches matins.
Pour les nouveaux, les **évaluations se feront dans les alentours du 30 avril**.
Il s'agit d'une journee ou les capitaines vous observerons pour savoir votre
niveau dans l'optique de creer des équipes les plus égales que possible.
Votre commite ballephenix adoré!
[<i class="fa fa-paperclip"></i> Formulaire d'inscription](/files/inscription2016.pdf)
"""
[smallBody]
innerMarkdown = """
Bonjour a tous,
Permièrement, il est encore temps de s'inscrire. Par ordre de l'Association de
Sport de Ball de Montréal, **l'inscription doit être fini le 15 avril**. Donc
imprimez et envovez votre inscription le plus vite possible!
**[lire la suite ...](#/nouvelles)**
"""
+50
View File
@@ -0,0 +1,50 @@
[title]
innerMarkdown = """
## Saison 2017!
"""
[meta]
innerMarkdown = """
Samedi 6 mai 2017
"""
[body]
innerMarkdown = """
Bonjour a toutes et a tous!
Nous avons quelques problèmes avec le parc Walter-Stewart. La ville
re-tourbera bientôt le terrain et nous n'allons pouvoir l'utiliser avant la
semaine du 19 juin. D'ici la, nous allons etre hébergé au parc [Georges-Vernot](http://bit.ly/2qMdsdm)
dans St-Michel.
Avec tout ces délais, nous sommes obligé de commencer la saison un peu plus
tard que prévue. La saison commencera donc le **jeudi 18 mai 2017**. Il n'y
aura donc aucun match pré-saison.
Nous sommes toujours a la **recherche de capitaines**. La case "je veux devenir
capitaine" ne fut pas des plus populaire. Nous cherchons donc intensément
quatre capitaines au sang neuf pour diriger cinq équipes au sang chaud.
En résumé.
* La saison debute le **jeudi 18 mai 2017** au parc **[Georges-Vernot](http://bit.ly/2qMdsdm)**
* Nous retrouverons le parc [Walter-Stewart](http://bit.ly/2qDlnMW) la semaine du 19 juin
* Il nous manque 4 capitaines
"""
[smallBody]
innerMarkdown = """
Bonjour a toutes et a tous!
Nous avons quelques problèmes avec le parc Walter-Stewart. La ville
re-tourbera bientôt le terrain et nous n'allons pouvoir l'utiliser avant la
semaine du 19 juin. D'ici la, nous allons etre hébergé au parc [Georges-Vernot](http://bit.ly/2qMdsdm)
dans St-Michel.
**[lire la suite ...](#/nouvelles)**
"""
+20
View File
@@ -0,0 +1,20 @@
[title]
innerMarkdown = """
## Début saison 2017 retardée
"""
[meta]
innerMarkdown = """
Samedi 23 avril 2017
"""
[body]
innerMarkdown = """
Suite à la situation au parc Walter-Stewart, nous n'avons toujours pas de date définie
pour le début de la saison. La situation devrait se régler incessamment. Nous vous
donnerons des nouvelles dès que nous en aurons.
Merci beaucoup,
Comité ballephenix!
"""
+33
View File
@@ -0,0 +1,33 @@
[title]
innerMarkdown = """
# Report de la saison 2016
"""
[meta]
innerMarkdown = """
Mercredi 11 mai 2016
"""
[body]
innerMarkdown = """
Le parc walter-stewart est présentement en réaménagement. Conséquemment, nous
devons reporter la saison jusqu'à la fin juin, date à laquelle le parc devrait
être prêt.
Plusieurs hypothèses sont envisagées pour ne pas perdre de matchs. Nous pensons
à jouer les mercredis et jeudis ou rallonger la saison durant le mois de
septembre. Malheuresement, nous ne pouvons prendre une désision officielle
avant de prendre connaissance de la date exacte de réouverture du parc.
Votre comité de balle les phénix.
"""
[smallBody]
innerMarkdown = """
Le parc walter-stewart est présentement en réaménagement. Conséquemment, nous
devons reporter la saison jusqu'à la fin juin, date à laquelle le parc devrait
être prêt.
**[lire la suite ...](#/nouvelles)**
"""
+307
View File
@@ -0,0 +1,307 @@
---
-
email: fleet80@hickle.org
name: "Delle Emmerich"
score: 2
team: rouge
tel: 613-805-2793x858
-
email: qschamberger@yahoo.com
name: "Susie Quitzon MD"
score: 3
team: rouge
tel: 1-332-714-0777x97469
-
email: kianna90@yahoo.com
name: "Johnathan Leuschke"
score: 5
team: jaune
tel: 974-275-2040
-
email: susannah.grant@hotmail.com
name: "Dr. Wendell Sporer"
score: 3
team: rouge
tel: 04691879363
-
email: millicent46@adams.info
name: "Emile Powlowski II"
score: 1
team: bleu
tel: 1-449-950-7363x2633
-
email: cormier.codi@hotmail.com
name: "Gardner Willms"
score: 2
team: bleu
tel: 625-516-1325
-
email: kamryn.kovacek@gmail.com
name: "Aliya Vandervort"
score: 4
team: rouge
tel: "250.915.3706"
-
email: marian97@beahan.org
name: "Gaige Kautzer"
score: 2
team: gris
tel: "298.694.0319"
-
email: patsy.kerluke@satterfieldberge.com
name: "Orilla Brakus"
score: 5
team: rouge
tel: (506)015-3098x8355
-
email: alpha30@connelly.com
name: "Dr. Thurman O'Hara"
score: 5
team: bleu
tel: 07469452414
-
email: thompson.willene@gmail.com
name: "Rachael Medhurst DDS"
score: 2
team: rouge
tel: 1-602-031-0376
-
email: inader@kunze.info
name: "Mr. Ingram Thompson"
score: 2
team: rouge
tel: (109)873-9483x211
-
email: desiree.harris@gmail.com
name: "Dr. Saul Streich Jr."
score: 5
team: gris
tel: 1-249-486-6759x84328
-
email: samir83@hills.com
name: "Kimberley Kihn"
score: 5
team: jaune
tel: 304.586.6687x3262
-
email: egrady@emmerichpadberg.com
name: "Arra Boyer"
score: 3
team: gris
tel: "485.730.8331"
-
email: bgoodwin@gmail.com
name: "Miss Kaylan Robel DVM"
score: 4
team: gris
tel: "321.945.7155"
-
email: angelic86@homenick.com
name: "Kyson Ruecker"
score: 4
team: bleu
tel: 1-017-690-5278
-
email: val.sawayn@gmail.com
name: "Shaun Goodwin"
score: 3
team: jaune
tel: (271)085-2639x251
-
email: kya.wunsch@gmail.com
name: "Mr. Denzell Casper"
score: 2
team: bleu
tel: 948-754-1786x17035
-
email: delmus18@stoltenberg.org
name: "Bluford Marvin Jr."
score: 2
team: jaune
tel: (268)984-3065x3634
-
email: kihn.zackery@gmail.com
name: "Lucio Kub"
score: 2
team: jaune
tel: 185-942-2355x8756
-
email: jade24@aufderharkuhic.com
name: "Mr. Justice Pollich DVM"
score: 1
team: bleu
tel: 1-918-319-1713
-
email: vgoyette@hotmail.com
name: "Bose Ankunding"
score: 4
team: gris
tel: "265.582.6145"
-
email: raltenwerth@lueilwitz.com
name: "Harlen Harber"
score: 1
team: jaune
tel: (081)424-2803
-
email: thiel.bode@reynolds.info
name: "Linnie Abshire"
score: 1
team: rouge
tel: 1-809-325-8148x5271
-
email: istracke@lueilwitz.com
name: "Mr. Juwan Zemlak"
score: 5
team: jaune
tel: 982.535.6849x5299
-
email: boysie44@hartmanngraham.com
name: "Mr. Tahj Bernhard"
score: 1
team: rouge
tel: +57(9)5038029147
-
email: harm91@dare.net
name: "Dr. Lyle Lakin PhD"
score: 4
team: bleu
tel: 079-078-9724
-
email: prosacco.dolphus@dickens.com
name: "Bertram Schuster"
score: 4
team: gris
tel: (917)409-8168x00826
-
email: elian04@stroman.com
name: "Viviana Howell"
score: 5
team: rouge
tel: 1-414-103-3954x02444
-
email: hakim08@hotmail.com
name: "Marques Goodwin"
score: 1
team: rouge
tel: (649)195-3556x81548
-
email: nigel.kilback@gmail.com
name: "Rayfield Lubowitz"
score: 2
team: bleu
tel: (231)457-7181
-
email: rogahn.tollie@lehnerwillms.com
name: "Miss Luz Altenwerth"
score: 3
team: gris
tel: 00248382520
-
email: reilly.velia@hansenhegmann.com
name: "Lilly Brekke"
score: 1
team: rouge
tel: 006.284.1261x54374
-
email: batz.dessa@rippin.org
name: "Jay Aufderhar"
score: 3
team: rouge
tel: 960-144-7624x406
-
email: garth.barton@kerluke.com
name: "Ms. Contina Pfeffer DDS"
score: 5
team: jaune
tel: (352)043-9218x9064
-
email: mmcglynn@gusikowski.com
name: "Robyn Lakin"
score: 1
team: bleu
tel: 667-492-9674x3911
-
email: breinger@yahoo.com
name: "Latonia Kuhlman"
score: 2
team: bleu
tel: 404.860.5529x107
-
email: jamarion.sipes@gmail.com
name: "Dr. Camryn Goyette"
score: 4
team: bleu
tel: 648-481-0991x380
-
email: consuelo37@gmail.com
name: "Khloe Altenwerth"
score: 4
team: gris
tel: 1-480-994-8256x873
-
email: icie.kohler@murphyrohan.com
name: "Pearl Dicki"
score: 1
team: rouge
tel: +04(3)0376370559
-
email: miya43@yahoo.com
name: "Christoper Botsford"
score: 2
team: gris
tel: (731)031-5128x77337
-
email: xschmidt@yahoo.com
name: "Lauren Bins"
score: 1
team: gris
tel: (503)215-2332x77244
-
email: rempel.earley@waelchi.net
name: "Sigmund Stroman"
score: 4
team: rouge
tel: (719)103-8927x0887
-
email: gustav.graham@kihn.com
name: "Brook Nolan"
score: 2
team: gris
tel: "642.931.3403"
-
email: hettinger.emit@cartwright.com
name: "Mr. Gaston Bartell"
score: 5
team: jaune
tel: "00536147705"
-
email: tlittle@marquardtfunk.info
name: "Ansel Schimmel"
score: 3
team: bleu
tel: (432)161-1237
-
email: blangosh@hotmail.com
name: "Kiefer Funk"
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
+408 -50
View File
@@ -1,63 +1,421 @@
--- ---
# generated by https://scheduler.leaguelobster.com/edit/236693/new-league/new-season/#
- -
date: 2016/06/02 # year/month/day date: 2017/5/18 # year/month/day
time: "18:00" time: "18:30"
home: gris home: jaune # t6
away: jaune away: bleu # t5
home_points: 6
away_points: 7
-
date: 2016/06/02 # year/month/day
time: "20:30"
home: bleu
away: rouge
home_points: 9
away_points: 2
-
date: 2016/06/09 # year/month/day
time: "18:00"
home: bleu
away: jaune
home_points: 7
away_points: 6
-
date: 2016/06/09 # year/month/day
time: "20:30"
home: gris
away: rouge
home_points: 4
away_points: 8
-
date: 2016/06/16 # year/month/day
time: "18:00"
home: bleu
away: jaune
home_points: 4
away_points: 7
-
date: 2016/06/16 # year/month/day
time: "20:30"
home: gris
away: rouge
home_points: ~ home_points: ~
away_points: ~ away_points: ~
rain: false
- -
date: 2016/06/23 # year/month/day date: 2017/5/18 # year/month/day
time: "18:00" time: "20:00"
home: bleu home: orange # t3
away: jaune away: gris # t1
home_points: ~ home_points: ~
away_points: ~ away_points: ~
rain: false
- -
date: 2016/06/23 # year/month/day date: 2017/5/18 # year/month/day
time: "20:30" time: "21:30"
home: gris home: vert # t2
away: rouge away: rouge # t4
home_points: ~ home_points: ~
away_points: ~ away_points: ~
rain: false
# WEEK 2
-
date: 2017/5/25 # year/month/day
time: "18:30"
home: gris # t1
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/25 # year/month/day
time: "20:00"
home: rouge # t4
away: jaune # t6
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/25 # year/month/day
time: "21:30"
home: vert # t2
away: orange # t3
home_points: ~
away_points: ~
rain: false
# WEEK 3
-
date: 2017/6/1 # year/month/day
time: "18:30"
home: jaune # t6
away: gris # t1
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/1 # year/month/day
time: "20:00"
home: bleu # t5
away: vert # t2
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/1 # year/month/day
time: "21:30"
home: orange # t3
away: rouge # t4
home_points: ~
away_points: ~
rain: false
# WEEK 4
-
date: 2017/6/8 # year/month/day
time: "18:30"
home: vert # t2
away: gris # t1
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/8 # year/month/day
time: "20:00"
home: rouge # t4
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/8 # year/month/day
time: "21:30"
home: orange # t3
away: jaune # t6
home_points: ~
away_points: ~
rain: false
# WEEK 5
-
date: 2017/6/15 # year/month/day
time: "18:30"
home: jaune # t6
away: vert # t2
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/15 # year/month/day
time: "20:00"
home: gris # t1
away: rouge # t4
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/15 # year/month/day
time: "21:30"
home: bleu # t5
away: orange # t3
home_points: ~
away_points: ~
rain: false
# WEEK 6
-
date: 2017/6/22 # year/month/day
time: "18:30"
home: bleu # t5
away: jaune # t6
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/22 # year/month/day
time: "20:00"
home: orange # t3
away: gris # t1
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/22 # year/month/day
time: "21:30"
home: rouge # t4
away: vert # t2
home_points: ~
away_points: ~
rain: false
# WEEK 7
-
date: 2017/6/29 # year/month/day
time: "18:30"
home: jaune # t6
away: rouge # t4
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/29 # year/month/day
time: "20:00"
home: gris # t1
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/29 # year/month/day
time: "21:30"
home: vert # t2
away: orange # t3
home_points: ~
away_points: ~
rain: false
# WEEK 8
-
date: 2017/7/6 # year/month/day
time: "18:30"
home: bleu # t5
away: vert # t2
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/6 # year/month/day
time: "20:00"
home: gris # t1
away: jaune # t6
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/6 # year/month/day
time: "21:30"
home: orange # t3
away: rouge # t4
home_points: ~
away_points: ~
rain: false
# WEEK 9
-
date: 2017/7/13 # year/month/day
time: "18:30"
home: jaune # t6
away: orange # t3
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/13 # year/month/day
time: "20:00"
home: rouge # t4
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/13 # year/month/day
time: "21:30"
home: vert # t2
away: gris # t1
home_points: ~
away_points: ~
rain: false
# WEEK 10
-
date: 2017/7/20 # year/month/day
time: "18:30"
home: gris # t1
away: rouge # t4
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/20 # year/month/day
time: "20:00"
home: bleu # t5
away: orange # t3
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/20 # year/month/day
time: "21:30"
home: vert # t2
away: jaune # t6
home_points: ~
away_points: ~
rain: false
# WEEK 11
-
date: 2017/7/27 # year/month/day
time: "18:30"
home: rouge # t4
away: vert # t2
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/27 # year/month/day
time: "20:00"
home: jaune # t6
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/7/27 # year/month/day
time: "21:30"
home: orange # t3
away: gris # t1
home_points: ~
away_points: ~
rain: false
# WEEK 12
-
date: 2017/8/3 # year/month/day
time: "18:30"
home: gris # t1
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/3 # year/month/day
time: "20:00"
home: rouge # t4
away: jaune # t6
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/3 # year/month/day
time: "21:30"
home: vert # t2
away: orange # t3
home_points: ~
away_points: ~
rain: false
# WEEK 13
-
date: 2017/8/10 # year/month/day
time: "18:30"
home: jaune # t6
away: gris # t1
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/10 # year/month/day
time: "20:00"
home: bleu # t5
away: vert # t2
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/10 # year/month/day
time: "21:30"
home: orange # t3
away: rouge # t4
home_points: ~
away_points: ~
rain: false
# WEEK 14
-
date: 2017/8/17 # year/month/day
time: "18:30"
home: rouge # t4
away: bleu # t5
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/17 # year/month/day
time: "20:00"
home: vert # t2
away: gris # t1
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/17 # year/month/day
time: "21:30"
home: orange # t3
away: jaune # t6
home_points: ~
away_points: ~
rain: false
# WEEK 15
-
date: 2017/8/24 # year/month/day
time: "18:30"
home: gris # t1
away: rouge # t4
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/24 # year/month/day
time: "20:00"
home: bleu # t5
away: orange # t3
home_points: ~
away_points: ~
rain: false
-
date: 2017/8/24 # year/month/day
time: "21:30"
home: jaune # t6
away: vert # t2
home_points: ~
away_points: ~
rain: false
+281
View File
@@ -0,0 +1,281 @@
---
-
date: 2017/5/04 # year/month/day
time: "18:45"
away: jaune
home: rouge
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/04 # year/month/day
time: "20:20"
away: gris
home: bleu
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/11 # year/month/day
time: "18:45"
away: rouge
home: gris
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/11 # year/month/day
time: "20:20"
away: bleu
home: jaune
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/18 # year/month/day
time: "18:45"
away: gris
home: jaune
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/18 # year/month/day
time: "20:20"
away: rouge
home: bleu
home_points: ~
away_points: ~
rain: false
-
date: 2017/5/25 # year/month/day
time: "18:45"
away: bleu
home: gris
home_points: ~
away_points: ~
-
date: 2017/5/25 # year/month/day
time: "20:20"
away: rouge
home: jaune
home_points: ~
away_points: ~
-
date: 2017/6/1 # year/month/day
time: "18:45"
away: jaune
home: bleu
home_points: ~
away_points: ~
-
date: 2017/6/1 # year/month/day
time: "20:20"
away: gris
home: rouge
home_points: ~
away_points: ~
-
date: 2017/6/8 # year/month/day
time: "18:45"
away: bleu
home: rouge
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/8 # year/month/day
time: "20:20"
away: jaune
home: gris
home_points: ~
away_points: ~
rain: false
-
date: 2017/6/15 # year/month/day
time: "18:45"
away: jaune
home: rouge
home_points: ~
away_points: ~
-
date: 2017/6/15 # year/month/day
time: "20:20"
away: gris
home: bleu
home_points: ~
away_points: ~
-
date: 2017/6/22 # year/month/day
time: "18:45"
away: rouge
home: gris
home_points: ~
away_points: ~
-
date: 2017/6/22 # year/month/day
time: "20:20"
away: bleu
home: jaune
home_points: ~
away_points: ~
-
date: 2017/6/29 # year/month/day
time: "18:45"
away: gris
home: jaune
home_points: ~
away_points: ~
-
date: 2017/6/29 # year/month/day
time: "20:20"
away: rouge
home: bleu
home_points: ~
away_points: ~
-
date: 2017/7/6 # year/month/day
time: "18:45"
away: bleu
home: gris
home_points: ~
away_points: ~
-
date: 2017/7/6 # year/month/day
time: "20:20"
away: rouge
home: jaune
home_points: ~
away_points: ~
-
date: 2017/7/13 # year/month/day
time: "18:45"
away: jaune
home: bleu
home_points: ~
away_points: ~
-
date: 2017/7/13 # year/month/day
time: "20:20"
away: gris
home: rouge
home_points: ~
away_points: ~
-
date: 2017/7/20 # year/month/day
time: "18:45"
away: bleu
home: rouge
home_points: ~
away_points: ~
-
date: 2017/7/20 # year/month/day
time: "20:20"
away: jaune
home: gris
home_points: ~
away_points: ~
-
date: 2017/7/27 # year/month/day
time: "18:45"
away: jaune
home: rouge
home_points: ~
away_points: ~
-
date: 2017/7/27 # year/month/day
time: "20:20"
away: gris
home: bleu
home_points: ~
away_points: ~
-
date: 2017/8/3 # year/month/day
time: "18:45"
away: rouge
home: gris
home_points: ~
away_points: ~
-
date: 2017/8/3 # year/month/day
time: "20:20"
away: bleu
home: jaune
home_points: ~
away_points: ~
-
date: 2017/8/10 # year/month/day
time: "18:45"
away: jaune
home: rouge
home_points: ~
away_points: ~
-
date: 2017/8/10 # year/month/day
time: "20:20"
away: gris
home: bleu
home_points: ~
away_points: ~
-
date: 2017/8/17 # year/month/day
time: "18:45"
away: gris
home: jaune
home_points: ~
away_points: ~
-
date: 2017/8/17 # year/month/day
time: "20:20"
away: rouge
home: bleu
home_points: ~
away_points: ~
-
date: 2017/8/25 # year/month/day
time: "18:45"
away: bleu
home: rouge
home_points: ~
away_points: ~
temporary: false
-
date: 2017/8/25 # year/month/day
time: "20:20"
away: jaune
home: gris
home_points: ~
away_points: ~
temporary: false
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+72 -12
View File
@@ -1,23 +1,23 @@
var gulp = require('gulp'); var gulp = require('gulp');
var bower = require('gulp-bower');
var help = require('gulp-task-listing'); var help = require('gulp-task-listing');
var clean = require('gulp-clean'); var clean = require('gulp-clean');
var toml = require('gulp-toml');
var sass = require('gulp-sass'); var sass = require('gulp-sass');
var rename = require("gulp-rename"); var rename = require("gulp-rename");
var yaml = require('gulp-yaml'); var yaml = require('gulp-yaml');
var template = require('gulp-template'); var template = require('gulp-template');
var wrapper = require('gulp-wrapper');
var webserver = require('gulp-webserver'); var webserver = require('gulp-webserver');
var marked = require('marked');
var spritz = require('spritzjs');
var modify = require('gulp-modify');
var _ = require('lodash');
gulp.task('help', help); gulp.task('help', help);
gulp.task('bower', function(){
return bower()
.pipe(gulp.dest('lib/'))
.on('error', console.log);
});
gulp.task('sass', ['bower'], function(){ gulp.task('sass', [], function(){
var extraSassPath = ['./lib/']; var extraSassPath = ['./node_modules/'];
return gulp.src('./scss/*.scss') return gulp.src('./scss/*.scss')
.pipe(sass({includePaths: extraSassPath}).on('error', console.log)) .pipe(sass({includePaths: extraSassPath}).on('error', console.log))
.pipe(gulp.dest('./css')); .pipe(gulp.dest('./css'));
@@ -34,28 +34,87 @@ gulp.task('compile-results', function(){
.pipe(gulp.dest('./api')); .pipe(gulp.dest('./api'));
}); });
var encryptFile = function(message){
var keyLengthInBytes = 128;
var salt = process.env.SALT || 'salt';
var stringKey = salt + (process.env.KEY || 'qwerty');
var key = spritz.hash(stringKey, keyLengthInBytes);
var byteArrMessage = spritz.stringToUtf8ByteArray(message);
var cypher = spritz.encrypt(key, byteArrMessage);
return JSON.stringify(cypher);
};
var wrapEncryptedData = function(encryptedData){
return 'window.encryptedPlayerList = ' + encryptedData + ';';
};
gulp.task('encrypt-results', ['compile-results'], function(){
return gulp.src('api/*.clear.json')
.pipe(modify({
fileModifier: function(file, content) {
return wrapEncryptedData(encryptFile(content));
}
}))
.pipe(rename(function(path){
path.basename = path.basename.replace(/\.clear$/i, '');
path.extname = '.spritz.js';
return path;
}))
.pipe(gulp.dest('./api'));
});
gulp.task('template-prod', function () { gulp.task('template-prod', function () {
return gulp.src('index.tmpl.html') return gulp.src('index.tmpl.html')
.pipe(rename("index.html")) .pipe(rename("index.html"))
.pipe(template({production: true})) .pipe(template({production: true, salt: process.env.SALT, playerListLocation: process.env.PLAYER_LIST_LOCATION}))
.pipe(gulp.dest('.')); .pipe(gulp.dest('.'));
}); });
gulp.task('template-dev', function () { gulp.task('template-dev', function () {
return gulp.src('index.tmpl.html') return gulp.src('index.tmpl.html')
.pipe(rename("index.html")) .pipe(rename("index.html"))
.pipe(template({production: false})) .pipe(template({production: false, salt: 'salt', playerListLocation: 'api/players.spritz.js'}))
.pipe(gulp.dest('.')); .pipe(gulp.dest('.'));
}); });
gulp.task('compile-articles', function(){
gulp.task('default', ['bower', 'sass', 'compile-results']); var transformArticle = function(article){
var isMarkdownKey = /markdown/i;
_.each(article, function(section, sectionName){
_.each(section, function(value, key){
if(isMarkdownKey.test(key) && _.isString(value)){
section[key] = marked(value);
}
});
});
return JSON.stringify(article, null, 4);
};
gulp.src('data/articles/**/*.toml.md')
.pipe(toml({to: transformArticle}))
.pipe(wrapper({
header: "define(['m', '_'], function (m, _ ) {\nreturn ",
footer: ';\n});\n'
}))
.pipe(rename(function(path){
path.basename = path.basename.replace(/\.toml$/i, '');
path.extname = '.js';
return path;
}))
.pipe(gulp.dest('./script/articles/'));
});
gulp.task('default', ['sass', 'encrypt-results', 'compile-results', 'compile-articles']);
gulp.task('prod', ['default', 'template-prod']); gulp.task('prod', ['default', 'template-prod']);
gulp.task('webserver', function(){ gulp.task('webserver', function(){
return gulp.src('.') return gulp.src('.')
.pipe(webserver({ .pipe(webserver({
host: '0.0.0.0',
port: 4321,
livereload: false, livereload: false,
directoryListing: false, directoryListing: false,
})); }));
@@ -64,5 +123,6 @@ gulp.task('webserver', function(){
gulp.task('dev', ['default', 'webserver', 'template-dev'], function(){ gulp.task('dev', ['default', 'webserver', 'template-dev'], function(){
gulp.watch('./scss/*.scss', ['sass']); gulp.watch('./scss/*.scss', ['sass']);
gulp.watch('*.tmpl.html', ['template-dev']); gulp.watch('*.tmpl.html', ['template-dev']);
return gulp.watch('./data/*.yaml', ['compile-results']); gulp.watch('./data/articles/**/*', ['compile-articles']);
return gulp.watch('./data/*.yaml', ['encrypt-results', 'compile-results']);
}); });
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 219 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

+9 -3
View File
@@ -1,17 +1,23 @@
<!doctype html> <!doctype html>
<html> <html>
<head> <head>
<meta charset="utf-8" >
<title>Balle Phenix</title> <title>Balle Phenix</title>
<meta charset="utf-8" /> <link rel="shortcut icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/style.css" /> <link rel="stylesheet" href="css/style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.min.css">
</head> </head>
<body> <body>
<script>
window.salt = "<%= salt %>";
</script>
<script src="<%= playerListLocation %>"></script>
<%if(production){ %> <%if(production){ %>
<script src="main-built.js"></script> <script src="main-built.js"></script>
<% }else{ %> <% }else{ %>
<script data-main="script/main" src="lib/requirejs/require.js"></script> <script data-main="script/main" src="node_modules/requirejs/require.js"></script>
<% } %> <% } %>
</body> </body>
</html> </html>
-18
View File
@@ -1,18 +0,0 @@
0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'install' ]
2 info using npm@1.4.28
3 info using node@v0.10.37
4 verbose node symlink /usr/bin/node
5 error install Couldn't read dependencies
6 error package.json ENOENT, open '/home/didier/dev/go/src/gitlab.com/didiercrunch/phenix-website/static/package.json'
6 error package.json This is most likely not a problem with npm itself.
6 error package.json npm can't find a package.json file in your current directory.
7 error System Linux 4.2.0-23-generic
8 error command "/usr/bin/node" "/usr/bin/npm" "install"
9 error cwd /home/didier/dev/go/src/gitlab.com/didiercrunch/phenix-website/static
10 error node -v v0.10.37
11 error npm -v 1.4.28
12 error path /home/didier/dev/go/src/gitlab.com/didiercrunch/phenix-website/static/package.json
13 error code ENOPACKAGEJSON
14 error errno 34
15 verbose exit [ 34, true ]
+12 -2
View File
@@ -5,13 +5,23 @@
"main": "index.html", "main": "index.html",
"dependencies": { "dependencies": {
"gulp": "^3.9.0", "gulp": "^3.9.0",
"gulp-bower": "0.0.13",
"gulp-clean": "^0.3.1", "gulp-clean": "^0.3.1",
"gulp-modify": "^0.1.1",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
"gulp-sass": "^2.1.1", "gulp-sass": "^2.1.1",
"gulp-task-listing": "^1.0.1", "gulp-task-listing": "^1.0.1",
"gulp-template": "^3.1.0", "gulp-template": "^3.1.0",
"requirejs": "^2.1.22" "gulp-toml": "^0.1.1",
"gulp-wrap": "^0.11.0",
"gulp-wrapper": "^1.0.0",
"lodash": "^4.6.1",
"marked": "^0.3.5",
"requirejs": "^2.1.22",
"uikit": "2.27.2",
"mithril": "~0.2.1",
"almond": "~0.3.1",
"requirejs": "~2.1.22",
"spritzjs": "https://gitlab.com/didiercrunch/spritzjs.git"
}, },
"devDependencies": { "devDependencies": {
"gulp-webserver": "^0.9.1", "gulp-webserver": "^0.9.1",
+1
View File
@@ -0,0 +1 @@
*.js
+21
View File
@@ -0,0 +1,21 @@
define(['m', 'articles/saison2017', 'articles/saison_retardee', 'articles/inscription_2017', 'articles/inscription', 'articles/inscription_rappel', 'articles/walter_stewart', 'articles/changement_de_parc'], function (m, saison2017, saison_retardee, inscription_2017, inscription, inscription_rappel, walter_stewart, changement_de_parc) {
var simplifyArticleStructure = function(article){
var ret = {};
_.each(article, function(section, sectionName){
ret[sectionName] = m.trust(section.innerMarkdown);
});
return ret;
};
var articles = [
saison2017,
saison_retardee,
inscription_2017,
changement_de_parc,
walter_stewart,
inscription_rappel,
inscription
];
return _.map(articles, simplifyArticleStructure);
});
+13
View File
@@ -0,0 +1,13 @@
define(['m', '_'], function (m, _ ) {
return {
"title": {
"innerMarkdown": "<h2 id=\"d-but-saison-2017-retard-e\">Début saison 2017 retardée</h2>\n"
},
"meta": {
"innerMarkdown": "<p>Samedi 23 avril 2017</p>\n"
},
"body": {
"innerMarkdown": "<p>Suite à la situation au parc Walter-Stewart, nous n&#39;avons toujours pas de date définie\npour le début de la saison. La situation devrait se régler incessamment. Nous vous\ndonnerons des nouvelles dès que nous en aurons.</p>\n<p>Merci beaucoup,</p>\n<p>Comité ballephenix!</p>\n"
}
};
});
+19
View File
@@ -0,0 +1,19 @@
define(['m'], function(m) {
return function(size){
return m("svg[viewBox='0 0 107.95 87.723']",{width: size, height: size}, [
m("defs[id='defs16']"),
m("g[id='layer1'][transform='translate(-310.1 -167.39)']", [
m("g[id='g13542'][transform='translate(-2.4761 19.309)']", [
m("path[d='m378.31 207.24c15.43-1.4 26.66-5.66 26.66-10.69 0-0.41-0.27-0.8-0.42-1.2 0.91 0.23 1.83 0.46 2.83 0.46 5.57 0 10.07-3.78 10.07-8.44 0-4.65-4.5-8.41-10.07-8.41-0.68 0-1.29 0.22-1.93 0.33 0.56-1.86 0.95-3.77 0.95-5.79 0-12.33-11.17-22.34-24.95-22.34-9.77 0-18.13 5.09-22.23 12.4-1.64-0.92-3.47-1.48-5.4-1.48-5.83 0-10.68 4.69-12.18 11.06-2.56-1.01-5.52-1.64-8.7-1.64-9.54 0-17.29 5.23-17.29 11.67 0 5.81 6.35 10.59 14.6 11.47-0.37 0.63-0.66 1.25-0.66 1.91 0 4.25 8.01 7.94 19.79 9.83'][id='path8749']", {style: {"stroke-linejoin": "round", "stroke": "#6798e9", "stroke-linecap": "round", "stroke-miterlimit": ".5", "stroke-width": "12.154", "fill": "none"}}),
m("path[d='m338.14 223.91c-8.25 7.27 1.43 13.47 5.12 3.49l2.83-9.26-7.95 5.77z'][id='path8734']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}}),
m("path[d='m367.18 225.11c-8.25 7.27 1.44 13.47 5.13 3.49l2.83-9.26-7.96 5.77z'][id='path8736']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}}),
m("path[d='m360.42 209.77c-8.25 7.27 1.44 13.47 5.12 3.49l2.83-9.26-7.95 5.77z'][id='path8738']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}}),
m("path[d='m378.31 207.24c15.43-1.4 26.66-5.66 26.66-10.69 0-0.41-0.27-0.8-0.42-1.2 0.91 0.23 1.83 0.46 2.83 0.46 5.57 0 10.07-3.78 10.07-8.44 0-4.65-4.5-8.41-10.07-8.41-0.68 0-1.29 0.22-1.93 0.33 0.56-1.86 0.95-3.77 0.95-5.79 0-12.33-11.17-22.34-24.95-22.34-9.77 0-18.13 5.09-22.23 12.4-1.64-0.92-3.47-1.48-5.4-1.48-5.83 0-10.68 4.69-12.18 11.06-2.56-1.01-5.52-1.64-8.7-1.64-9.54 0-17.29 5.23-17.29 11.67 0 5.81 6.35 10.59 14.6 11.47-0.37 0.63-0.66 1.25-0.66 1.91 0 4.25 8.01 7.94 19.79 9.83'][id='path10281']", {style: {"stroke-linejoin": "round", "stroke": "#6798e9", "stroke-linecap": "round", "stroke-miterlimit": ".5", "stroke-width": "12.154", "fill": "none"}}),
m("path[d='m338.14 223.91c-8.25 7.27 1.43 13.47 5.12 3.49l2.83-9.26-7.95 5.77z'][id='path10283']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}}),
m("path[d='m367.18 225.11c-8.25 7.27 1.44 13.47 5.13 3.49l2.83-9.26-7.96 5.77z'][id='path10285']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}}),
m("path[d='m360.42 209.77c-8.25 7.27 1.44 13.47 5.12 3.49l2.83-9.26-7.95 5.77z'][id='path10287']", {style: {"stroke": "#6798e9", "stroke-miterlimit": "3.2", "stroke-width": "8", "fill": "#6798e9"}})
])
])
]);
};
});
+11 -4
View File
@@ -1,16 +1,23 @@
requirejs.config({ requirejs.config({
// baseUrl: 'lib',
paths: { paths: {
'_': '../lib/lodash/dist/lodash.min', '_': '../node_modules/lodash/lodash.min',
'm': '../lib/mithril/mithril.min' 'm': '../node_modules/mithril/mithril.min',
'spritz': '../node_modules/spritzjs/dist/spritz'
} }
}); });
requirejs(['m', 'views/mainPage', 'views/calendarPage'], function(m, mainPage, calendarPage){ requirejs(['m', 'views/mainPage', 'views/historicPage', 'views/newsPage', 'views/calendarPage', 'views/rulesPage', 'views/photosPage', 'views/confidentialPage', 'views/contactPage', 'views/inscriptionForm'], function(m, mainPage, historicPage, newsPage, calendarPage, rulesPage, photosPage, confidentialPage, contactPage, inscriptionForm){
m.route.mode = "hash"; m.route.mode = "hash";
m.route(document.body, "/", { m.route(document.body, "/", {
"/": mainPage, "/": mainPage,
"/nouvelles": newsPage,
"/inscription-form": inscriptionForm,
"/calendrier": calendarPage, "/calendrier": calendarPage,
"/reglement": rulesPage,
"/photos": photosPage,
"/membre": confidentialPage,
"/historique": historicPage,
"/contact": contactPage
}); });
}); });
+16 -2
View File
@@ -75,9 +75,16 @@ define(['_'], function(_) {
return res.home_points; return res.home_points;
}; };
resultParser._getPointsForGame = function(res, team){
if(resultParser._hasWon(res, team)){
return 2;
}
return resultParser._isDraw(res) ? 1: 0;
};
resultParser._getTeamStats = function(rawResults, team){ resultParser._getTeamStats = function(rawResults, team){
var ret = { var ret = {
team: team, gamePlayed: 0, victories: 0, team: team, gamePlayed: 0, victories: 0, points: 0,
defeats: 0, draws: 0, pointsFor: 0, pointsAgaint: 0}; defeats: 0, draws: 0, pointsFor: 0, pointsAgaint: 0};
_.each(rawResults, function(res){ _.each(rawResults, function(res){
if((team != res.home && team != res.away) || !_.isNumber(res.home_points)){ if((team != res.home && team != res.away) || !_.isNumber(res.home_points)){
@@ -89,12 +96,19 @@ define(['_'], function(_) {
ret.draws += resultParser._isDraw(res) ? 1: 0; ret.draws += resultParser._isDraw(res) ? 1: 0;
ret.pointsFor += resultParser._getPointsFor(res, team); ret.pointsFor += resultParser._getPointsFor(res, team);
ret.pointsAgaint += resultParser._getPointsForOpponent(res, team); ret.pointsAgaint += resultParser._getPointsForOpponent(res, team);
ret.points += resultParser._getPointsForGame(res, team);
}); });
return ret; return ret;
}; };
resultParser._removeTemporaryResults = function(rawResults){
return _.filter(rawResults, function(rawResult){
return !rawResult.temporary;
});
};
resultParser.getStats = function(rawResults){ resultParser.getStats = function(rawResults){
var allTeams = resultParser._getAllTeams(rawResults); var allTeams = resultParser._getAllTeams(resultParser._removeTemporaryResults(rawResults));
var getTeamStats = _.partial(resultParser._getTeamStats, rawResults); var getTeamStats = _.partial(resultParser._getTeamStats, rawResults);
return _.map(allTeams, getTeamStats); return _.map(allTeams, getTeamStats);
}; };
+19 -12
View File
@@ -1,19 +1,26 @@
define(['m', '_'], function (m, _) { define(['m', '_'], function (m, _) {
var teams = {}; var teams = {};
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'}
];
};
teams.getTeamColor = function(teamName){ teams.getTeamColor = function(teamName){
if(teamName == 'jaune'){ var color;
return 'yellow'; _.each(teams.teams(), function(team){
} if(team.name == teamName){
if(teamName == 'rouge'){ color = team.color;
return 'red'; return false;
} }
if(teamName == 'bleu'){ });
return 'bleu'; return color;
}
if(teamName == 'gris'){
return 'grey';
}
}; };
return teams; return teams;
+33 -3
View File
@@ -1,7 +1,7 @@
define(['m'], function(m) { define(['m'], function(m) {
var util = {}; var util = {};
util.loremIpsum = function(){ util.loremIpsum = function(n){
return "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a"+ var loremIpsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a"+
" diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula "+ " diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula "+
"ac quam viverra nec consectetur ante hendrerit. Donec et mollis"+ "ac quam viverra nec consectetur ante hendrerit. Donec et mollis"+
" dolor. Praesent et diam eget libero egestas mattis sit amet"+ " dolor. Praesent et diam eget libero egestas mattis sit amet"+
@@ -13,11 +13,15 @@ define(['m'], function(m) {
"magna consequat sagittis. Curabitur dapibus enim sit amet elit "+ "magna consequat sagittis. Curabitur dapibus enim sit amet elit "+
"pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero "+ "pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero "+
"in urna ultrices accumsan. Donec sed od"; "in urna ultrices accumsan. Donec sed od";
loremIpsum = loremIpsum.split(' ');
n = n || loremIpsum.length;
return loremIpsum.splice(0, n).join(" ");
}; };
util.formatDate = function(date){ util.formatDate = function(date){
var monthNames = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', var monthNames = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
'juiller', 'août', 'septembre', 'octobre', 'novembre', 'juillet', 'août', 'septembre', 'octobre', 'novembre',
'decembre']; 'decembre'];
return [date.getDate(), return [date.getDate(),
monthNames[date.getMonth()], monthNames[date.getMonth()],
@@ -25,11 +29,37 @@ define(['m'], function(m) {
}; };
util.formatDateSmall = function(date){
var smallMonthNames = ['janv', 'févr', 'mars', 'avr', 'mai', 'juin',
'juill', 'août', 'sept', 'oct', 'nov',
'dec'];
return [date.getDate(),
smallMonthNames[date.getMonth()],
date.getFullYear() % 1000].join(' ');
};
util.join = function(arr, sep){
if(!_.isArray(arr) || arr.length < 1){
return [];
}
var ret = [arr.pop()];
_.each(arr, function(elm){
ret.push(sep);
ret.push(elm);
});
return ret;
};
util.facebookLink = function(){ util.facebookLink = function(){
return m('a[href="https://www.facebook.com/LigueDeBalleLesPhenix"]', return m('a[href="https://www.facebook.com/LigueDeBalleLesPhenix"]',
m('i.fa.fa-facebook-square') m('i.fa.fa-facebook-square')
); );
}; };
util.resultatsURL = function(){
var cacheBuster = 2;
return "api/resultats.json?_=" + cacheBuster;
};
return util; return util;
}); });
+26 -7
View File
@@ -1,4 +1,4 @@
define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/footer'], function(m, _, util, resultParser, teams, topNavBar, footer) { define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/footer', 'images/rain.svg'], function(m, _, util, resultParser, teams, topNavBar, footer, rainSvg) {
var statsView = {}; var statsView = {};
statsView.controller = function(){ statsView.controller = function(){
@@ -21,11 +21,12 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
m('td', formatStat(teamStats.pointsFor)), m('td', formatStat(teamStats.pointsFor)),
m('td', formatStat(teamStats.pointsAgaint)), m('td', formatStat(teamStats.pointsAgaint)),
m('td', formatStat(teamStats.pointsFor - teamStats.pointsAgaint)), m('td', formatStat(teamStats.pointsFor - teamStats.pointsAgaint)),
m('td', "? ") m('td', formatStat(teamStats.points))
]); ]);
}; };
statsView.mainTable = function(stats){ statsView.mainTable = function(stats){
var orderedStats = _.reverse(_.sortBy(stats, ['victories', 'pointsFor']));
return m('table.uk-table.uk-table-hover.uk-table-striped',[ return m('table.uk-table.uk-table-hover.uk-table-striped',[
m('thead', m('tr', [ m('thead', m('tr', [
m('th', 'Équipes'), m('th', 'Équipes'),
@@ -38,7 +39,7 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
m('th', 'DIF'), m('th', 'DIF'),
m('th', 'PTS') m('th', 'PTS')
])), ])),
m('tbody', _.map(stats, statsView.getStatRow)) m('tbody', _.map(orderedStats, statsView.getStatRow))
]); ]);
}; };
@@ -56,13 +57,22 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
statsView.view = function(stats){ statsView.view = function(stats){
return m('div.uk-grid', return m('div.uk-grid',
m('div.uk-width-medium-1-1.uk-width-large-1-1.uk-container-center',[ m('div.uk-width-medium-1-1.uk-width-large-1-1.uk-container-center',[
m('h2', 'Classement 2016'), m('h2', 'Classement 2017'),
statsView.mainTable(stats()), statsView.mainTable(stats()),
statsView.legend() statsView.legend()
])); ]));
}; };
var tabView = {};
tabView.view = function(){
return m('div.uk-margin', m('h2', 'Calendrier 2017'),
m('ul.uk-tab', [
m('li.uk-active', m('a', 'Saison')),
m('li', m('a', 'Éliminatoire'))
]));
};
var schedulView = {}; var schedulView = {};
@@ -85,9 +95,17 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
return !_.isNumber(points) ? '-' : points + ''; return !_.isNumber(points) ? '-' : points + '';
}; };
schedulView._gameName = function(game){
if(game.rain){
return [rainSvg('1.5em'), " ", game.time];
}
return [game.time, " ", m('span', {style: {visibility: 'hidden'}}, rainSvg('1.5em'))];
};
schedulView._gameRow = function(game){ schedulView._gameRow = function(game){
return m('tr',[ return m('tr',[
m('td', game.time), m('td', schedulView._gameName(game)),
m('td', schedulView._getTeamTag(game.home)), m('td', schedulView._getTeamTag(game.home)),
m('td', schedulView._asGamePoints(game.home_points)), m('td', schedulView._asGamePoints(game.home_points)),
m('td', 'vs'), m('td', 'vs'),
@@ -110,7 +128,7 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
schedulView.view = function(games){ schedulView.view = function(games){
return m('div.uk-grid', return m('div.uk-grid',
m('div.uk-width-large-3-5.uk-width-medium-1-1', m('div.uk-width-large-3-5.uk-width-medium-1-1',
_.concat([m('h2', 'Calendrier 2016')], _.map(games(), schedulView._gameView)))); _.concat([m('h2', 'Calendrier 2017')], _.map(games(), schedulView._gameView))));
}; };
calendarPage = {}; calendarPage = {};
@@ -118,8 +136,9 @@ define(['m', '_', 'util', 'resultParser', 'teams', 'views/topNavBar', 'views/foo
calendarPage.view = function(){ calendarPage.view = function(){
return [m.component(topNavBar), return [m.component(topNavBar),
m('div.uk-grid.uk-margin-top.uk-margin-bottom', m('div.uk-grid.uk-margin-top.uk-margin-bottom',
m('div.uk-width-large-3-5.uk-width-small-1-1.uk-container-center',[ m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center',[
m.component(statsView), m.component(statsView),
m.component(tabView),
m.component(schedulView)])), m.component(schedulView)])),
m.component(footer)]; m.component(footer)];
}; };
+20
View File
@@ -0,0 +1,20 @@
define(['m', '_', 'teams', 'views/loginPage', 'views/playersPage', 'views/topNavBar', 'views/footer'], function (m, _ , teams, loginPage, playersPage, topNavBar, footer) {
var confidentialPage = {};
confidentialPage.view = function(){
var body;
if(_.isEmpty(localStorage.getItem('secret'))){
body = loginPage;
}else{
body = playersPage;
}
return [
m.component(topNavBar),
m.component(body),
m.component(footer)
];
};
return confidentialPage;
});
+77
View File
@@ -0,0 +1,77 @@
define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], function (m, _ , util, resultParser, topNavBar, footer) {
var contactBody = {};
contactBody.logo = function(){
var style = 'height: 300px; width: 300px; background-size: 300px; background-image: url(images/logosansfond.JPG);';
return m('div.uk-cover-background.uk-container-center', {style: style});
};
contactBody.logoLine = function(){
return m('div.uk-grid.uk-margin',
m('div.uk-width-1-1', contactBody.logo()));
};
contactBody.email = function(){
return m('a[href=mailto:ballephenix@gmail.com]', 'ballephenix@gmail.com');
};
contactBody.tel = function(){
return ' (514) 563-1736';
};
contactBody.address = function(){
return m('p', ' 9200 rue hochelage, App 205', m('br'), 'Montréal, Québec H1L 0B2');
};
contactBody.website = function(){
var gitlabUrl = 'https://gitlab.com/ballephenix/website';
return m('p', ' Le site web est ouvert et accessible sur ',
m('a', {href: gitlabUrl}, 'gitlab.'));
};
contactBody.contact = function(){
return m('div.div.uk-panel.uk-panel-box.uk-panel-box-secondary.uk-container-center.uk-margin',[
m('table.uk-table',
m('tr',
m('td.uk-text-right', m('i.fa.fa-desktop')),
m('td', contactBody.email())
),
m('tr',
m('td.uk-text-right', m('i.fa.fa-phone')),
m('td', contactBody.tel())
),
m('tr',
m('td.uk-text-right', m('i.fa.fa-envelope')),
m('td', contactBody.address())
),
m('tr',
m('td.uk-text-right', m('i.fa.fa-gitlab')),
m('td', contactBody.website())
)
)
]);
};
contactBody.view = function(){
return m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-large-2-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center', [
contactBody.logoLine(),
contactBody.contact()
])
);
};
var contactPage = {};
contactPage.view = function(){
return [
m.component(topNavBar),
m.component(contactBody),
m.component(footer)
];
};
return contactPage;
});
+1 -1
View File
@@ -13,7 +13,7 @@ define(['m', '_', 'util'], function (m, _, util) {
m('div.uk-container.uk-container-center.uk-text-center', [ m('div.uk-container.uk-container-center.uk-text-center', [
m('div.uk-panel', footer.wording()), m('div.uk-panel', footer.wording()),
m('ul.uk-subnav.uk-subnav-line.uk-flex-center', m('ul.uk-subnav.uk-subnav-line.uk-flex-center',
m('li', m('a[href="mailto:info@ballephenix.com"]', 'info@ballephenix.com'))), m('li', m('a[href="mailto:ballephenix@gmail.com"]', 'ballephenix@gmail.com'))),
m('h1', util.facebookLink()) m('h1', util.facebookLink())
]) ])
); );
+28
View File
@@ -0,0 +1,28 @@
define(['m', '_', 'util', 'views/topNavBar', 'views/calendarPage'], function(m, _, util, topNavBar, calendarPage) {
var yearSelector = {};
yearSelector.view = function(){
return m('div.uk-grid',
m('div.uk-width-large-3-5.uk-width-medium-1-1.uk-container-center',
yearSelector.tab()));
};
yearSelector.tab = function(){
return m('ul.uk-tab.uk-margin-top', [
m('li.uk-active', m('a', 'Saison 2016'))
]);
};
var historicPage = {};
historicPage.view = function(){
return [
m.component(topNavBar),
m.component(yearSelector)
// m.component(calendarPage)
];
};
return historicPage;
});
+53
View File
@@ -0,0 +1,53 @@
define(['m', '_',], function (m, _ ) {
var inscriptionForm = {};
inscriptionForm.title = function(){
return m('h1.uk-width-1-1.uk-text-center', 'Inscription Balle Phénix');
};
inscriptionForm._field = function(label){
return m('label', label, m('input.uk-form-width-large', {type: 'text'}));
};
inscriptionForm.identification = function(){
return m('form.uk-form', m('fieldset',
m('legend', 'Identification'),
m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-1-2', inscriptionForm._field('Nom')),
m('div.uk-width-1-2', inscriptionForm._field('Prénom'))),
m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-1-2', inscriptionForm._field('Adresse')),
m('div.uk-width-1-2', inscriptionForm._field('Chanson préférée'))),
m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-1-3', inscriptionForm._field('Ville')),
m('div.uk-width-1-3', inscriptionForm._field('Code postal')),
m('div.uk-width-1-3', inscriptionForm._field('Tél')))
));
};
inscriptionForm.inscription = function(){
return m('form.uk-form',
m('h2.uk-width-1-1.uk-text-center', 'Inscription'),
m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-1-1',
inscriptionForm._field('Inscription en duo. Inscrivez le nom du joueur')))
);
};
inscriptionForm.view = function(){
return [
inscriptionForm.title(),
inscriptionForm.identification(),
inscriptionForm.inscription()
];
// return m('form', m('label', 'Nom', m('input', {type: 'text'})));
};
return inscriptionForm;
});
+55
View File
@@ -0,0 +1,55 @@
define(['m', '_'], function (m, _) {
var loginPage = {};
loginPage.salt = window.salt;
loginPage.controller = function(){
return {email: m.prop(''), password: m.prop('')};
};
loginPage.logo = function(){
var style = 'height: 250px; width: 250px; background-size: 250px; background-image: url(images/logosansfond.JPG);';
return m('div.uk-cover-background.uk-container-center', {style: style});
};
loginPage.logoLine = function(){
return m('div.uk-grid.uk-margin',
m('div.uk-width-1-1', loginPage.logo()));
};
loginPage.login = function(ctrl){
return function(){
localStorage.setItem('secret', loginPage.salt + ctrl.email() + ctrl.password());
return false;
};
};
loginPage.formChange = function(ctrl){
return function(evt){
ctrl[evt.target.name](evt.target.value);
};
};
loginPage.loginForm = function(ctrl){
return m('div.uk-panel.uk-panel-box.uk-panel-box-secondary.uk-width-large-1-3.uk-container-center.uk-margin', [
m('form.uk-text-center[action]', {onsubmit: loginPage.login(ctrl), onchange: loginPage.formChange(ctrl)},
m('div.uk-form-row',
m('label', "Nom d'utilisateur ",
m('input[type=text][name=email][required].uk-form-width-small', {value: ctrl.email()} ))),
m('div.uk-form-row',
m('label', "Mot de passe ",
m('input[type=password][name=password][required].uk-form-width-small', {value: ctrl.password()}))),
m('div.uk-form-row', m('button.uk-button', m("i.fa.fa-mars-double"), " Pénétrez"))
)
]);
};
loginPage.view = function(ctrl){
return m('div', [
loginPage.logoLine(),
loginPage.loginForm(ctrl)
]);
};
return loginPage;
});
+101 -33
View File
@@ -1,10 +1,10 @@
define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], function (m, _ , util, resultParser, topNavBar, footer) { define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'articles/articles', 'images/rain.svg'], function (m, _ , util, resultParser, topNavBar, footer, articles, rainSvg) {
var mainPageLogo = {}; var mainPageLogo = {};
mainPageLogo.view = function(){ mainPageLogo.view = function(){
return m('div.uk-grid.uk-hidden-small', [ return m('div.uk-grid', [
m('div.uk-large-1-3.uk-medium-2-3.uk-container-center', [ m('div.uk-large-1-3.uk-medium-2-3.uk-container-center', [
m('div.uk-cover-background', {style: 'height: 500px; width: 500px; background-size: 500px; background-image: url(images/phenix_logo.png);'}) m('div.uk-cover-background.uk-container-center.uk-margin-left.uk-margin-top',{style: 'height:300px; width: 300px; background-size: 300px; background-image: url(images/logosansfond.JPG);'})
]) ])
]); ]);
}; };
@@ -12,27 +12,40 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu
var mainPageNews = {}; var mainPageNews = {};
mainPageNews.view = function(){ mainPageNews.view = function(){
var article = _.get(articles, 0, {});
return m('div.uk-panel.uk-panel-box',[ return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', [ m('div.uk-panel-badge.uk-badge', [
m('i.fa.fa-newspaper-o') m('i.fa.fa-newspaper-o', {style: {'font-size': '1.7em'}})
]), ]),
m('h3.uk-panel-title', 'Nouvelles'), m('h3.uk-panel-title', m('a.uk-link-muted', {href: '#/nouvelles'}, article.title)),
m('p', util.loremIpsum()) m('p', article.smallBody || article.body)
]); ]);
}; };
var nextGameDaySchedule = {}; var nextGameDaySchedule = {};
nextGameDaySchedule._toDay = function(){
var now = new Date();
return new Date(now.getFullYear(), now.getMonth(), now.getDate());
};
nextGameDaySchedule.controller = function(){ nextGameDaySchedule.controller = function(){
var games = m.prop([]); var games = m.prop([]);
return m.request({method: "GET", url: "api/resultats.json"}) var toDay = new Date();
return m.request({method: "GET", url: util.resultatsURL()})
.then(games) .then(games)
.then(resultParser.getNightGames) .then(resultParser.getNightGames)
.then(function(nightGames){ .then(function(nightGames){
return nightGames[0].games; return nextGameDaySchedule._getNextNightGame(nightGames, nextGameDaySchedule._toDay()).games;
}); });
}; };
nextGameDaySchedule._getNextNightGame = function(games, date){
return _.first(_.filter(games, function(game){
return game.jsDate.getTime() >= date.getTime();
}));
};
nextGameDaySchedule._getTableHead = function(){ nextGameDaySchedule._getTableHead = function(){
return m('thead', m('tr', [ return m('thead', m('tr', [
m('td', 'Date'), m('td', 'Date'),
@@ -42,9 +55,22 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu
])); ]));
}; };
nextGameDaySchedule._responsoveText = function(largeText, smallText, rain){
var ret = [];
if(rain){
ret.push(rainSvg('1.5em'));
ret.push(' ');
}
ret.push(m('span.uk-visible-large', largeText));
ret.push(m('span.uk-hidden-large', smallText));
return ret;
};
nextGameDaySchedule._getGamesRow = function(game){ nextGameDaySchedule._getGamesRow = function(game){
return m('tr', [ return m('tr', [
m('td', util.formatDate(game.jsDate)), m('td', nextGameDaySchedule._responsoveText(util.formatDate(game.jsDate),
util.formatDateSmall(game.jsDate),
game.rain)),
m('td', game.time), m('td', game.time),
m('td', game.away), m('td', game.away),
m('td', game.home) m('td', game.home)
@@ -63,25 +89,55 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu
)]); )]);
}; };
var scheduleNotYetSet = {};
scheduleNotYetSet. view = function(){
return m('div',
m('h4', 'À venir...'),
m('p', "Suite a la situation au parc Walter-Stewart, " +
"nous n'avons toujours pas de date définie " +
"pour le début de la saison. La situation" +
"devrait se regler incessamment"));
};
var mainPageSchedule = {}; var mainPageSchedule = {};
mainPageSchedule.view = function(){ mainPageSchedule.view = function(){
return m('div.uk-panel.uk-panel-box',[ return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', m('i.fa.fa-clock-o')), m('div.uk-panel-badge.uk-badge', m('i.fa.fa-calendar', {style: {'font-size': '1.7em'}})),
m('h3.uk-panel-title', 'Horaire'), m('h3.uk-panel-title', m('a.uk-link-muted', {href: '#/calendrier'}, 'Horaire')),
m.component(nextGameDaySchedule) m.component(nextGameDaySchedule)
]); ]);
}; };
var mainMap = {}; var mainMap = {};
mainMap.getMap = function(){ mainMap.getWalterStewartMap = function(){
var iframeUrl = "http://www.openstreetmap.org/export/embed.html?bbox=-73.55889558792114%2C45.53089890181621%2C-73.55181455612183%2C45.53426212742867&amp;layer=mapnik"; var iframeUrl = "//www.openstreetmap.org/export/embed.html?bbox=-73.55936229228975%2C45.53102667048665%2C-73.55230271816255%2C45.53444249585723&amp;layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&amp;layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&amp;layer=mapnik";
var externalLink = "http://www.openstreetmap.org/#map=18/45.53258/-73.55536"; var externalLink = "http://www.openstreetmap.org/#map=17/45.53216/-73.55692";
var iframeParams = {
style: {border: '1px solid black', 'min-height': '300px'},
width: '100%',
frameborder: 0,
scrolling: 'no',
marginheight: 0,
src: iframeUrl
};
return [
m('iframe', iframeParams),
m('br'),
m('small', m('a', {href: externalLink}, 'Voir la carte'))
];
};
mainMap.getGeorgesVernotMap = function(){
// " style="border: 1px solid black"></iframe><br/><small><a href="http://www.openstreetmap.org/#map=16/45.5670/-73.6177">View Larger Map</a></small>
var iframeUrl = "//www.openstreetmap.org/export/embed.html?bbox=-73.63185167312623%2C45.560217957150535%2C-73.60361337661745%2C45.57387292040785&amp;layer=mapnik";
var externalLink = "http://www.openstreetmap.org/#map=17/45.53216/-73.55692";
var iframeParams = { var iframeParams = {
style: {border: '1px solid black', 'min-height': '300px'}, style: {border: '1px solid black', 'min-height': '300px'},
width: '100%', width: '100%',
height: '100%',
frameborder: 0, frameborder: 0,
scrolling: 'no', scrolling: 'no',
marginheight: 0, marginheight: 0,
@@ -97,21 +153,32 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu
mainMap.view = function(){ mainMap.view = function(){
return m('div.uk-panel.uk-panel-box',[ return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', [ m('div.uk-panel-badge.uk-badge', [
m('i.fa.fa-map-o') m('i.fa.fa-map-o', {style: {'font-size': '1.7em'}})
]), ]),
m('h3.uk-panel-title', 'Parc Walter-Stewart'), m('h3.uk-panel-title', 'Parc Georges-Vernot'),
mainMap.getMap() mainMap.getGeorgesVernotMap()
]); ]);
}; };
var mainPageBottom = {}; var mainPageBottom = {};
mainPageBottom.regularSizeView = function(){ mainPageBottom.regularSizeView = function(){
return m('div.uk-grid.uk-hidden-small.uk-grid-match', [ return m('div.uk-grid.uk-visible-large.uk-grid-match', [
m('div.uk-width-large-1-5.uk-hidden-medium'), m('div.uk-width-large-1-3.uk-width-medium-1-3', m.component(mainPageNews)),
m('div.uk-width-large-1-5.uk-width-medium-1-3', m.component(mainPageNews)), m('div.uk-width-large-1-3.uk-width-medium-1-3', m.component(mainPageSchedule)),
m('div.uk-width-large-1-5.uk-width-medium-1-3', m.component(mainPageSchedule)), m('div.uk-width-large-1-3.uk-width-medium-1-3', m.component(mainMap))
m('div.uk-width-large-1-5.uk-width-medium-1-3', m.component(mainMap)) ]);
};
mainPageBottom.mediumSizeView = function(){
return m('div.uk-visible-medium', [
m('div.uk-grid.uk-grid-match', [
m('div.uk-width-medium-1-2', [m.component(mainPageNews)]),
m('div.uk-width-medium-1-2', [m.component(mainPageSchedule)]),
]),
m('div.uk-grid',
m('div.uk-width-medium-1-1', m.component(mainMap))
)
]); ]);
}; };
@@ -124,23 +191,24 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], fu
]); ]);
}; };
mainPageBottom.view = function(){ mainPageBottom.view = function(){
return m('div.uk-margin-top.uk-margin-bottom', [ return m('div.uk-margin-top.uk-margin-bottom.uk-grid',
mainPageBottom.regularSizeView(), m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center', [
mainPageBottom.smallSizeView() mainPageBottom.regularSizeView(),
]); mainPageBottom.mediumSizeView(),
mainPageBottom.smallSizeView()
])
);
}; };
var mainPage = {}; var mainPage = {};
mainPage.view = function(){ mainPage.view = function(){
return [ return [
topNavBar.view(), m.component(topNavBar),
mainPageLogo.view(), m.component(mainPageLogo),
mainPageBottom.view(), m.component(mainPageBottom),
footer.view() m.component(footer)
]; ];
}; };
+36
View File
@@ -0,0 +1,36 @@
define(['m', '_', 'util', 'resultParser', 'articles/articles', 'views/topNavBar', 'views/footer'], function (m, _ , util, resultParser, articles, topNavBar, footer) {
var newsPageBody = {};
newsPageBody.logo = function(){
var style = 'height: 250px; width: 250px; background-size: 250px; background-image: url(images/logosansfond.JPG);';
return m('div.uk-cover-background.uk-container-center', {style: style});
};
newsPageBody.getArticle = function(article){
return m('article.uk-article.uk-margin-',
m('h1.uk-article-title', article.title),
m('p.uk-article-meta', article.meta),
article.body
);
};
newsPageBody.view = function(){
var arts = _.reverse(_.map(articles, newsPageBody.getArticle));
return m('div', util.join(arts, m('hr')));
};
var newsPage = {};
newsPage.view = function(){
return [
m.component(topNavBar),
m('div.uk-grid.uk-margin-top.uk-margin-bottom',
m('div.uk-width-large-2-5.uk-width-medium-3-5.uk-width-small-1-1.uk-container-center',
m.component(newsPageBody))),
m.component(footer)
];
};
return newsPage;
});
+26
View File
@@ -0,0 +1,26 @@
define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], function (m, _ , util, resultParser, topNavBar, footer) {
var rulesPageBody = {};
rulesPageBody.logo = function(){
var style = 'height: 250px; width: 250px; background-size: 250px; background-image: url(images/logosansfond.JPG);';
return m('div.uk-cover-background.uk-container-center', {style: style});
};
rulesPageBody.view = function(){
return m('div.uk-grid',
m('div.uk-width-1-1', rulesPageBody.logo()));
};
var photosPage = {};
photosPage.view = function(){
return [
m.component(topNavBar),
m.component(rulesPageBody),
m.component(footer)
];
};
return photosPage;
});
+318
View File
@@ -0,0 +1,318 @@
define(['m', '_', 'spritz', 'teams'], function (m, _ , spritz, teams) {
var playersSelectionBar = {};
playersSelectionBar.toggleTeam = function(teamId, activatedTeams){
return function(isActive){
isActive = isActive != 'true';
if(isActive){
activatedTeams().push(teamId);
return;
}
activatedTeams(_.difference(activatedTeams(), [teamId]));
};
};
playersSelectionBar.teamInput = function(teamName, teamId, activatedTeams){
var isActive = _.includes(activatedTeams(), teamId);
var class_ = isActive ? 'uk-badge-success' : '';
var callback = playersSelectionBar.toggleTeam(teamId, activatedTeams);
return m('div.uk-badge.uk-margin-left.uk-border-rounded',
{class: class_, 'data-selected': isActive, onclick: m.withAttr("data-selected", callback)},
m('span', {style: {'min-width': '40px', display: 'inline-block'}}, teamName)
);
};
playersSelectionBar.scoreInput = function(score, activatedScores){
var isActive = _.includes(activatedScores(), score);
var class_ = isActive ? 'uk-badge-success' : '';
var callback = playersSelectionBar.toggleTeam(score, activatedScores);
return m('div.uk-badge.uk-margin-left.uk-border-rounded',
{class: class_, 'data-selected': isActive, onclick: m.withAttr("data-selected", callback)},
m('span', {style: {'min-width': '30px', display: 'inline-block'}}, score)
);
};
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',
_.map(teams.teams(), _.partial(playersSelectionBar.getTeamInput, model))
))
);
};
playersSelectionBar.chooseScore = function(model){
return m('form.uk-grid', {style: {'margin-top': '1em'}},
m('div.uk-width-1-6', m('label', m('b', 'Cote'))),
m('div.uk-width-5-6',
m('div.uk-grid', [
playersSelectionBar.scoreInput(1, model.activatedScores),
playersSelectionBar.scoreInput(2, model.activatedScores),
playersSelectionBar.scoreInput(3, model.activatedScores),
playersSelectionBar.scoreInput(4, model.activatedScores),
playersSelectionBar.scoreInput(5, model.activatedScores)
])));
};
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', onkeypress: playersSelectionBar.searchFactory(model)})));
};
playersSelectionBar.controller = function(model){
return model;
};
playersSelectionBar.view = function(model){
return m('div.uk-grid', [
m('div.uk-width-1-2',
playersSelectionBar.chooseTeams(model),
playersSelectionBar.chooseScore(model)),
m('div.uk-width-1-2',
playersSelectionBar.searchBar(model))
]);
};
var playersTable = {};
playersTable._sortPlayers = function(sorting, playerList){
var sortingKeys = _.map(sorting(), 'key');
var sortingDirections = _.map(sorting(), function(o){
return o.direction == 1 ? 'desc' : 'asc';
});
return _.orderBy(playerList, sortingKeys, sortingDirections);
};
playersTable.decryptPlayerList = function(encryptedPlayerList){
var keyLengthInBytes = 128;
var key = spritz.hash(localStorage.getItem('secret') || '', keyLengthInBytes);
var decryptedMessage = spritz.decrypt(key, encryptedPlayerList);
try{
return JSON.parse(spritz.utf8ByteArrayToString(decryptedMessage));
}catch(e){
localStorage.removeItem('secret');
m.route('/membre');
}
};
playersTable.getEncryptedPlayerList = function(){
var deferred = m.deferred();
var interval = setInterval(function() {
if(!_.isEmpty(window.encryptedPlayerList)){
clearInterval(interval);
deferred.resolve(window.encryptedPlayerList);
m.redraw();
}
}, 333);
return deferred.promise;
};
playersTable.controller = function(model){
var ctrl = {};
ctrl.model = model;
ctrl.players = playersTable.getEncryptedPlayerList()
.then(playersTable.decryptPlayerList);
ctrl.sortPlayers = function(){
ctrl.players(playersTable._sortPlayers(ctrl.model.sorting, ctrl.players()));
};
return ctrl;
};
playersTable._getSortDict = function(sorting){
var ret = {};
_.each(sorting(), function(elm){
ret[elm.key] = elm.direction;
});
return ret;
};
playersTable._isSortingUp = function(sorting, key){
var dict = playersTable._getSortDict(sorting);
return dict[key] === 1;
};
playersTable._isSortingDown = function(sorting, key){
var dict = playersTable._getSortDict(sorting);
return dict[key] === -1;
};
playersTable.arrows = function(sorting, key){
var sortUp = playersTable._isSortingUp(sorting, key);
var sortDown = playersTable._isSortingDown(sorting, key);
var style = {
display: 'inline-block',
'line-height': '0.5em',
'margin-right': '1em',
'font-size': '0.7em'
};
var sortedStyle = {color: '#8cc14c', 'font-weight': 'bold'};
return m('span', {style: style},
m('i.fa.fa-chevron-up', {style: sortUp ? sortedStyle: {}}),
m('br'),
m('i.fa.fa-chevron-down', {style: sortDown ? sortedStyle: {}})
);
};
playersTable._setSorting = function(sorting, key){
var newDirection = {key: key, direction: -1 * playersTable._getSortDict(sorting)[key]};
var directions = _.filter(sorting(), function(o){
return o.key != key;
});
sorting([newDirection].concat(directions));
};
playersTable.tableHeader = function(sorting){
var setSorting = function(key){
return _.partial(playersTable._setSorting, sorting, key);
};
return m('thead',
m('tr', [
m('th', {onclick: setSorting('team')}, playersTable.arrows(sorting, 'team'), 'Équipe'),
m('th', {onclick: setSorting('name')}, playersTable.arrows(sorting, 'name'), 'Nom'),
m('th.uk-hidden-small', 'Courriel'),
m('th.uk-hidden-small', 'Téléphone'),
m('th', {onclick: setSorting('score')}, playersTable.arrows(sorting, 'score'), 'Cote')
]));
};
playersTable.getPlayerTeamIcon = function(player){
var background = teams.getTeamColor(player.team);
var style = {width: '20px', height: '20px', 'background-color': background};
return m('div', {style: style}, m.trust('&nbsp;'));
};
playersTable.showOrHidePlayerDetail = function(player){
return function(){
player.showDetails = !player.showDetails;
};
};
playersTable.playerTelLink = function(player){
return m('a[href=tel:' + player.tel + ']', player.tel);
};
playersTable.playerRow = function(player){
return m('tr', {onclick: playersTable.showOrHidePlayerDetail(player)}, [
m('td', playersTable.getPlayerTeamIcon(player)),
m('td', player.name),
m('td.uk-hidden-small', player.email),
m('td.uk-hidden-small', player.tel),
m('td', player.score)
]);
};
playersTable.playerInformation = function(player){
return m('tr.uk-visible-small', [
m('td', ''),
m('td[colspan=3]',
m('ul', [
m('li', [m('b', 'tel: '), playersTable.playerTelLink(player)]),
m('li', [m('b', 'email: '), player.email])
]))
]);
};
playersTable.playerRowAndInformation = function(player){
if(player.showDetails){
return [playersTable.playerRow(player),
m('tr', {style: {height: '0px'}}),
playersTable.playerInformation(player)];
}
return playersTable.playerRow(player);
};
playersTable.onlyPlayerOfTeams = function(visibleTeams){
return function(player){
return _.includes(visibleTeams, player.team);
};
};
playersTable.onlyPlayerOfScore = function(visibleScores){
return function(player){
return _.includes(visibleScores, player.score);
};
};
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()
);
};
playersTable.view = function(ctrl){
ctrl.sortPlayers();
return m('table.uk-table.uk-table-hover.uk-table-striped',
playersTable.tableHeader(ctrl.model.sorting),
playersTable.tableBody(ctrl.players(),
ctrl.model.activatedTeams(),
ctrl.model.activatedScores(),
ctrl.model.searchTerm()
)
);
};
var playersPage = {};
playersPage.controller = function(){
var model = {};
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;
};
playersPage.downloadButton = function(){
return m('button.uk-button.uk-button-success.uk-border-rounded',
m('i.fa.fa-download', {'aria-hidden': true}),
" Télécharger");
};
playersPage.view = function(model){
return m('div.uk-grid.uk-margin-top.uk-margin-bottom',
m('div.uk-width-large-3-5.uk-width-small-1-1.uk-container-center', [
m.component(playersSelectionBar, model),
m.component(playersTable, model),
playersPage.downloadButton()
]));
};
return playersPage;
});
+82
View File
@@ -0,0 +1,82 @@
define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer'], function (m, _ , util, resultParser, topNavBar, footer) {
var rulesPage = {};
rulesPage.missionText = function(){
return "La ligue de balle Les Phénix a été fondée en 2004 afin "+
"d'offrir aux membres de la communauté gaie et lesbienne et à "+
"leurs amis hétéros l'opportunité de s'amuser et de pratiquer "+
"un sport dans une ambiance amicale et décontractée. "+
"L'ouverture d'esprit, la camaraderie et le plaisir de "+
"pratiquer un sport à l'extérieur caractérisent cette ligue.";
};
rulesPage.logo = function(){
var style = 'height: 250px; width: 250px; background-size: 250px; background-image: url(images/logosansfond.JPG);';
return m('div.uk-cover-background.uk-container-center', {style: style});
};
rulesPage.ruleSection = function(){
var urlASBM = 'http://montreal.baseballquebec.com/fr/publication/nouvelle/recherche_un_directeur_general_asbm.html';
return [
m('h2', 'Règlements 2017'),
m('ul',[
m('li', m('h3', m('a', {href: 'files/reglements_generaux.pdf'}, 'Règlements généraux'))),
m('li', m('h3', m('a', {href: 'files/regles_procedures2017.pdf'},'Règles et procédures'))),
m('li', m('h3', m('a', {href: 'files/reglements_de_terrain2016.pdf'},'Règlements de terrain'))),
m('li', m('h3', m('a', {href: urlASBM}, 'Association des Sports de Balle à Montréal (ASBM)'))),
])
];
};
rulesPage.rules = function(){
return m('div.uk-width-large-2-3.uk-width-small-1-1',
m('div.uk-panel.uk-panel-box.uk-panel-box-secondary',
rulesPage.ruleSection()
)
);
};
rulesPage.generalAssemblies = function(){
return m('div.uk-width-large-1-1.uk-width-small-1-1.uk-margin',
m('div.uk-panel.uk-panel-box.uk-panel-box-secondary', [
m('h2', 'Procès verbaux des Assemblées Générales'),
m('ul',[
m('li', m('h3', m('a', {href: 'files/aga2016.pdf'}, 'Assemblée générale annuelle 2016'))),
])
])
);
};
rulesPage.logoAndRules = function(){
return m('div.uk-grid',[
m('div.uk-width-large-1-3.uk-width-small-1-1', rulesPage.logo()),
rulesPage.rules(),
rulesPage.generalAssemblies()
]
);
};
rulesPage.mission = function(){
return m('div.uk-panel.uk-panel-box.uk-panel-box-secondary', [
m('h2', 'Mission'),
m('p', rulesPage.missionText())
]);
};
rulesPage.view = function(){
return [
m.component(topNavBar),
m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-large-1-1.uk-container-center', [
rulesPage.logoAndRules(),
rulesPage.mission()
])),
m.component(footer)
];
};
return rulesPage;
});
+107 -22
View File
@@ -1,17 +1,21 @@
define(['m', '_', 'util'], function (m, _, util) { define(['m', '_', 'util'], function (m, _, util) {
var topNavBar = {}; var topNavBar = {};
topNavBar._urlMapping = { topNavBar._urlMapping = [
acceuil: 'Acceuil', {name: 'Accueil', path: '', fa: 'fa-home'},
calendrier: 'Calendrier', {name: 'Nouvelles', path: 'nouvelles', fa: 'fa-newspaper-o'},
reglement: 'Règlement', {name: 'Calendrier', path: 'calendrier', fa: 'fa-calendar'},
photos: 'Photos', {name: 'Règlement', path: 'reglement', fa: 'fa-legal'},
membre: 'Membre', {name: 'Membre', path: 'membre', fa: 'fa-lock'},
contact: 'Nous Joindre' {name: 'Historique', path: 'historique', fa: 'fa-history'},
}; {name: 'Nous Joindre', path: 'contact', fa: 'fa-phone'}
];
topNavBar.controller = function(){ topNavBar.controller = function(){
return {id: m.route.param("page")}; var model = {};
model.openDropdown = false;
return model;
}; };
topNavBar._getUrlForId = function(id_){ topNavBar._getUrlForId = function(id_){
@@ -19,23 +23,104 @@ define(['m', '_', 'util'], function (m, _, util) {
}; };
topNavBar._isActive = function(id_){ topNavBar._isActive = function(id_){
return id_ == m.route.param("page"); return topNavBar._getUrlForId(id_) == window.location.hash;
};
topNavBar._getItemIcon = function(item){
return m('i.fa.' + item.fa);
}; };
topNavBar._getItem = function(name, id){ topNavBar._getLargeItem = function(item){
var class_ = topNavBar._isActive(id) ? 'uk-active' : 'uk-parent'; var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
var url = topNavBar._getUrlForId(id); var url = topNavBar._getUrlForId(item.path);
return m("li", {class: class_}, [m("a",{href: url}, name)]); return m("li", {class: class_},
m("a", {href: url},
m('div', topNavBar._getItemIcon(item), ' ', item.name)
)
);
}; };
topNavBar.view = function(controller){ topNavBar._getMediumItem = function(item){
return m("nav.uk-navbar.uk-navbar-attached",[ var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
m("ul.uk-navbar-nav.uk-navbar-center.uk-visible-large", var url = topNavBar._getUrlForId(item.path);
m('li.uk-parent', util.facebookLink()), return m("li", {class: class_},
_.map(topNavBar._urlMapping, topNavBar._getItem)), m("a", {href: url},
m("ul.uk-navbar-nav.uk-hidden-large", topNavBar._getItemIcon(item), ' ', item.name
m('li.uk-parent', util.facebookLink()), )
_.map(topNavBar._urlMapping, topNavBar._getItem)), );
};
topNavBar._getSmallItem = function(item){
var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
var url = topNavBar._getUrlForId(item.path);
return m("li", {class: class_},
m("a", {href: url},
topNavBar._getItemIcon(item),
' ',
item.name
)
);
};
topNavBar.largeTopNav = function(){
return [
m('li.uk-parent', m('div.uk-navbar-brand', util.facebookLink())),
_.map(topNavBar._urlMapping, topNavBar._getLargeItem)
];
};
topNavBar.mediumTopNav = function(){
return [
m('li.uk-parent', m('div.uk-navbar-brand', util.facebookLink())),
_.map(topNavBar._urlMapping, topNavBar._getMediumItem)
];
};
topNavBar.dropdown = function(){
return m('div.uk-dropdown',
m('ul.uk-nav.uk-nav-navbar.uk-dropdown-navbar',
_.map(topNavBar._urlMapping, topNavBar._getSmallItem)
));
};
topNavBar.toggleDropdown = function(model){
return function(){
model.openDropdown = !model.openDropdown;
};
};
topNavBar.clickElsewhere = function(model){
var style = {
position: 'fixed',
top: '0px',
bottom: '0px',
left: '0px',
right: '0px',
background: 'black',
opacity: 0.5,
'z-index': 2
};
var attrs = {style: style, onclick: topNavBar.toggleDropdown(model)};
return m('div', attrs);
};
topNavBar.smallTopNav = function(model){
var class_ = model.openDropdown ? 'uk-open' : '';
var attrs = {class: class_, onclick: topNavBar.toggleDropdown(model)};
var ret = [
m('li.uk-parent', m('div.uk-navbar-brand', util.facebookLink())),
m('li.uk-parent[data-uk-dropdown][aria-expanded]', attrs, m('a', m('i.fa.fa-bars'), ' Menu'), topNavBar.dropdown()),
];
if(model.openDropdown){
ret.push(topNavBar.clickElsewhere(model));
}
return ret;
};
topNavBar.view = function(model){
return m("nav.uk-navbar.uk-navbar-attached", [
m("ul.uk-navbar-nav.uk-visible-large.uk-navbar-content.uk-navbar-center", topNavBar.largeTopNav()),
m("ul.uk-navbar-nav.uk-visible-medium", topNavBar.mediumTopNav()),
m("ul.uk-navbar-nav.uk-visible-small", topNavBar.smallTopNav(model)),
]); ]);
}; };
+50 -38
View File
@@ -1,53 +1,65 @@
// LESS related // LESS related
@import "uikit/scss/uikit-mixins.scss"; @import "uikit/dist/scss/uikit-mixins.scss";
@import "uikit/scss/core/variables.scss"; @import "uikit/dist/scss/core/variables.scss";
// Phenix colors
$navbar-background: #f08d28; //#dabd5e;
$panel-box-background: #fce3ca;
$table-striped-background: #fce3ca;
$navbar-nav-active-background: #fce3ca;
$navbar-nav-hover-background: #fce3ca;
$panel-box-secondary-background: #fce3ca;
$badge-background: #fce3ca;
$badge-color: black;
// Defaults // Defaults
@import "uikit/scss/core/base.scss"; @import "uikit/dist/scss/core/base.scss";
// Layout // Layout
@import "uikit/scss/core/grid.scss"; @import "uikit/dist/scss/core/grid.scss";
@import "uikit/scss/core/panel.scss"; @import "uikit/dist/scss/core/panel.scss";
@import "uikit/scss/core/block.scss"; @import "uikit/dist/scss/core/block.scss";
@import "uikit/scss/core/article.scss"; @import "uikit/dist/scss/core/article.scss";
@import "uikit/scss/core/comment.scss"; @import "uikit/dist/scss/core/comment.scss";
@import "uikit/scss/core/cover.scss"; @import "uikit/dist/scss/core/cover.scss";
// Navs // Navs
@import "uikit/scss/core/nav.scss"; @import "uikit/dist/scss/core/nav.scss";
@import "uikit/scss/core/navbar.scss"; @import "uikit/dist/scss/core/navbar.scss";
@import "uikit/scss/core/subnav.scss"; @import "uikit/dist/scss/core/subnav.scss";
@import "uikit/scss/core/breadcrumb.scss"; @import "uikit/dist/scss/core/breadcrumb.scss";
@import "uikit/scss/core/pagination.scss"; @import "uikit/dist/scss/core/pagination.scss";
@import "uikit/scss/core/tab.scss"; @import "uikit/dist/scss/core/tab.scss";
@import "uikit/scss/core/thumbnav.scss"; @import "uikit/dist/scss/core/thumbnav.scss";
// Elements // Elements
@import "uikit/scss/core/list.scss"; @import "uikit/dist/scss/core/list.scss";
@import "uikit/scss/core/description-list.scss"; @import "uikit/dist/scss/core/description-list.scss";
@import "uikit/scss/core/table.scss"; @import "uikit/dist/scss/core/table.scss";
@import "uikit/scss/core/form.scss"; @import "uikit/dist/scss/core/form.scss";
// Common // Common
@import "uikit/scss/core/button.scss"; @import "uikit/dist/scss/core/button.scss";
@import "uikit/scss/core/icon.scss"; @import "uikit/dist/scss/core/icon.scss";
@import "uikit/scss/core/close.scss"; @import "uikit/dist/scss/core/close.scss";
@import "uikit/scss/core/badge.scss"; @import "uikit/dist/scss/core/badge.scss";
@import "uikit/scss/core/alert.scss"; @import "uikit/dist/scss/core/alert.scss";
@import "uikit/scss/core/thumbnail.scss"; @import "uikit/dist/scss/core/thumbnail.scss";
@import "uikit/scss/core/overlay.scss"; @import "uikit/dist/scss/core/overlay.scss";
@import "uikit/scss/core/column.scss"; @import "uikit/dist/scss/core/column.scss";
@import "uikit/scss/core/animation.scss"; @import "uikit/dist/scss/core/animation.scss";
// JavaScript // JavaScript
@import "uikit/scss/core/dropdown.scss"; @import "uikit/dist/scss/core/dropdown.scss";
@import "uikit/scss/core/modal.scss"; @import "uikit/dist/scss/core/modal.scss";
@import "uikit/scss/core/offcanvas.scss"; @import "uikit/dist/scss/core/offcanvas.scss";
@import "uikit/scss/core/switcher.scss"; @import "uikit/dist/scss/core/switcher.scss";
// Need to be loaded last // Need to be loaded last
@import "uikit/scss/core/text.scss"; @import "uikit/dist/scss/core/text.scss";
@import "uikit/scss/core/utility.scss"; @import "uikit/dist/scss/core/utility.scss";
@import "uikit/scss/core/flex.scss"; @import "uikit/dist/scss/core/flex.scss";
@import "uikit/scss/core/contrast.scss"; @import "uikit/dist/scss/core/contrast.scss";
@import "uikit/scss/core/print.scss"; @import "uikit/dist/scss/core/print.scss";