Add ability to show specific concert via a URL parameter
The |concert| parameter can now be used to show a specific concert.
Change-Id: I85ce519296c8a3d5061021f57391290cd4e16520
diff --git a/concerts/ciba2021.json b/concerts/ciba2021.json
index b4af5d8..5d89788 100644
--- a/concerts/ciba2021.json
+++ b/concerts/ciba2021.json
@@ -1,4 +1,5 @@
{
+ "codename": "ciba2021",
"title": "Dones de Musicaula en concert",
"subtitle": "La Ciba - 7 de març del 2021",
"begins": 1615137300,
diff --git a/concerts/nadal2020joves.json b/concerts/nadal2020joves.json
index 5481a8c..669cd9a 100644
--- a/concerts/nadal2020joves.json
+++ b/concerts/nadal2020joves.json
@@ -1,4 +1,5 @@
{
+ "codename": "nadal2020joves",
"title": "Concert de Nadal 2020",
"subtitle": "Joves i adults",
"begins": 1608312600,
diff --git a/concerts/nadal2020nens.json b/concerts/nadal2020nens.json
index 9b21169..8bb57db 100644
--- a/concerts/nadal2020nens.json
+++ b/concerts/nadal2020nens.json
@@ -1,4 +1,5 @@
{
+ "codename": "nadal2020nens",
"title": "Concert de Nadal 2020",
"subtitle": "Nens i nenes",
"begins": 0,
diff --git a/js/script.js b/js/script.js
index 43124e8..0daa399 100644
--- a/js/script.js
+++ b/js/script.js
@@ -7,6 +7,7 @@
var interval = null;
var isBookletShown = false;
var showAllConcerts = false;
+var forceConcert = null;
function showSection(section) {
document.querySelectorAll('section').forEach(el => {
@@ -143,11 +144,17 @@
var now = Date.now();
var latest = null;
- booklets.forEach(booklet => {
- if (booklet['begins'] * 1000 <= now && booklet['ends'] * 1000 >= now &&
- (latest === null || latest['begins'] < booklet['begins']))
+ for (var booklet of booklets) {
+ if (forceConcert !== null && ('codename' in booklet) &&
+ booklet['codename'] == forceConcert) {
latest = booklet;
- });
+ break;
+ }
+
+ if (booklet['begins'] * 1000 <= now && booklet['ends'] * 1000 >= now &&
+ (latest === null || latest['begins'] < booklet['begins']))
+ latest = booklet;
+ }
if (latest !== null) {
document.getElementById('previous-concerts-btn').setAttribute('hidden', '');
@@ -172,6 +179,8 @@
var searchParams = new URLSearchParams(location.search);
if (searchParams.has('showAllConcerts'))
showAllConcerts = true;
+ if (searchParams.has('concert'))
+ forceConcert = searchParams.get('concert');
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js')
diff --git a/sw.js b/sw.js
index 90ce2de..5ac8d72 100644
--- a/sw.js
+++ b/sw.js
@@ -1,4 +1,4 @@
-var CACHE_NAME = 'all-v1.1.2';
+var CACHE_NAME = 'all-v1.1.3';
var urlsToCache = [
'/',
'/css/styles.css',