110 lines
2.7 KiB
JavaScript
110 lines
2.7 KiB
JavaScript
// alert("ok")
|
|
import * as util from "./util.js";
|
|
import * as resultParser from "./resultParser.js";
|
|
import * as teams from "./teams.js";
|
|
import m from "https://esm.sh/mithril@2.2.2";
|
|
import { rainSvg } from "./images.js";
|
|
import _ from "https://esm.sh/lodash-es@4.17.21";
|
|
|
|
import { statsView, tabView, scheduleTeamTags } from "./schedule.js";
|
|
|
|
const nextGameDaySchedule = {};
|
|
|
|
nextGameDaySchedule._toDay = function () {
|
|
var now = new Date();
|
|
return new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
};
|
|
|
|
const currentYear = new Date();
|
|
|
|
nextGameDaySchedule.oninit = async function () {
|
|
const result = await m.request({
|
|
method: "GET",
|
|
url: `/api/results/${new Date().getFullYear()}.json`,
|
|
});
|
|
const nightGames = resultParser.getNightGames(result);
|
|
nextGameDaySchedule.games = nextGameDaySchedule._getNextNightGame(
|
|
nightGames,
|
|
nextGameDaySchedule._toDay(),
|
|
);
|
|
};
|
|
|
|
nextGameDaySchedule._getNextNightGame = function (games, date) {
|
|
return _(games)
|
|
.filter((g) => g.jsDate.getTime() >= date.getTime())
|
|
.last()
|
|
.games.sort((g1, g2) => g1.jsDate - g2.jsDate);
|
|
};
|
|
|
|
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, game) {
|
|
var ret = [];
|
|
if (game.rain) {
|
|
ret.push(rainSvg("1.5em"));
|
|
ret.push(" ");
|
|
} else if (game.practice) {
|
|
ret.push(m("span.uk-badge.uk-badge-success", "pratique!"));
|
|
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,
|
|
),
|
|
),
|
|
m("td", game.time),
|
|
m("td", scheduleTeamTags.getAwayTeamTag(game)),
|
|
m("td", scheduleTeamTags.getHomeTeamTag(game)),
|
|
]);
|
|
};
|
|
|
|
nextGameDaySchedule._getGamesRows = function (games) {
|
|
return _.map(games, nextGameDaySchedule._getGamesRow);
|
|
};
|
|
|
|
nextGameDaySchedule.view = function () {
|
|
return m(
|
|
"table.uk-table.uk-table-hover.uk-table-striped.uk-table-condensed",
|
|
[
|
|
nextGameDaySchedule._getTableHead(),
|
|
m("tbody", nextGameDaySchedule._getGamesRows(nextGameDaySchedule.games)),
|
|
],
|
|
);
|
|
};
|
|
|
|
const LittleCalendar = {};
|
|
|
|
LittleCalendar.view = function () {
|
|
return m(nextGameDaySchedule);
|
|
};
|
|
|
|
const containerIds = [
|
|
"large-mithril-container",
|
|
"medium-mithril-container",
|
|
"small-mithril-container",
|
|
];
|
|
|
|
for (const id of containerIds) {
|
|
m.mount(document.getElementById(id), LittleCalendar);
|
|
}
|