Files
website/script/views/mainPage.js
2017-05-13 09:58:11 -04:00

217 lines
8.3 KiB
JavaScript

define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'articles/articles', 'images/rain.svg'], function (m, _ , util, resultParser, topNavBar, footer, articles, rainSvg) {
var mainPageLogo = {};
mainPageLogo.view = function(){
return m('div.uk-grid', [
m('div.uk-large-1-3.uk-medium-2-3.uk-container-center', [
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);'})
])
]);
};
var mainPageNews = {};
mainPageNews.view = function(){
var article = _.get(articles, 0, {});
return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', [
m('i.fa.fa-newspaper-o', {style: {'font-size': '1.7em'}})
]),
m('h3.uk-panel-title', m('a.uk-link-muted', {href: '#/nouvelles'}, article.title)),
m('p', article.smallBody || article.body)
]);
};
var nextGameDaySchedule = {};
nextGameDaySchedule._toDay = function(){
var now = new Date();
return new Date(now.getFullYear(), now.getMonth(), now.getDate());
};
nextGameDaySchedule.controller = function(){
var games = m.prop([]);
var toDay = new Date();
return m.request({method: "GET", url: util.resultatsURL()})
.then(games)
.then(resultParser.getNightGames)
.then(function(nightGames){
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(){
return m('thead', m('tr', [
m('td', 'Date'),
m('td', 'Heure'),
m('td', 'Visiteur'),
m('td', 'Receveur')
]));
};
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){
return m('tr', [
m('td', nextGameDaySchedule._responsoveText(util.formatDate(game.jsDate),
util.formatDateSmall(game.jsDate),
game.rain)),
m('td', game.time),
m('td', game.away),
m('td', game.home)
]);
};
nextGameDaySchedule._getGamesRows = function(games){
return _.map(games(), nextGameDaySchedule._getGamesRow);
};
nextGameDaySchedule.view = function(games){
return m('table.uk-table.uk-table-hover.uk-table-striped.uk-table-condensed',[
nextGameDaySchedule._getTableHead(),
m('tbody',
nextGameDaySchedule._getGamesRows(games)
)]);
};
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 = {};
mainPageSchedule.view = function(){
return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', m('i.fa.fa-calendar', {style: {'font-size': '1.7em'}})),
m('h3.uk-panel-title', m('a.uk-link-muted', {href: '#/calendrier'}, 'Horaire')),
m.component(nextGameDaySchedule)
]);
};
var mainMap = {};
mainMap.getWalterStewartMap = function(){
var iframeUrl = "//www.openstreetmap.org/export/embed.html?bbox=-73.55936229228975%2C45.53102667048665%2C-73.55230271816255%2C45.53444249585723&layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&layer=mapnik"; // "//www.openstreetmap.org/export/embed.html?bbox=-73.56355190277101%2C45.5294483312637%2C-73.54943275451662%2C45.53627996625677&layer=mapnik";
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 = {
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.view = function(){
return m('div.uk-panel.uk-panel-box',[
m('div.uk-panel-badge.uk-badge', [
m('i.fa.fa-map-o', {style: {'font-size': '1.7em'}})
]),
m('h3.uk-panel-title', 'Parc Georges-Vernot'),
mainMap.getGeorgesVernotMap()
]);
};
var mainPageBottom = {};
mainPageBottom.regularSizeView = function(){
return m('div.uk-grid.uk-visible-large.uk-grid-match', [
m('div.uk-width-large-1-3.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-3.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))
)
]);
};
mainPageBottom.smallSizeView = function(){
return m('div.uk-visible-small',
[
m('div.uk-grid', m('div.uk-width-small-1-1', m.component(mainPageNews))),
m('div.uk-grid', m('div.uk-width-small-1-1', m.component(mainPageSchedule))),
m('div.uk-grid', m('div.uk-width-small-1-1', m.component(mainMap)))
]);
};
mainPageBottom.view = function(){
return m('div.uk-margin-top.uk-margin-bottom.uk-grid',
m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center', [
mainPageBottom.regularSizeView(),
mainPageBottom.mediumSizeView(),
mainPageBottom.smallSizeView()
])
);
};
var mainPage = {};
mainPage.view = function(){
return [
m.component(topNavBar),
m.component(mainPageLogo),
m.component(mainPageBottom),
m.component(footer)
];
};
return mainPage;
});