alt text button

This commit is contained in:
ari melody 2025-09-23 22:59:00 +01:00
parent c38c13e54a
commit d74ddc5524
Signed by: ari
GPG key ID: CF99829C92678188
3 changed files with 29 additions and 4 deletions

View file

@ -17,6 +17,7 @@
<div id="actions">
<button type="submit" id="import">Import</button>
<button type="submit" id="save">Save Schedule</button>
<button type="submit" id="alt-text">Alt Text</button>
<button type="submit" id="clipboard" disabled>Copy to Clipboard</button>
<button type="submit" id="save-image" disabled>Save Image</button>
<button type="submit" id="export">Export</button>

28
main.js
View file

@ -29,6 +29,9 @@ document.addEventListener('readystatechange', () => {
document.getElementById('save').addEventListener('click', () => {
saveSchedule();
});
document.getElementById('alt-text').addEventListener('click', () => {
altText();
});
document.getElementById('clipboard').addEventListener('click', () => {
copyClipboard();
});
@ -88,6 +91,31 @@ function loadSchedule() {
schedule = JSON.parse(atob(saved));
}
function altText() {
let altText = "ari melody LIVE schedule: ";
const activeDays = Object.keys(schedule.days)
.filter(day => schedule.days[day].enabled)
.reduce((days, day) => (days[day] = schedule.days[day], days), {});
const nDays = Object.keys(activeDays).length;
for (let i = 0; i < nDays; i++) {
const day = Object.keys(activeDays)[i];
const slot = schedule.days[day];
if (!slot.enabled) continue;
if (i == nDays - 1)
altText += `and `;
altText += slot.title;
if (slot.subtitle.length > 0)
altText += ` (${slot.subtitle})`;
altText += ` on ${day} @ ${slot.time}`;
if (i < nDays - 1)
altText += `, `;
}
alert(altText);
}
function copyClipboard() {
html2canvas(scheduleDOM).then(/** @typeof HTMLCanvasElement */ canvas => {
canvas.toBlob(blob => {

View file

@ -205,10 +205,6 @@ body {
font-size: 2em;
}
.timeslot-subtitle {
font-weight: 600;
}
.timeslot.disabled .timeslot-title {
font-size: 1.8em;
}