Remove inline scripts for local time

This commit is contained in:
DeathByDenim 2023-05-27 17:28:39 -04:00
parent 71c8299028
commit 2e232ac99c
Signed by: DeathByDenim
GPG Key ID: 4A475283D925365B
5 changed files with 76 additions and 32 deletions

View File

@ -1,11 +1,4 @@
<h4>{{ event.date | date: "%A %d %B %Y, %H:%M %Z" }}</h4>
<script>
var event_year = {{ event.date | date: "%Y" }};
var event_month = {{ event.date | date: "%-m" }};
var event_day = {{ event.date | date: "%e" }};
var d = new Date(Date.UTC(event_year, event_month, event_day, {{ event.date | date: "%H" }}, {{ event.date | date: "%M" }}));
document.writeln("<p>(Local time: "+d.toTimeString()+")</p>")
</script>
<h4 class="eventdate" data-event-datetime="{{ event.date }}">{{ event.date | date: "%A %d %B %Y, %H:%M %Z" }}</h4>
{% if event.intro %}
<p>{{ event.intro }}</p>
{% endif %}
@ -13,7 +6,7 @@
{% for game in event.games %}
{% assign time = game.time | split: ":"%}
{% if game.time %}
<li>{{ game.time }}UTC {{ game.title }}{%if game.tournament %} <a href="tournament.html" class="game-tournament">Tournament</a>{% endif %}<script>d=new Date(Date.UTC(event_year, event_month, event_day, {{ time | slice: 0 }}, {{ time | slice: 1 }}));document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
<li class="eventtime" data-event-date="{{ event.date | date: '%Y-%-m-%e' }}">{{ game.time }}UTC {{ game.title }}{%if game.tournament %} <a href="tournament.html" class="game-tournament">Tournament</a>{% endif %}</li>
{% else %}
<li>{{ game.title }}{%if game.tournament %} <a href="tournament.html" class="game-tournament">Tournament</a>{% endif %}</li>
{% endif %}

View File

@ -6,6 +6,7 @@
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="icon" href="/assets/img/icon.svg" sizes="any" type="image/svg+xml">
<link rel="alternate" type="application/rss+xml" title="{{ site.content.domain_name }}" href="/feed.xml">
<script src="/assets/js/localtime.js"></script>
</head>
<body>
{% include nav.html %}

70
assets/js/localtime.js Normal file
View File

@ -0,0 +1,70 @@
function parseEventTimes() {
const dateformatter = Intl.DateTimeFormat(
"en-CA",
{
hour: '2-digit',
minute: '2-digit',
timeZoneName: 'short',
hour12: false
});
const eventtimes = document.getElementsByClassName("eventtime");
for(eventtime of eventtimes) {
const eventdate = eventtime.getAttribute("data-event-date")
if(eventdate) {
let parts = eventdate.split("-");
if(parts.length !== 3)
continue;
const year = parseInt(parts[0], 10);
const month = parseInt(parts[1], 10);
const day = parseInt(parts[2], 10);
parts = eventtime.innerText.split("UTC");
if(parts.length < 2)
continue;
parts = parts[0].split(":")
if(parts.length !== 2)
continue;
const hour = parseInt(parts[0], 10);
const minute = parseInt(parts[1], 10);
let date = Date.UTC(year, month, day, hour, minute);
date = new Date(date);
date = dateformatter.format(date);
eventtime.innerHTML += " (" + date + ")";
}
}
}
function parseEventDates() {
const dateformatter = Intl.DateTimeFormat(
"en-CA",
{
weekday: 'short',
hour: '2-digit',
minute: '2-digit',
timeZoneName: 'short',
hour12: false
});
const eventdates = document.getElementsByClassName("eventdate");
for(eventdate of eventdates) {
const date_attribute = eventdate.getAttribute("data-event-datetime")
if(date_attribute) {
let date = Date.parse(date_attribute.replace("UTC", "Z"))
if(isNaN(date))
continue;
date = new Date(date);
date = dateformatter.format(date);
eventdate.innerHTML += " (" + date + ")";
}
}}
document.addEventListener("DOMContentLoaded", (event) => {
parseEventTimes();
parseEventDates();
});

View File

@ -18,8 +18,7 @@ nav_pill: home
{% assign sitetime = site.time | date: "%FT%T" %}
{% assign upcoming = site.data.events | where_exp: "item", "item.date >= sitetime" | last %}
{% if upcoming %}
<h4>{{ upcoming.date | date: "%A %e %B %Y, %R" }} UTC</h4>
<script>var zone = new Date().toLocaleTimeString('en-ca',{timeZoneName:'short'}).split(' ')[2];d=new Date("{{ upcoming.date | date_to_rfc822 }}");document.writeln("<p>(Local time: "+d.toTimeString()+")</p>")</script>
<h4 class="eventdate" data-event-datetime="{{ upcoming.date }}">{{ upcoming.date | date: "%A %e %B %Y, %R" }} UTC</h4>
<p>See <a href="schedule.html">schedule</a> for more information.</p>
{% else %}
<p>No next event has been scheduled yet.</p>

View File

@ -7,36 +7,17 @@ nav_pill: tournament
{% assign nextevent = site.data.events | where_exp: "item", "item.date >= sitetime" | last %}
{% assign tournaments = nextevent.games | where_exp: "item", "item.tournament" %}
{% if tournaments and tournaments.size != 0 %}
<script>
var event_year = {{ nextevent.date | date: "%Y" }};
var event_month = {{ nextevent.date | date: "%M" }};
var event_day = {{ nextevent.date | date: "%M" }};
</script>
<p>There will be a tournament for the next event on {{ nextevent.date | date: "%a, %b %d, %Y" }}</p>
<p>There will be a tournament for the next event on {{ nextevent.date | date: "%a, %b %e, %Y" }}</p>
<ul>
{% for game in tournaments %}
{% assign time = game.time | split: ":"%}
{% if game.time %}
<li>{{ game.time }}UTC {{ game.title }}<script>d=new Date(Date.UTC(event_year, event_month, event_day, {{ time | slice: 0 }}, {{ time | slice: 1 }}));document.writeln(" ("+ Intl.DateTimeFormat(undefined, {hour: '2-digit', minute: '2-digit', timeZoneName: 'short'}).format(d) + ")")</script></li>
<li class="eventtime" data-event-date="{{ nextevent.date | date: '%Y-%-m-%e' }}">{{ game.time }}UTC {{ game.title }}</li>
{% else %}
<li>{{ game.title }}</li>
{% endif %}
{% endfor %}
</ul>
<h2>Ranking</h2>
<ol id="xonotic-ranking"></ol>
<h2>Rounds</h2>
<div id="xonotic-results"></div>
<script>
if(typeof d3 === 'undefined') {
document.write('<p><a href="xonscore.txt">Results</a> (allow access to d3js.org for dynamic updates)</p>');
}
else {
xonoticScoreUpdate();
setInterval(xonoticScoreUpdate, 10000);
}
</script>
<noscript><p><a href="xonscore.txt">Results</a> (Enable JavaScript for dynamic updates)</p></noscript>
{% else %}
<p>No tournaments have been planned for the next event.</p>
{% endif %}