2018-12-27 10:37:31 +01:00
|
|
|
Array.from(document.getElementsByClassName('link')).forEach((element) => {
|
|
|
|
element.addEventListener('click', (event) => {
|
|
|
|
const newTab = browser.tabs.create({
|
|
|
|
url: event.currentTarget.dataset.url
|
|
|
|
});
|
|
|
|
newTab.then((data) => {
|
|
|
|
// console.log(data);
|
|
|
|
}).catch((error) => {
|
|
|
|
console.error(error);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
browser.runtime.getBackgroundPage().then((page) => {
|
|
|
|
updateNextEvent(page.calendar[0]);
|
|
|
|
updateSpaceApiJson(page.spaceApi);
|
2018-12-27 17:26:05 +01:00
|
|
|
updateState(page.spaceApi);
|
2018-12-27 10:37:31 +01:00
|
|
|
}).catch((error) => {
|
|
|
|
console.error(error);
|
|
|
|
});
|
|
|
|
|
|
|
|
const updateNextEvent = (nextEvent) => {
|
|
|
|
const calendarElement = document.getElementById('calendar');
|
|
|
|
const strongElement = document.createElement('strong');
|
|
|
|
strongElement.textContent = nextEvent.name;
|
|
|
|
const dateNode = document.createTextNode(' ' + new Date(nextEvent.begin).toLocaleString());
|
2018-12-27 14:43:34 +01:00
|
|
|
// calendarElement.innerText = '';
|
|
|
|
calendarElement.innerHTML = '<img src="../icons/font-awesome/clock-regular.svg" width="19" height="19" alt="Clock" />';
|
2018-12-27 10:37:31 +01:00
|
|
|
calendarElement.append(strongElement);
|
|
|
|
calendarElement.append(dateNode);
|
|
|
|
if (nextEvent.location) {
|
|
|
|
const locationNode = document.createTextNode(' (' + nextEvent.location + ')');
|
|
|
|
calendarElement.append(locationNode);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const updateSpaceApiJson = (spaceApi) => {
|
2018-12-27 14:43:34 +01:00
|
|
|
const spaceApiElement = document.querySelector('#space-api code');
|
2018-12-27 10:37:31 +01:00
|
|
|
const json = JSON.stringify(spaceApi, null, 2).replace(/ /g, ' ').replace(/\n/g, '<br/>');
|
|
|
|
spaceApiElement.innerHTML = json;
|
|
|
|
// const jsonNode = document.createTextNode(json);
|
|
|
|
// spaceApiElement.innerText = '';
|
|
|
|
// spaceApiElement.append(jsonNode);
|
|
|
|
};
|
2018-12-27 17:26:05 +01:00
|
|
|
|
|
|
|
const updateState = (spaceApi) => {
|
|
|
|
const stateElement = document.getElementById('state');
|
|
|
|
const since = new Date(spaceApi.state.lastchange * 1000);
|
|
|
|
const sinceStr = ' seit <time datetime="' + since.toISOString() + '">' + since.toLocaleString() + '</time>';
|
2018-12-27 18:17:18 +01:00
|
|
|
if (spaceApi.state.open) {
|
|
|
|
stateElement.innerHTML = '<img src="../icons/font-awesome/lock-open-solid.svg" width="19" height="19" alt="Offen" />Offen' + sinceStr;
|
|
|
|
} else {
|
|
|
|
stateElement.innerHTML = '<img src="../icons/font-awesome/lock-solid.svg" width="19" height="19" alt="Geschlossen" />Geschlossen' + sinceStr;
|
|
|
|
}
|
2018-12-27 17:26:05 +01:00
|
|
|
};
|