diff --git a/locales/de.yml b/locales/de.yml index fa7859a..016ca2b 100644 --- a/locales/de.yml +++ b/locales/de.yml @@ -32,6 +32,9 @@ more_infos: "Mehr Infos" new_header: "Laufende
Ausstellung
Performances
Immersive Theatre Tour" scientific_background: "Scientific background" calendar: "Kalender" +cal_options: "Wähle wie du den Kalender anzeigen willst" +cal_new_tab: "In neuen Tab öffnen" +cal_show_here: "Hier anzeigen" # Game page game_title: "Wer findet die meisten Kameras?" diff --git a/locales/en.yml b/locales/en.yml index 005a074..87f7acd 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -24,7 +24,7 @@ play_game_title: "Play our game" play_game_description: "Ever wandered through Linz with the aim to find (hidden) cameras? Well, if you are that kind of person than our 'Discover cameras' game will be ideal for you! " game_link_title: "Go to Game Page" location_linz: "Where: all over Linz" -tour_aef_title: "Find Your Perfect Partner" +tour_aef_title: "Registration for \"Find Your Perfect Partner\"" tour_aef_description: "Digital Shadows invites you to explore pressing questions about digital and physical identity, data security, and control in an immediate and tangible way. In immersive zones with choreographic elements, you encounter reflections, copies, and measurements of yourself—while at the same time losing yourself in a system that knows more about you than you may wish to reveal. Between play and analysis, between concealment and disclosure, an intense reflection emerges on identity in the age of facial recognition, deepfakes, and algorithmic profiling. How can one deceive a camera? How visible do I want to be? Who owns my digital traces—and who benefits from them?

This experiment, a collaboration between science and art, makes power structures, visibility, and self-determination in digital spaces tangible. In engaging with digital materiality and algorithmic intelligence, an at times absurd yet always immediate mirror of our role in data-driven worlds unfolds—until we face our own digital dilemma, with the decision still in our hands" tour_register: "Register now" @@ -33,6 +33,9 @@ more_infos: "More infos" new_header: "Ongoing
Exhibition
Performances
Immersive Tour" scientific_background: "Scientific background" calendar: "Calendar" +cal_options: "Choose how you'd like to access the calendar" +cal_new_tab: "Open in New Tab" +cal_show_here: "Show here" # Game page game_title: "Who finds the most cameras?" diff --git a/src/index.rs b/src/index.rs index 84f15b8..764f314 100644 --- a/src/index.rs +++ b/src/index.rs @@ -42,20 +42,6 @@ pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup { class="btn mt-1 block" role="button" { (t!("more_infos")) } } - article.col-span-2 { - header { (t!("tour_aef_title")) } - - (PreEscaped(t!("tour_aef_description"))) - - a - href="https://www.jku.at/ars-electronica-2025-panic-yes-no/digital-shadows/" - target="_blank" - class="btn mt-1 block" - role="button" - title=(t!("tour_register_title")) { (t!("tour_register")) } - - footer { (t!("location_postcity")) } - } article { header { (t!("play_game_title")) } @@ -65,6 +51,20 @@ pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup { footer { (t!("location_linz")) } } + article.col-span-2 { + header { (t!("tour_aef_title")) } + + (PreEscaped(t!("tour_aef_description"))) + + a + href="https://reglist24.com/digital-shadows-tour/form" + target="_blank" + class="btn mt-1 block" + role="button" + title=(t!("tour_register_title")) { (t!("tour_register")) } + + footer { (t!("location_postcity")) } + } } @@ -76,7 +76,55 @@ pub(super) async fn index(cookies: CookieJar, headers: HeaderMap) -> Markup { h2 { (t!("calendar")) } - iframe src="https://calendar.google.com/calendar/embed?height=600&wkst=2&ctz=Europe%2FVienna&showPrint=0&showTz=0&showCalendars=0&showTabs=0&showDate=0&showNav=0&showTitle=0&mode=AGENDA&hl=en&src=YjA4NTZlZDUyZDAwNmY3ZTczNTgxYTk2NjI4MjFjMDZhYWJkZjUzMDBkMjZmMDZiOWFiYzg2YWE3YzBhNzFlNkBncm91cC5jYWxlbmRhci5nb29nbGUuY29t&color=%23d50000" style="border-width:0" width="100%" height="600" frameborder="0" scrolling="no"; + // Initial options shown to user + div #calendar-options .calendar-options { + p { (t!("cal_options"))" } + + // Direct link option (privacy-first) + a href="https://calendar.google.com/calendar/embed?height=600&wkst=2&ctz=Europe%2FVienna&showPrint=0&showTz=0&showCalendars=0&showTabs=0&showDate=0&showNav=0&showTitle=0&mode=AGENDA&hl=en&src=YjA4NTZlZDUyZDAwNmY3ZTczNTgxYTk2NjI4MjFjMDZhYWJkZjUzMDBkMjZmMDZiOWFiYzg2YWE3YzBhNzFlNkBncm91cC5jYWxlbmRhci5nb29nbGUuY29t&color=%23d50000" + target="_blank" + rel="noopener noreferrer" + class="calendar-link" { + (t!("cal_new_tab")) + } + + // Embed option + button #embed-calendar .embed-button { + (t!("cal_show_here")) + } + } + + // iframe initially without src attribute + iframe #google-calendar + data-src="https://calendar.google.com/calendar/embed?height=600&wkst=2&ctz=Europe%2FVienna&showPrint=0&showTz=0&showCalendars=0&showTabs=0&showDate=0&showNav=0&showTitle=0&mode=AGENDA&hl=en&src=YjA4NTZlZDUyZDAwNmY3ZTczNTgxYTk2NjI4MjFjMDZhYWJkZjUzMDBkMjZmMDZiOWFiYzg2YWE3YzBhNzFlNkBncm91cC5jYWxlbmRhci5nb29nbGUuY29t&color=%23d50000" + width="100%" + height="600" + frameborder="0" + scrolling="no" + class="hidden" {} + + // Inline JavaScript + script { + (PreEscaped(r#" + document.addEventListener('DOMContentLoaded', function() { + const calendarOptions = document.getElementById('calendar-options'); + const embedButton = document.getElementById('embed-calendar'); + const iframe = document.getElementById('google-calendar'); + + embedButton.addEventListener('click', function() { + // Hide the options + calendarOptions.classList.add('hidden'); + + // Load the iframe by setting src from data-src + const src = iframe.getAttribute('data-src'); + iframe.setAttribute('src', src); + + // Show the iframe + iframe.classList.remove('hidden'); + }); + }); + "#)) + } }) diff --git a/static/serve/style.css b/static/serve/style.css index ec170b6..556d856 100644 --- a/static/serve/style.css +++ b/static/serve/style.css @@ -22,6 +22,41 @@ body { hyphens: auto; } +.calendar-options { + border: 2px solid #ccc; + color: white; + padding: 20px; + text-align: center; + background-color: gray; + border-radius: 5px; + margin: 20px 0; +} + +.calendar-link { + display: inline-block; + background-color: #4285f4; + color: white; + padding: 12px 24px; + text-decoration: none; + border-radius: 4px; + font-size: 16px; + margin: 10px; +} + +.embed-button { + background-color: #34a853; + color: white; + padding: 12px 24px; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 16px; + margin: 10px; +} + +.hidden { + display: none; +} /** Headline Styles */ h1 {