Merge pull request #11 from delefme/v1.1
Subject grouping to 'time-selection' branch
diff --git a/index.html b/index.html
index 9dc52b4..0e65137 100644
--- a/index.html
+++ b/index.html
@@ -90,7 +90,7 @@
Heu triat una assignatura que es fa en dues aules alhora. Comproveu que sou a l'aula <strong id="repeated-subject-warning-class">aula</strong>.
</div>
</article>
- </div>
+ </div> -->
<div id="letter-container" class="buttons grid">
<button class="button" id="letter-A" data-letter="A">A</button>
diff --git a/js/build_page.js b/js/build_page.js
index 25acea3..81b76ed 100644
--- a/js/build_page.js
+++ b/js/build_page.js
@@ -1,358 +1,377 @@
-
-
-const idsFormulari = {
- room: "1063142948",
- day: "2115504093",
- begins: "1749141911",
- ends: "1827359679",
- rows: {
- A: "208184485",
- B: "1077148310",
- C: "642851281",
- D: "1686039024",
- E: "697835787",
- F: "1511799646",
- G: "809853432",
- H: "182597499",
- I: "1890539481",
- J: "529159478",
- K: "1615241874",
- L: "1334263875"
- },
- notes: "1600275159"
-};
-
-const formBaseUrl = "https://docs.google.com/forms/d/e/1FAIpQLSfT9o287VqLyhwR8LPdloAQWhuqCgA3NfdhgP5vb9_sVQHL-g/viewform";
-
-const MIN_HOUR = 8;
-const MAX_HOUR = 14;
-
-var final_JSON = {
- "class": null,
- "number": "",
- "letter": ""
-};
-
-var current_section = "section-1";
-
-var repeated_subjects;
-var current_time;
-
-
-function fillInSummary() {
- var begins = new Date(parseInt(final_JSON.class.begins)*1000);
- var ends = new Date(parseInt(final_JSON.class.ends)*1000);
-
- document.getElementById('subject-final').textContent = final_JSON.class.friendly_name || final_JSON.class.calendar_name;
- document.getElementById('classroom-final').textContent = final_JSON.class.room;
- document.getElementById('date-final').textContent = begins.toLocaleDateString();
- document.getElementById('time-final').textContent = formatTime(begins) + ' - ' + formatTime(ends);
- document.getElementById('letter-final').textContent = final_JSON.letter;
- document.getElementById('number-final').textContent = final_JSON.number;
-}
-
-function clickButton(element) {
- var btn = element.currentTarget;
- var parent = btn.parent;
-
- if (parent == "subject-container") {
- // Canvi de background del button
- var selectedClass = JSON.parse(btn.getAttribute('data-class'));
- $("#subject-container .complex-button").removeClass("is-link")
- btn.classList.add("is-link");
- // Canvi JSON
- final_JSON["class"] = selectedClass;
- // Missatge advertència classe repetida
- if (repeated_subjects.has(selectedClass.id)) {
- document.getElementById('repeated-subject-warning').classList.remove('is-hidden');
- document.getElementById('repeated-subject-warning-class').textContent = selectedClass.room;
- } else {
- document.getElementById('repeated-subject-warning').classList.add('is-hidden');
- }
- // Anchor següent pregunta
- switchSection("section-2");
- } else if (parent == "number-container") {
- // Canvi de background del button
- $("#number-container .button").removeClass("is-link is-light is-active")
- btn.classList.add("is-link", "is-light", "is-active");
- // Canvi JSON
- final_JSON["number"] = btn.getAttribute('data-number');
- // Introducció de totes les dades al resum final
- fillInSummary();
- // Anchor següent pregunta
- switchSection("section-send");
- } else if (parent == "letter-container") {
- // Canvi de background del button
- $("#letter-container .button").removeClass("is-link is-light is-active")
- btn.classList.add("is-link", "is-light", "is-active");
- // Canvi JSON
- final_JSON["letter"] = btn.getAttribute('data-letter');
- // Anchor següent pregunta
- switchSection("section-3");
- }
-}
-
-function switchSection(s) {
- setTimeout(function(){
- document.getElementById(current_section).classList.add('is-hidden');
- document.getElementById(s).classList.remove('is-hidden');
- current_section = s;
- }, 75);
-}
-
-function findRepeatedSubjects(classes) {
- var rep = new Set();
- for (var [i, classe] of classes.entries()) {
- if (i > 0 && classes[i-1].calendar_name == classe.calendar_name) {
- rep.add(classe.id);
- rep.add(classes[i-1].id);
- }
- }
- return rep;
-}
-
-function buildSubjectContainer(classes, repeated) {
- document.getElementById("subject-container").innerHTML = "";
- console.log(classes);
- for (var classe of classes) {
- var hora_inici = formatTime(new Date(parseInt(classe.begins)*1000));
- var hora_final = formatTime(new Date(parseInt(classe.ends)*1000));
-
- var classeDiv = document.createElement('div');
- classeDiv.classList.add('message', 'complex-button');
- classeDiv.id = 'subject-' + classe.subject_id + '-' + classe.room;
- classeDiv.setAttribute('data-class', JSON.stringify(classe));
-
- var header = document.createElement('div');
- header.classList.add('message-header');
- header.textContent = classe.friendly_name || classe.calendar_name;
-
- var body = document.createElement('div');
- body.classList.add('message-body');
-
- var div1 = document.createElement('div');
- var span = document.createElement('span');
- span.textContent = classe.room;
-
- if (repeated.has(classe.id)) {
- div1.classList.add('has-text-danger', 'has-text-weight-bold');
- }
-
- div1.textContent = 'Aula ';
- div1.appendChild(span);
-
- var div2 = document.createElement('div');
- div2.textContent = hora_inici + ' - ' + hora_final;
-
- body.appendChild(div1);
- body.appendChild(div2);
-
- classeDiv.appendChild(header);
- classeDiv.appendChild(body);
-
- document.getElementById("subject-container").appendChild(classeDiv);
- }
- console.log(document.getElementById("subject-container").innerHTML);
-
- var elements = document.getElementsByClassName("button");
- Array.from(elements).forEach(function(element) {
- element.addEventListener('click', clickButton);
- element.parent = element.parentNode.id;
- });
- var elements = document.getElementsByClassName("complex-button");
- Array.from(elements).forEach(function(element) {
- element.addEventListener('click', clickButton);
- element.parent = element.parentNode.id;
- });
-}
-
-function getDefaultTime() {
- var time = new Date();
- time.setSeconds(0);
- time.setMilliseconds(0);
- if (time.getMinutes() < 30) time.setMinutes(0);
- else time.setMinutes(30);
- if (time.getHours() < MIN_HOUR) {
- time.setHours(MIN_HOUR);
- time.setMinutes(0);
- }
- if (time.getHours() >= MAX_HOUR) {
- time.setHours(MAX_HOUR - 1);
- time.setMinutes(30);
- }
- return time
-}
-
-function buildTimeSelector(date) {
- document.getElementById("date-selector").value = formatDate(date);
- var end_time = new Date(date.getTime() + 30*60000); // 1 min = 60000 ms
- document.getElementById("time-selector").value = formatTime(date) + " - " + formatTime(end_time);
-}
-
-function addDateEventListeners(date) {
- document.getElementById("date-prev").addEventListener('click', function (el) {
- current_time = new Date(current_time.getTime() - 24*60*60000);
- buildTimeSelector(current_time);
- fetchClasses();
- });
- document.getElementById("date-next").addEventListener('click', function (el) {
- current_time = new Date(current_time.getTime() + 24*60*60000);
- buildTimeSelector(current_time);
- fetchClasses();
- });
- document.getElementById("time-prev").addEventListener('click', function (el) {
- current_time = new Date(current_time.getTime() - 30*60000);
- if (current_time.getHours() < MIN_HOUR) {
- current_time = new Date(current_time.getTime() - 24*60*60000);
- current_time.setHours(MAX_HOUR - 1);
- current_time.setMinutes(30);
- }
- buildTimeSelector(current_time);
- fetchClasses();
- });
- document.getElementById("time-next").addEventListener('click', function (el) {
- current_time = new Date(current_time.getTime() + 30*60000);
- if (current_time.getHours() >= MAX_HOUR) {
- current_time = new Date(current_time.getTime() + 24*60*60000);
- current_time.setHours(MIN_HOUR);
- current_time.setMinutes(0);
- }
- buildTimeSelector(current_time);
- fetchClasses();
- });
-}
-
-function formatTime(d) {
- return d.toLocaleTimeString("ca", {timeStyle: 'short'});
- /* var str = "";
- str += d.getHours();
- str += ":";
- if (d.getMinutes() < 10) str += "0";
- str += d.getMinutes();
- return str; */
-}
-
-function formatDate(d) {
- return d.toLocaleDateString("ca");
-}
-
-function fetchClasses() {
- console.log(api_url + "getClassesInTime/" + current_time.getTime()/1000);
- fetch(api_url + "getClassesInTime/" + current_time.getTime()/1000, {
- "mode": "cors",
- "credentials": "include"
- })
- .then(response => response.json())
- .then(data => {
- if (data.payload.classes.length == 0) {
- document.getElementById('no-subjects').classList.remove('is-hidden');
- document.getElementById('subject-container').classList.add('is-hidden');
- document.getElementById('fme-maps-container').classList.add('is-hidden');
- } else {
- repeated_subjects = findRepeatedSubjects(data.payload.classes);
- buildSubjectContainer(data.payload.classes, repeated_subjects);
- document.getElementById('no-subjects').classList.add('is-hidden');
- document.getElementById('subject-container').classList.remove('is-hidden');
- document.getElementById('fme-maps-container').classList.remove('is-hidden');
- }
-
- });
-}
-
-function onPageLoad() {
-
- // Check if user is signed in
- if (localStorage.getItem('devMode') == 'true') {
- var banner = document.getElementById('dev-mode');
- banner.addEventListener('click', _ => {
- localStorage.devMode = 'false';
- location.reload();
- });
- banner.classList.remove('is-hidden');
- api_url = localStorage.getItem('apiUrl') || 'https://covid-tracability-backend-dev.sandbox.avm99963.com/api/v1/'
- } else {
- api_url = "https://covid-tracability-backend-prod.sandbox.avm99963.com/api/v1/";
- }
-
- current_time = getDefaultTime();
- buildTimeSelector(current_time);
-
- fetch(api_url + "isSignedIn", {
- "mode": "cors",
- "credentials": "include"
- })
- .then(response => response.json())
- .then(data => {
- if (!data.payload.signedIn) {
- console.log("Not signed in!");
- fetch(api_url + "getAuthUrl", {
- "mode": "cors",
- "credentials": "include"
- })
- .then(response => response.json())
- .then(data => {
- // TODO: redirect here
- // location.href = data.payload.url;
- console.warn('Log in here: ', data.payload.url);
- });
- }
- });
-
- fetchClasses();
-}
-
-function sendForm() {
- // Add subject to user
- fetch(api_url + "addUserSubject", {
- "method": "POST",
- "body": JSON.stringify({
- subject: final_JSON.class.subject_id
- }),
- "mode": "cors",
- "credentials": "include"
- })
- .then(res => res.json())
- .then(json => {
- console.log("Subject added to user: ", json);
-
- var begins = new Date(parseInt(final_JSON.class.begins)*1000);
- var ends = new Date(parseInt(final_JSON.class.ends)*1000);
-
- var params = new URLSearchParams();
- params.append("entry." + idsFormulari.room, final_JSON.class.room); // class, number, letter
- params.append("entry." + idsFormulari.day, begins.getFullYear().toString() + '-' + (begins.getMonth() + 1).toString().padStart(2, "0") + '-' + begins.getDate().toString().padStart(2, "0"));
- params.append("entry." + idsFormulari.begins, formatTime(begins));
- params.append("entry." + idsFormulari.ends, formatTime(ends));
- params.append("entry." + idsFormulari.rows[final_JSON.letter], 'Columna ' + final_JSON.number);
- // params.append("entry." + idsFormulari.notes, '[Autogenerat per delefme/covid-tracability -- Assignatura seleccionada: ' + (final_JSON.class.friendly_name || final_JSON.class.calendar_name) + ']');
-
- var formulari_link = formBaseUrl + '?' + params.toString() + '#i1';
- window.location.href = formulari_link;
- });
-}
-
-
-function addEventListeners() {
- window.addEventListener('load', onPageLoad);
-
- var elements = document.getElementsByClassName("button");
- Array.from(elements).forEach(function(element) {
- element.addEventListener('click', clickButton);
- element.parent = element.parentNode.id;
- });
-
- var elements = document.getElementsByClassName("complex-button");
- Array.from(elements).forEach(function(element) {
- element.addEventListener('click', clickButton);
- element.parent = element.parentNode.id;
- });
-
- document.getElementById("send-button").addEventListener('click', function (el) {
- document.getElementById("send-button").classList.add('is-loading');
- sendForm();
- });
-
- addDateEventListeners();
-}
-
-addEventListeners();
+const idsFormulari = {
+ room: "1063142948",
+ day: "2115504093",
+ begins: "1749141911",
+ ends: "1827359679",
+ rows: {
+ A: "208184485",
+ B: "1077148310",
+ C: "642851281",
+ D: "1686039024",
+ E: "697835787",
+ F: "1511799646",
+ G: "809853432",
+ H: "182597499",
+ I: "1890539481",
+ J: "529159478",
+ K: "1615241874",
+ L: "1334263875"
+ },
+ notes: "1600275159"
+};
+
+const formBaseUrl = "https://docs.google.com/forms/d/e/1FAIpQLSfT9o287VqLyhwR8LPdloAQWhuqCgA3NfdhgP5vb9_sVQHL-g/viewform";
+
+const MIN_HOUR = 8;
+const MAX_HOUR = 23; // Pels altres graus de la Facultat
+
+var final_JSON = {
+ "class": null,
+ "number": "",
+ "letter": ""
+};
+
+var current_section = "section-1";
+
+var repeated_subjects;
+var current_time;
+
+
+function fillInSummary() {
+ var begins = new Date(parseInt(final_JSON.class.begins)*1000);
+ var ends = new Date(parseInt(final_JSON.class.ends)*1000);
+
+ document.getElementById('subject-final').textContent = final_JSON.class.friendly_name || final_JSON.class.calendar_name;
+ document.getElementById('classroom-final').textContent = final_JSON.class.room;
+ document.getElementById('date-final').textContent = begins.toLocaleDateString();
+ document.getElementById('time-final').textContent = formatTime(begins) + ' - ' + formatTime(ends);
+ document.getElementById('letter-final').textContent = final_JSON.letter;
+ document.getElementById('number-final').textContent = final_JSON.number;
+}
+
+function clickButton(element) {
+ var btn = element.currentTarget;
+ var parent = btn.parent;
+
+ if (parent == "subject-container") {
+ // Canvi de background del button
+ var selectedClass = JSON.parse(btn.getAttribute('data-class'));
+ $("#subject-container .complex-button").removeClass("is-link")
+ btn.classList.add("is-link");
+ // Canvi JSON
+ final_JSON["class"] = selectedClass;
+ // Missatge advertència classe repetida
+ if (repeated_subjects.has(selectedClass.id)) {
+ document.getElementById('repeated-subject-warning').classList.remove('is-hidden');
+ document.getElementById('repeated-subject-warning-class').textContent = selectedClass.room;
+ } else {
+ document.getElementById('repeated-subject-warning').classList.add('is-hidden');
+ }
+ // Anchor següent pregunta
+ switchSection("section-2");
+ } else if (parent == "number-container") {
+ // Canvi de background del button
+ $("#number-container .button").removeClass("is-link is-light is-active")
+ btn.classList.add("is-link", "is-light", "is-active");
+ // Canvi JSON
+ final_JSON["number"] = btn.getAttribute('data-number');
+ // Introducció de totes les dades al resum final
+ fillInSummary();
+ // Anchor següent pregunta
+ switchSection("section-send");
+ } else if (parent == "letter-container") {
+ // Canvi de background del button
+ $("#letter-container .button").removeClass("is-link is-light is-active")
+ btn.classList.add("is-link", "is-light", "is-active");
+ // Canvi JSON
+ final_JSON["letter"] = btn.getAttribute('data-letter');
+ // Anchor següent pregunta
+ switchSection("section-3");
+ }
+}
+
+function switchSection(s) {
+ setTimeout(function(){
+ document.getElementById(current_section).classList.add('is-hidden');
+ document.getElementById(s).classList.remove('is-hidden');
+ current_section = s;
+ }, 75);
+}
+
+function findRepeatedSubjects(classes) {
+ var rep = new Set();
+ for (var [i, classe] of classes.entries()) {
+ if (i > 0 && classes[i-1].calendar_name == classe.calendar_name) {
+ rep.add(classe.id);
+ rep.add(classes[i-1].id);
+ }
+ }
+ return rep;
+}
+
+function buildSubjectContainer(classes, repeated) {
+ var duplicateSubjectBoolNext, duplicateSubjectBoolPrev;
+ var duplicateSubjectCounter = 0;
+
+ for (var [i, classe] of classes) {
+ var hora_inici = formatDate(new Date(parseInt(classe.begins)*1000));
+ var hora_final = formatDate(new Date(parseInt(classe.ends)*1000));
+ var classeDiv = document.createElement('div');
+
+ // Check if the subject is repeated
+ duplicateSubjectBoolNext = data.payload.classes[i+1].friendly_name == classe.friendly_name;
+ duplicateSubjectBoolPrev = data.payload.classes[i-1].friendly_name == classe.friendly_name;
+
+ if(duplicateSubjectBoolNext && i < classes.length - 1 && duplicateSubjectCounter%2 == 1) {
+ classeDiv.classList.add('message', 'complex-button-full');
+ }
+
+ if (duplicateSubjectBoolPrev && i > 0) {
+ classeDiv.classList.add('message', 'complex-button2Right');
+ } else if(duplicateSubjectBoolNext && i < data.payload.classes.length - 1) {
+ classeDiv.classList.add('message', 'complex-button2Left');
+ } else {
+ classeDiv.classList.add('message', 'complex-button');
+ }
+
+ classeDiv.classList.add('message', 'complex-button');
+ classeDiv.id = 'subject-' + classe.subject_id + '-' + classe.room;
+ classeDiv.setAttribute('data-class', JSON.stringify(classe));
+
+ var header = document.createElement('div');
+ header.classList.add('message-header');
+
+ if (!(duplicateSubjectBoolPrev && i > 0)) {
+ header.textContent = classe.friendly_name || classe.calendar_name;
+ } else {
+ header.textContent = classe.friendly_name || classe.calendar_name;;
+ header.style.color = "#4A4A4A";
+ }
+
+ var body = document.createElement('div');
+ body.classList.add('message-body');
+
+ var div1 = document.createElement('div');
+ var span = document.createElement('span');
+ span.textContent = classe.room;
+
+ div1.classList.add('has-text-weight-bold');
+
+ div1.textContent = 'Aula ';
+ div1.appendChild(span);
+
+ var div2 = document.createElement('div');
+ div2.textContent = hora_inici + ' - ' + hora_final;
+
+ body.appendChild(div1);
+ body.appendChild(div2);
+
+ classeDiv.appendChild(header);
+ classeDiv.appendChild(body);
+
+ document.getElementById("subject-container").appendChild(classeDiv);
+ ++duplicateSubjectCounter;
+ }
+
+ var elements = document.getElementsByClassName("button");
+ Array.from(elements).forEach(function(element) {
+ element.addEventListener('click', clickButton);
+ element.parent = element.parentNode.id;
+ });
+ var elements = document.getElementsByClassName("complex-button");
+ Array.from(elements).forEach(function(element) {
+ element.addEventListener('click', clickButton);
+ element.parent = element.parentNode.id;
+ });
+}
+
+function getDefaultTime() {
+ var time = new Date();
+ time.setSeconds(0);
+ time.setMilliseconds(0);
+ if (time.getMinutes() < 30) time.setMinutes(0);
+ else time.setMinutes(30);
+ if (time.getHours() < MIN_HOUR) {
+ time.setHours(MIN_HOUR);
+ time.setMinutes(0);
+ }
+ if (time.getHours() >= MAX_HOUR) {
+ time.setHours(MAX_HOUR - 1);
+ time.setMinutes(30);
+ }
+ return time
+}
+
+function buildTimeSelector(date) {
+ document.getElementById("date-selector").value = formatDate(date);
+ var end_time = new Date(date.getTime() + 30*60000); // 1 min = 60000 ms
+ document.getElementById("time-selector").value = formatTime(date) + " - " + formatTime(end_time);
+}
+
+function addDateEventListeners(date) {
+ document.getElementById("date-prev").addEventListener('click', function (el) {
+ current_time = new Date(current_time.getTime() - 24*60*60000);
+ buildTimeSelector(current_time);
+ fetchClasses();
+ });
+ document.getElementById("date-next").addEventListener('click', function (el) {
+ current_time = new Date(current_time.getTime() + 24*60*60000);
+ buildTimeSelector(current_time);
+ fetchClasses();
+ });
+ document.getElementById("time-prev").addEventListener('click', function (el) {
+ current_time = new Date(current_time.getTime() - 30*60000);
+ if (current_time.getHours() < MIN_HOUR) {
+ current_time = new Date(current_time.getTime() - 24*60*60000);
+ current_time.setHours(MAX_HOUR - 1);
+ current_time.setMinutes(30);
+ }
+ buildTimeSelector(current_time);
+ fetchClasses();
+ });
+ document.getElementById("time-next").addEventListener('click', function (el) {
+ current_time = new Date(current_time.getTime() + 30*60000);
+ if (current_time.getHours() >= MAX_HOUR) {
+ current_time = new Date(current_time.getTime() + 24*60*60000);
+ current_time.setHours(MIN_HOUR);
+ current_time.setMinutes(0);
+ }
+ buildTimeSelector(current_time);
+ fetchClasses();
+ });
+}
+
+function formatTime(d) {
+ return d.toLocaleTimeString("ca", {timeStyle: 'short'});
+ /* var str = "";
+ str += d.getHours();
+ str += ":";
+ if (d.getMinutes() < 10) str += "0";
+ str += d.getMinutes();
+ return str; */
+}
+
+function formatDate(d) {
+ return d.toLocaleDateString("ca");
+}
+
+function fetchClasses() {
+ console.log(api_url + "getClassesInTime/" + current_time.getTime()/1000);
+ fetch(api_url + "getClassesInTime/" + current_time.getTime()/1000, {
+ "mode": "cors",
+ "credentials": "include"
+ })
+ .then(response => response.json())
+ .then(data => {
+ if (data.payload.classes.length == 0) {
+ document.getElementById('no-subjects').classList.remove('is-hidden');
+ document.getElementById('subject-container').classList.add('is-hidden');
+ document.getElementById('fme-maps-container').classList.add('is-hidden');
+ } else {
+ repeated_subjects = findRepeatedSubjects(data.payload.classes);
+ buildSubjectContainer(data.payload.classes, repeated_subjects);
+ document.getElementById('no-subjects').classList.add('is-hidden');
+ document.getElementById('subject-container').classList.remove('is-hidden');
+ document.getElementById('fme-maps-container').classList.remove('is-hidden');
+ }
+
+ });
+}
+
+function onPageLoad() {
+
+ // Check if user is signed in
+ if (localStorage.getItem('devMode') == 'true') {
+ var banner = document.getElementById('dev-mode');
+ banner.addEventListener('click', _ => {
+ localStorage.devMode = 'false';
+ location.reload();
+ });
+ banner.classList.remove('is-hidden');
+ api_url = localStorage.getItem('apiUrl') || 'https://covid-tracability-backend-dev.sandbox.avm99963.com/api/v1/'
+ } else {
+ api_url = "https://covid-tracability-backend-prod.sandbox.avm99963.com/api/v1/";
+ }
+
+ current_time = getDefaultTime();
+ buildTimeSelector(current_time);
+
+ fetch(api_url + "isSignedIn", {
+ "mode": "cors",
+ "credentials": "include"
+ })
+ .then(response => response.json())
+ .then(data => {
+ if (!data.payload.signedIn) {
+ console.log("Not signed in!");
+ fetch(api_url + "getAuthUrl", {
+ "mode": "cors",
+ "credentials": "include"
+ })
+ .then(response => response.json())
+ .then(data => {
+ // TODO: redirect here
+ // location.href = data.payload.url;
+ console.warn('Log in here: ', data.payload.url);
+ });
+ }
+ });
+
+ fetchClasses();
+}
+
+function sendForm() {
+ // Add subject to user
+ fetch(api_url + "addUserSubject", {
+ "method": "POST",
+ "body": JSON.stringify({
+ subject: final_JSON.class.subject_id
+ }),
+ "mode": "cors",
+ "credentials": "include"
+ })
+ .then(res => res.json())
+ .then(json => {
+ console.log("Subject added to user: ", json);
+
+ var begins = new Date(parseInt(final_JSON.class.begins)*1000);
+ var ends = new Date(parseInt(final_JSON.class.ends)*1000);
+
+ var params = new URLSearchParams();
+ params.append("entry." + idsFormulari.room, final_JSON.class.room); // class, number, letter
+ params.append("entry." + idsFormulari.day, begins.getFullYear().toString() + '-' + (begins.getMonth() + 1).toString().padStart(2, "0") + '-' + begins.getDate().toString().padStart(2, "0"));
+ params.append("entry." + idsFormulari.begins, formatTime(begins));
+ params.append("entry." + idsFormulari.ends, formatTime(ends));
+ params.append("entry." + idsFormulari.rows[final_JSON.letter], 'Columna ' + final_JSON.number);
+ // params.append("entry." + idsFormulari.notes, '[Autogenerat per delefme/covid-tracability -- Assignatura seleccionada: ' + (final_JSON.class.friendly_name || final_JSON.class.calendar_name) + ']');
+
+ var formulari_link = formBaseUrl + '?' + params.toString() + '#i1';
+ window.location.href = formulari_link;
+ });
+}
+
+
+function addEventListeners() {
+ window.addEventListener('load', onPageLoad);
+
+ var elements = document.getElementsByClassName("button");
+ Array.from(elements).forEach(function(element) {
+ element.addEventListener('click', clickButton);
+ element.parent = element.parentNode.id;
+ });
+
+ var elements = document.getElementsByClassName("complex-button");
+ Array.from(elements).forEach(function(element) {
+ element.addEventListener('click', clickButton);
+ element.parent = element.parentNode.id;
+ });
+
+ document.getElementById("send-button").addEventListener('click', function (el) {
+ document.getElementById("send-button").classList.add('is-loading');
+ sendForm();
+ });
+
+ addDateEventListeners();
+}
+
+addEventListeners();