From 96aa959fa75a125ae687d05a3e35c922e4400d77 Mon Sep 17 00:00:00 2001 From: lillijo Date: Thu, 27 Jun 2024 18:49:28 +0200 Subject: [PATCH] basic working imprint and contact (and faq) --- locales/de.json | 86 +++++++++++++++++ locales/en.json | 86 +++++++++++++++++ package-lock.json | 92 +++++++++++++++++++ package.json | 3 + src/api/constants.ts | 69 ++++++++++++++ src/api/rest/events.ts | 43 +++++++-- src/app/[locale]/@modal/(.)contact/page.tsx | 10 ++ src/app/[locale]/@modal/(.)imprint/page.tsx | 10 ++ src/app/[locale]/@modal/default.tsx | 3 + src/app/[locale]/contact/page.tsx | 9 +- src/app/[locale]/error.tsx | 16 ++++ src/app/[locale]/imprint/page.tsx | 6 +- .../components/content/info/info.server.tsx | 30 +++++- .../content/info/item/item.client.tsx | 4 +- .../content/info/item/title.client.tsx | 4 +- src/app/[locale]/layout.tsx | 3 + .../components/map/FloorMapMarker.tsx | 2 +- .../[locale]/locations/components/map/map.tsx | 8 +- .../components/map/useMapFunctions.ts | 2 +- .../timeline/components/container.tsx | 30 ++---- .../timeline/components/eventBar.server.tsx | 9 +- .../components/eventLocation.server.tsx | 20 +++- .../[locale]/timeline/components/scale.tsx | 19 ++++ .../timeline/components/timetable.server.tsx | 2 +- src/app/[locale]/timeline/page.tsx | 2 +- src/app/sitemap.ts | 18 ++-- src/components/modal/content.server.tsx | 17 ++++ src/components/modal/modal.tsx | 44 +++++++++ src/components/navigationLink.tsx | 23 +++-- src/components/texts/multiLine.tsx | 2 +- src/config.ts | 4 + src/styles/app.css | 6 +- src/types/types.ts | 15 ++- tailwind.config.ts | 24 +++++ 34 files changed, 638 insertions(+), 83 deletions(-) create mode 100644 src/app/[locale]/@modal/(.)contact/page.tsx create mode 100644 src/app/[locale]/@modal/(.)imprint/page.tsx create mode 100644 src/app/[locale]/@modal/default.tsx create mode 100644 src/app/[locale]/error.tsx create mode 100644 src/app/[locale]/timeline/components/scale.tsx create mode 100644 src/components/modal/content.server.tsx create mode 100644 src/components/modal/modal.tsx diff --git a/locales/de.json b/locales/de.json index 7e6de1f..31637b0 100644 --- a/locales/de.json +++ b/locales/de.json @@ -47,5 +47,91 @@ "language": "{count, plural, =1 {Sprache} other {Sprachen}}", "errors": { "audiPlayer": "Dein Browser unterstützt dieses Audioelement nicht." + }, + "Imprint": { + "title": "Impressum", + "text": "Universität der Künste Berlin
Körperschaft des öffentlichen Rechts
gesetzlich vertreten durch den Präsidenten Prof. Dr. Norbert Palz
Einsteinufer 43
D-10587 Berlin
Telefon: 030/3185-0
Umsatzsteuer-Identifikationsnummer: DE811403316
Rechtsaufsicht: Senatsverwaltung für Wissenschaft, Gesundheit, Pflege und Gleichstellung

Entwicklung: udk/spaces
Gestaltung: Momo Anders und Leon Hochhäuser
Websitegestaltung und Entwicklung: Marisa Nest, Juan Pablo Gaviria Bedoya, Lukas Esser, Lilli Joppien
Redaktion: Stabsstelle überfakultäre Veranstaltungen

Die redaktionelle Verantwortung der Programmunterseiten liegt bei den Mitwirkenden selbst. Die zuständigen Ansprechpartner*innen sind auf den Programmunterseiten genannt. Programminhalte werden laufend durch ihre Redakteur*innen aktualisiert.

Hinweis
Die Universität der Künste (UdK) Berlin übernimmt keine Gewähr für die Aktualität, Richtigkeit und Vollständigkeit der auf dieser Website bereitgestellten Angaben. Dies gilt im besonderen Maße für die Inhalte externer Internetseiten, auf die über Hyperlinks direkt oder indirekt verwiesen wird und die von der UdK Berlin nicht beeinflusst werden können. Die von den Rundgang-Mitwirkenden unterbreiteten Angebote unterliegen der Verantwortung der jeweiligen Bereiche und Mitwirkenden.
Der Inhalt dieser Website ist urheberrechtlich geschützt. Die Vervielfältigung oder Verbreitung der auf dieser Seite bereit gestellten Informationen bedarf der vorherigen schriftlichen Genehmigung durch die UdK Berlin.
" + }, + "Contact": { + "title": "Kontakt", + "text": "Der Rundgang – Tage der offenen Tür ist eine Veranstaltung der Universität der Künste Berlin, vertreten durch den Präsidenten Prof. Dr. Norbert Palz.

Veranstaltungsleitung & Veranstaltungskoordination
Die diensthabende Veranstaltungsleitung ist an den Rundgang-Tagen erreichbar unter der Dienstnummer:
Die Nummer wird zum Rundgang veröffentlicht.

Veranstaltungsleitung
Felix Wolf , Referat Bau und Liegenschaften

Stabsstelle überfakultäre Veranstaltungen
Anne-Marie Franz | Mona Völkel | Kim Füllgraf | Alexander Kirchner

Presse- und öffentlichkeitsarbeit
Stabsstelle Presse/Kommunikation
Claudia Assmann | Trang Vu | Anna-Maria Roth

Social Media
Stabsstelle Presse/Kommunikation

Awareness
Access Netzwerk
Die Nummer wird zum Rundgang veröffentlicht

Sicherheit
Boretti Solutions GmbH

Diversitätsbeauftragte
Alejandra Nieves Camacho

UdK:Shop
Stabsstelle Strategisches Marketing

Ansprechpartner*innen der Fakultäten und Zentren

Fakultät Bildende Kunst
Akiko Bernhöft | Jacob Rava | Gregory Cumins | Karsten Konrad

Fakultät Gestaltung
Institut für transmediale Gestaltung
Constanze Hein | Lilli Kuschel
Institut für experimentelles Bekleidungs- und Textildesign
Franziska Schreiber | Berit Greinke | Teresa Fagbohoun
Institut für Produkt- und Prozessgestaltung
Julian Ribler | Johanna Dehio
Institut Architektur und Städtebau
Lucie Leder

Fakultät Musik
Harry Curtis | Yulia Vashchenko | Celine Kodim

Fakultät Darstellende Kunst
Laura Jimenez Gonzalez

Berlin Career College
Kathrin Rusch |
Studiengang Sound Studies and Sonic Arts (M.A.)
Julia Koffler
Artist Training
Kathrin Rusch | Sabine Beta | Melanie Waldheim

Hochschulübergreifendes Zentrum Tanz Berlin
Nik Haffner | Sabine Trautwein | Judith Brückmann

Jazz-Institut Berlin
Heinrich Köbberling | Paulo Morello | Johannes Bockholt-Dams

" + }, + "Info": { + "information": "Informationen", + "about": "Über", + "faqs": { + "arrival": { + "title": "Anreise", + "text": "Der Rundgang 2024 findet an folgenden Standorten statt:
Bundesallee 1-12, 10719 Berlin
Galerie Alte Schule Adlershof, Dörpfeldstraße 56, 12489 Berlin
Hardenbergstraße 33, 10623 Berlin
Fasanenstraße 1 B, 10623 Berlin
Hochschulübergreifendes Zentrum Tanz (HZT), Uferstraße 23, 13357 Berlin
Jazz-Institut Berlin, Einsteinufer 43-53 10587 Berlin
Konzertsaal Hardenbergstraße / Ecke Fasanenstraße, 10623 Berlin
Lietzenburger Straße 45, 10777 Berlin
Medienhaus, Grunewaldstraße 2–5, 10823 Berlin
Straße des 17. Juni 118, 10623 Berlin
Weitere Informationen, u.a. zur Anfahrt der einzelnen Standorte befinden sich auf der Serviceseite der UdK Berlin.
" + }, + "awareness": { + "title": "Awareness", + "text": "Die UdK Berlin ist ein Ort der Kunst- und Wissenschaftsfreiheit und des kritischen, aber immer respektvollen Austauschs. Wir bitten um einen offenen Blick für vielfältige Perspektiven. Hassrede und Diskriminierung dulden wir nicht.
Den Verhaltenskodex der UdK Berlin kannst du hier einsehen.
Um den Rundgang 2024 für alle Personen sicher zu gestalten, wird ein Awarenessteam an allen Tagen am Standort Hardenbergstraße 33 und am Eröffnungstag am Standort Grunewaldstraße 2–5 eingesetzt. Du erkennst die Mitarbeitenden des Awarenessteams an ihren lila Westen mit der Aufschrift „Awareness“.
Solltest Du Dich unwohl fühlen oder unangebrachtes Verhalten beobachten, wende Dich bitte an das Awarenessteam oder das Sicherheitspersonal. Dies gilt ausnahmslos für alle Standorte des Rundgangs. Die Telefonnummer des Awarenessteams wird am 19. Juli hier veröffentlicht.
Das Awarenessteam setzt sich aus Mitarbeitenden des Access-Netzwerks zusammen. Das Access-Netzwerk verbindet klassische Sicherheitsaufgaben mit feministischer Haltung, diskriminierungssensibler Arbeitsweise, kommunikativen Lösungsstrategien, selbstkritischer Reflexion und Awarenessansatz. Auch an der Tür werden Awarenesspersonen eingesetzt, um in möglichen Konfliktsituationen vermitteln zu können." + }, + "wristbands": { + "title": "Bändchen", + "text": "Angehörige der Universität der Künste Berlin können sich ab Montag, dem 15. Juli 2024, nach vorheriger Registrierung ein Bändchen am Ticketcounter im Konzertsaalfoyer abholen. Registrierung und Bändchen sind notwendig, um am Rundgang einen vorrangigen Einlass zu erhalten.
Mehr zur Registrierung und zum Einlass findest Du hier." + }, + "accessibility": { + "title": "Barrierefreiheit", + "text": "Alle Informationen zu den (Rollstuhl-)Zugänglichkeiten der Standorte findest Du hier. Während des Rundgangs 2024 stehen Dir das Awarenessteam und dasSicherheitspersonal zur Verfügung, solltest Du Unterstützung benötigen oderFragen haben. An den Veranstaltungstagen erreichst du das Awarenessteamtelefonisch oder per Whatsapp und Signal. Die Telefonnummer wird am 19. Julihier veröffentlicht. Bei Fragen vor dem Rundgang wende Dich gern an rundgang@udk-berlin.de oder an Christian Schmidts, den Beauftragten für Studierende mit Behinderungen undchronischen Krankheiten unter: +49 (0)1525 3088865
teilhabe@udk-berlin.de" + }, + "payment": { + "title": "Bezahlung", + "text": "Der Eintritt ist an allen Standorten des Rundgangs frei.
Shops, Cateringangebote und Bars werden individuell durch verschiedene Firmen und Bereiche der Universität betrieben. Barzahlung wird an allen Standorten möglich sein, die Zahlung mit Karte nur in Ausnahmefällen." + }, + "fire": { + "title": "Brandschutz, Evakuierung, Fluchtwege", + "text": "Zur Sicherung der Veranstaltung sind Brandschutzhelfende, zu erkennen an roten Westen mit der Aufschrift „Brandschutz“, vor Ort. Die Flucht- und Rettungswege sind an allen Gebäuden eindeutig gekennzeichnet und an zentralen Punkten im Gebäude ausgehängt.
In allen Gebäuden gilt absolutes Rauchverbot." + }, + "entry": { + "title": "Einlass", + "text": "Der Einlass ist frei. Es werden keine Tickets benötigt.
Studierende, Lehrende und Mitarbeitende der UdK Berlin sowie externe Mitwirkende am Rundgang-Programm erhalten an allen Tagen vorrangigen Einlass. Für diesen ist eine Registrierung notwendig.
Wir bitten alle Studierenden, Lehrenden und Mitarbeitenden der UdK Berlin sowie alle Programm-Mitwirkenden um eine frühzeitige Registrierung, um einen reibungslosen Einlass zu gewährleisten. Nur wer registriert ist und ein Bändchen vorweisen kann, erhält den vorrangigen Einlass.
Informationen zur Registrierung findest Du hier. Der Mitarbeitenden- oder Studierendenausweis allein ermöglicht keinen vorrangigen Einlass zur Veranstaltung.
Damit unser Sicherheitskonzept eingehalten werden kann, wird es für die Standorte Hardenbergstraße 33 und Grunewaldstraße 2-5 eine Einlassbeschränkung geben. Diese wurde im Vorfeld aufgrund des Sicherheitskonzepts und der Brandschutzvorlage festgelegt. Wird der Einlass vorübergehend gestoppt, kann dies daran liegen, dass die Obergrenze der Personenzahl im Gebäude erreicht ist.
Am Einlass achtet der Sicherheitsdienst außerdem darauf, dass keine gefährlichen Gegenstände oder Glasflaschen mit ins Gebäude gebracht werden.
Die Öffnungszeiten des Rundgangs 2024 findest Du hier. Bitte beachte, dass diese sich während des Rundgangs von den regulären Öffnungszeiten der Standorte unterscheiden." + }, + "opening": { + "title": "Eröffnung", + "text": "Der Rundgang wird am 19. Juli um 17 Uhr offiziell durch den Präsidenten der UdK Berlin in der Straße des 17. Juni 118, 10623 Berlin eröffnet. Die Veranstaltung ist öffentlich.
Die Informationen zu den Öffnungszeiten aller Standorte findest Du hier." + }, + "food": { + "title": "Essen & Trinken", + "text": "Im Garten der Hardenbergstraße 33 bietet ein Cateringunternehmen Speisen und Getränke an. Auch vegane und vegetarische Speisen werden angeboten.
An allen Standorten organisieren einzelne Klassen individuelle Bars.
Um den Rundgang so nachhaltig wie möglich zu gestalten, wird es an den Standorten Pfandsysteme geben." + }, + "lostnfound": { + "title": "Lost & Found", + "text": "Fundsachen kannst Du an den Pforten der Gebäude abgeben bzw. abholen." + }, + "opening_times": { + "title": "Öffnungszeiten", + "text": "Die genauen Öffnungszeiten der einzelnen Standorte findest Du hier.
Bitte beachte, dass sich die Öffnungszeiten während des Rundgangs von den regulären Öffnungszeiten der Standorte unterscheiden." + }, + "press": { + "title": "Presse und Kommunikation", + "text": "Presse- und Medienvertreter*innen können sich mit ihren Anfragen an die Stabsstelle Presse/Kommunikation wenden.

Die Stabsstelle verantwortet zudem die zentralen Social-Media-Kanäle der UdK Berlin auf Instagram, X (Twitter) und Facebook. Daneben bestehen viele weitere Social Media Auftritte von unterschiedlichen Studiengängen, Instituten und Arbeitsbereichen der UdK Berlin, die dazu beitragen, die Vielseitigkeit der Hochschule zum Rundgang sichtbar zu machen." + }, + "program": { + "title": "Programm", + "text": "Das digitale Programm gibt es hier. Ein gedrucktes Programmheft liegt an den einzelnen Standorten aus.
Studierende und Lehrende der UdK Berlin stellen an den jeweiligen Standorten ihrer Fakultäten und Studiengänge ihre Arbeiten aus.
Alle Ansprechpartner*innen der Fakultäten und Zentren zum Rundgang sind unter Team und Kontakt auf der Website der UdK Berlin aufgeführt.
Bei der Fülle von Angeboten, kann leider nicht vermieden werden, dass es zu Überschneidungen im Programm kommt." + }, + "recycling": { + "title": "Recycling", + "text": "Glasflaschen sind an den Tagen des Rundgangs in den Gebäuden nicht erlaubt. Die Bars arbeiten mit Pfandsystemen. Wir bitten alle Personen, eigenständig darauf zu achten, ihren Müll fachgerecht zu entsorgen und auf Mülltrennung zu achten." + }, + "registration": { + "title": "Registrierung", + "text": "Angehörige und Mitwirkende der UdK Berlin haben an allen drei Rundgangtagen vorrangigen Einlass. Zur Umsetzung des vorrangigen Einlasses ist eine Registrierung notwendig. Nur eine Registrierung und das Vorzeigen des Bändchens als Nachweis ermöglichen einen vorrangigen Einlass. Registrieren kann man sich ab dem 3. Juli. Alle Informationen zur Registrierung findest Du hier.
Angehörige und Mitwirkende der UdK Berlin können sich ab Montag, dem 15. Juli 2024, nach vorheriger Registrierung ein Bändchen am Ticketcounter im Konzertsaalfoyer abholen. Registrierung und Bändchen sind notwendig, um am Rundgang einen vorrangigen Einlass zu erhalten." + }, + "reservation": { + "title": "Reservierung", + "text": "Eine Reservierung von Plätzen für einzelne Veranstaltungen ist nicht möglich. Eine Ausnahme bildet die SCHAU 24. Die Registrierung erfolgt über die Fakultät Gestaltung." + }, + "safety": { + "title": "Sicherheit", + "text": "Um die Veranstaltung für alle Personen sicher zu gestalten, werden ausgebildete Mitarbeitende für die Sicherheit, den Brandschutz und die Umsetzung des Awarenesskonzeptes vor Ort sein.
Der Einsatz von professionell ausgebildetem Sicherheitspersonal ist bei öffentlichen Veranstaltungen in der Größenordnung des Rundgangs gesetzlich verpflichtend. Die Aufgaben des Sicherheitsdienstes umfassen den Einlass an der Hardenbergstraße 33 und der Grunewaldstraße 2–5 sowie die Sicherung der Veranstaltung, das heißt ihrer Besucher*innen, ihrer Ausstattung und Infrastruktur. Das Sicherheitspersonal trägt grüne Westen mit der Aufschrift „Sicherheit“. Außerdem gibt es Mitarbeitende, die zur Sicherung des Brandschutzes vor Ort sind. Diese erkennst Du an den roten Westen mit der Aufschrift „Brandschutz“. Für Konfliktsituationen ist ein externes Awarenessteam vor Ort. Dieses erkennst Du an den lila Westen mit der Aufschrift „Awareness“. Das Awarenessteam ist auch beim Einlass am Standort Hardenbergstraße 33 anwesend sowie am Freitag, 19.7. an der Grunewaldstraße 2–5.
Im Vorfeld des Rundgangs wurden die Mitarbeitenden umfassend geschult. Das Handout zum Briefing kann vorab (Der Link folgt hier in der Woche vor dem Rundgang) eingesehen werden.
Aufgabe des Sicherheitspersonals vor Ort ist auch die Unterbindung von Sachbeschädigungen, Vandalismus, Diebstahl sowie die Bewachung und Sicherung von Material und Infrastruktur. Sachbeschädigungen oder Diebstähle sollten dem Sicherheitspersonal oder der Veranstaltungsleitung gemeldet werden.
Mit der Sicherung der Veranstaltung ist in diesem Jahr die Firma Boretti Solutions GmbH beauftragt." + }, + "other": { + "title": "Weiteres", + "text": "Barbetreibende Klassen können den Liefereingang für die individuelle Getränkelieferung nutzen. In Absprache mit der Veranstaltungsleitung kann der Lieferanteneingang für die individuelle Getränkelieferung einzelner Klassen genutzt werden. Getränkelieferungen über den Haupteingang sind ausgeschlossen.
Über Anregungen, Tipps und Fragen für den Rundgang 2024 freuen wir uns unter rundgang@udk-berlin.de." + } + } } } \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index 8214211..c08548e 100644 --- a/locales/en.json +++ b/locales/en.json @@ -47,5 +47,91 @@ "language": "{count, plural, =1 {Language} other {Languages}}", "errors": { "audiPlayer": "Your browser does not support the audio element." + }, + "Imprint": { + "title": "Imprint", + "text": "Berlin University of the Arts
Corporation under public law
legally represented by the President Prof. Dr. Norbert Palz
Einsteinufer 43
D-10587 Berlin
Phone: 030/3185-0
Sales tax identification number: DE811403316
Legal supervision: Senate Department for Science, Health, Care and Equality

Development: udk/spaces
Design: Momo Anders and Leon Hochhäuser
Website design and development: Marisa Nest, Juan Pablo Gaviria Bedoya, Lukas Esser, Lilli Joppien
Editing: Department for Interfaculty Events
The editorial responsibility for the program subpages lies with the contributors themselves. The responsible contact persons are named on the program subpages. Program content is continuously updated by their editors.

Note
The Berlin University of the Arts (UdK) does not guarantee that the information provided on this website is up-to-date, correct, or complete. This applies in particular to the content of external websites that are referred to directly or indirectly via hyperlinks and over which the UdK Berlin has no control. The offers made by the Rundgang contributors are the responsibility of the respective areas and participants.

The content of this website is protected by copyright. The reproduction or distribution of the information provided on this site requires the prior written consent of the UdK Berlin." + }, + "Contact": { + "title": "Contact", + "text": "Team und Contacts
Rundgang - Open Days is an event of the Berlin University of the Arts, represented by the President Prof. Dr. Norbert Palz.
The list is constantly being updated:
Event management & event coordination
The event management on duty can be reached on the tour days at the service number:
The number will be published shortly before Rundgang.
Event management
Felix Wolf, Department of Construction and Real Estate
Department for Interfaculty Events
Anne-Marie Franz Mona Völkel | Kim Füllgraf | Alexander Kirchner
Press and Public Relations
Press/ Communications Office
Claudia Assmann | Trang Vu | Anna-Maria Roth
Social Media
Press/Communications
Awareness
Access Netzwerk
The number will be published shortly before Rundgang.
Security
Boretti Solutions GmbH
Anti-Discrimination & Diversity Officer
Alejandra Nieves Camacho
UdK:Shop
Strategic Marketing Unit
Contact persons of the faculties and centers
College of Fine Arts
Akiko Bernhöft | Jacob Rava | Gregory Cumins | Karsten Konrad
College of Architecture, Media and Design
Institute of Transmedia Design
Constanze Hein | Lilli Kuschel
Institute of Experimental Fashion and Textile Design
Franziska Schreiber | Berit Greinke Teresa Fagbohoun
Institute of Product and Process design
Julian Ribler | Johanna Dehio
Institute of Architecture and Urban Development
Lucie Leder

College of Music
Harry Curtis | Yulia Vashchenko | Celine Kodim
College of Performing Arts
Laura Jimenez Gonzalez
Berlin Career College
Kathrin Rusch Sabine Beta
Postgraduate Programme Sound Studies and Sonic Arts (M.A.)
Julia Koffler
Artist Training
Kathrin Rusch | Sabine Beta | Melanie Waldheim
Inter-University Center for Dance Berlin (HZT)
Nik Haffner | Sabine Trautwein | Judith Brückmann
Jazz-Institut Berlin
Heinrich Köbberling | Paulo Morello | Johannes Bockholt-Dams
" + }, + "Info": { + "information": "Information", + "about": "About", + "faqs": { + "arrival": { + "title": "Arrival", + "text": "The Rundgang 2024 will take place at the following locations:
Bundesallee 1-12, 10719 Berlin
Galerie Alte Schule Adlershof, Dörpfeldstraße 56, 12489 Berlin
Hardenbergstraße 33, 10623 Berlin
Fasanenstraße 1 B, 10623 Berlin
Hochschulübergreifendes Zentrum Tanz (HZT), Uferstraße 23, 13357 Berlin
Jazz-Institut Berlin, Einsteinufer 43-53 10587 Berlin
Konzertsaal Hardenbergstraße / Ecke Fasanenstraße, 10623 Berlin
Lietzenburger Straße 45, 10777 Berlin
Medienhaus, Grunewaldstraße 2–5, 10823 Berlin
Straße des 17. Juni 118, 10623 Berlin
 
Further information on how to get to the individual locations can be found on the UdK Berlin service pages.
" + }, + "awareness": { + "title": "Awareness", + "text": "The UdK Berlin is a place of artistic and academic freedom and of critical but always respectful exchange. We ask for an open mind for diverse perspectives. We do not tolerate hate speech and discrimination.
You can read the UdK Berlin Code of Conduct here.
To make the Rundgang 2024 safe for everyone, an awareness team will be present on all days at the Hardenbergstraße 33 and on the opening day at the Grunewaldstraße 2–5. You will recognize the members of the awareness team by their purple vests with the label “Awareness”.
Should you feel uncomfortable or observe inappropriate behavior, please contact the awareness team or the security staff. This applies without exception for all locations on the Rundgang. The telephone number of the awareness team will be published here on July 19.
The awareness team is staffed by employees from the Access Network. The Access Network combines classic security tasks with a feminist approach, discrimination-sensitive working methods, communicative solution strategies, self-critical reflection and an awareness approach. We also have awareness staff at the door to mediate in potential conflict situations.
" + }, + "wristbands": { + "title": "Wristbands", + "text": "Members of the Berlin University of the Arts can pick up a wristband at the ticket counter in the concert hall foyer from Monday, July 15, 2024, after registering in advance. Registration and wristbands are required to receive priority admission to the Rundgang.
You can find out more about registration and admission here.
" + }, + "accessibility": { + "title": "Accessibility", + "text": "You can find all information on the (wheelchair) accessibility of the locations here.
During Rundgang 2024, the awareness team and security staff will be available to help you if you need support or have any questions. On the days of the event, you can reach the awareness team by phone or via Whatsapp and Signal.The phone number will be published here on July 19.
If you have any questions before the Rundgang, please contact rundgang@udk-berlin.de or Christian Schmidts, the representative for students with disabilities and chronic illnesses, on
+49 (0)1525 3088865
teilhabe@udk-berlin.de
" + }, + "payment": { + "title": "Payment", + "text": "Admission is free at all locations on the Rundgang.
Shops, catering services and bars are operated individually by various companies and other departments of the university. Cash payment will be possible at all locations, payment by card only in exceptional cases." + }, + "fire": { + "title": "Fire protection, evacuation, escape routes", + "text": "Fire protection assistants, recognizable by red vests with the label “Brandschutz” (fire protection), are on site to ensure the safety of the event. The escape and rescue routes are clearly marked on all buildings and posted at central points in the building.
Smoking is absolutely prohibited in all buildings." + }, + "entry": { + "title": "Admission", + "text": "Admission is free. No tickets are required.
Students, teachers and staff of the UdK Berlin as well as external participants in the Rundgang program receive priority admission on all days. Registration is required for this.
We ask all students, teachers and staff of the UdK Berlin as well as all program participants to register early to ensure smooth admission. Only those who are registered and can show a wristband will be given priority admission.
Information on registration can be found here. The employee or student ID alone does not allow priority admission to the event.
To ensure that our security concept can be adhered to, there will be an admission restriction for the locations Hardenbergstraße 33 and Grunewaldstraße 2–5. This was determined in advance on the basis of the security concept and the fire protection proposal. If admission is temporarily stopped, this may be because the upper limit for the number of people in the building has been reached.
At the entrance, the security service also ensures that no dangerous objects or glass bottles are brought into the building.
You can find the opening hours of the Rundgang 2024 here. Please note that these differ from the regular opening hours of the locations during the Rundgang.
" + }, + "opening": { + "title": "Opening Event", + "text": "The Rundgang will be officially opened by the President of the UdK Berlin on July 19 at 5 p.m. at Straße des 17. Juni 118, 10623 Berlin. The event is open to the public.
Information on the opening hours of all locations can be found here.
" + }, + "food": { + "title": "Food & Beverages", + "text": "A catering company offers food and drinks in the garden of Hardenbergstraße 33. Vegan and vegetarian dishes are also available.
Individual classes organize individual bars at all locations.
To make the Rundgang as sustainable as possible, there will be deposit systems at the locations." + }, + "lostnfound": { + "title": "Lost & Found", + "text": "You can hand in or collect lost property at the building gates." + }, + "opening_times": { + "title": "Opening hours", + "text": "You can find the exact opening hours of the individual locations hier.
Please note that the opening hours during Rundgang differ from the regular opening hours of the locations." + }, + "press": { + "title": "Press and Communication", + "text": "Press and media representatives can contact the Press/Communications Department with their inquiries.
The department is also responsible for the UdK Berlin's central social media channels on Instagram, X (Twitter) and Facebook. In addition, there are many other social media presences of various degree programs, institutes and work areas of the UdK Berlin, which contribute to making the versatility of the university visible during Rundgang.
" + }, + "program": { + "title": "Programm", + "text": "The digital program is available here. A printed program is available at the individual locations.
Students and teachers of the UdK Berlin exhibit their work at the respective locations of their faculties and study programs.
All contacts of the faculties and centres for the Rundgang are listed under Team and Contacts on the UdK Berlin website.
Due to the large number of offers, it is unfortunately not possible to avoid overlaps in the program.
" + }, + "recycling": { + "title": "Recycling", + "text": "During the Rundgang, glass bottles are not allowed in the buildings. The bars work with deposit systems. We ask everyone to ensure that they dispose and separate their waste correctly." + }, + "registration": { + "title": "Registration", + "text": "Members and participants of the UdK Berlin have priority admission on all three Rundgang days. Registration is required for priority admission. Only registration and presentation of the wristband as proof will allow priority admission. You can register from July 3. All information about registration can be found here.
Members and participants of the UdK Berlin can pick up a wristband at the ticket counter in the foyer of the concert hall from Monday, July 15, 2024, after prior registration. Registration and wristband are necessary to receive priority admission to Rundgang.
" + }, + "reservation": { + "title": "Reservierung", + "text": "It is not possible to reserve seats for individual events. An exception to this is SCHAU24, where registration is handled by the College of Architecture, Media and Design.
" + }, + "safety": { + "title": "Safety", + "text": "In order to make the event safe for everyone, trained staff will be on site for security, fire safety and the implementation of the awareness concept.
The use of professionally trained security personnel is mandatory by law for public events of the size of the Rundgang. The tasks of the security service include admission at Hardenbergstrasse 33 and Grunewaldstrasse 2–5 as well as securing the event, i.e. its visitors, equipment and infrastructure. The security personnel wear green vests with the label 'Security'. There are also employees who are on site to ensure fire protection. You can recognize them by their red vests with the label 'Brandschutz'. An external awareness team is on site for conflict situations. You can recognize this team by the purple vests with the label 'Awareness'. The awareness team is also present at the entrance to the Hardenbergstraße 33 site.
The employees have received extensive training prior to the Rundgang. The handout on the briefing can be accessed in advance and will be published here in July.
The task of the security personnel on site is also to prevent damage to property, vandalism, theft and to guard and secure material and infrastructure. Damage to property or theft should be reported to the security personnel or the event management.
This year, the company Boretti Solutions has been commissioned to provide security for the event.
" + }, + "other": { + "title": "Further Information", + "text": "Bar operating classes can use the delivery entrance for individual beverage delivery. In consultation with event management, the vendor entrance may be used for individual beverage deliveries for individual classes. Beverage deliveries via the main entrance are excluded.
We welcome suggestions, tips and questions for the Rundgang 2024 at rundgang@udk-berlin.de
" + } + } } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9a0951e..93242c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,8 @@ "@apollo/client": "^3.10.1", "@turf/bbox": "^7.0.0", "classnames": "^2.5.1", + "d3-scale": "^4.0.2", + "d3-time-format": "^4.1.0", "graphql": "^16.8.1", "iso-639-1": "^3.1.2", "mapbox-gl": "^3.4.0", @@ -26,6 +28,7 @@ "zustand": "^4.5.2" }, "devDependencies": { + "@types/d3-time-format": "^4.0.3", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", @@ -744,6 +747,12 @@ "url": "https://opencollective.com/turf" } }, + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", + "dev": true + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -1785,6 +1794,81 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -3557,6 +3641,14 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } + }, "node_modules/intl-messageformat": { "version": "10.5.12", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.12.tgz", diff --git a/package.json b/package.json index f7e9f2c..34a5878 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "@apollo/client": "^3.10.1", "@turf/bbox": "^7.0.0", "classnames": "^2.5.1", + "d3-scale": "^4.0.2", + "d3-time-format": "^4.1.0", "graphql": "^16.8.1", "iso-639-1": "^3.1.2", "mapbox-gl": "^3.4.0", @@ -31,6 +33,7 @@ "zustand": "^4.5.2" }, "devDependencies": { + "@types/d3-time-format": "^4.0.3", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", diff --git a/src/api/constants.ts b/src/api/constants.ts index 4606c93..a4557fa 100644 --- a/src/api/constants.ts +++ b/src/api/constants.ts @@ -229,3 +229,72 @@ export const FLOORPLAN_MARGINS = { }; export const LOCATION_ROOT = process.env.REST_API_LOCATIONS_ROOT; + +export const TIMES = [ + ['left-[0px]', '10 AM'], + ['left-[100px]', '11 AM'], + ['left-[200px]', '12 PM'], + ['left-[300px]', '01 PM'], + ['left-[400px]', '02 PM'], + ['left-[500px]', '03 PM'], + ['left-[600px]', '04 PM'], + ['left-[700px]', '05 PM'], + ['left-[800px]', '06 PM'], + ['left-[900px]', '07 PM'], + ['left-[1000px]', '08 PM'], + ['left-[1100px]', '09 PM'], + ['left-[1200px]', '10 PM'], + ['left-[1300px]', '11 PM'], + ['left-[1400px]', '12 AM'], + ['left-[1500px]', '01 AM'], + ['left-[1600px]', '02 AM'], + ['left-[1700px]', '03 AM'], + ['left-[1800px]', '04 AM'], + ['left-[1900px]', '05 AM'], + ['left-[2000px]', '06 AM'], + ['left-[2100px]', '07 AM'], + ['left-[2200px]', '08 AM'], + ['left-[2300px]', '09 AM'], + ['left-[2400px]', '10 AM'], + ['left-[2500px]', '11 AM'], + ['left-[2600px]', '12 PM'], + ['left-[2700px]', '01 PM'], + ['left-[2800px]', '02 PM'], + ['left-[2900px]', '03 PM'], + ['left-[3000px]', '04 PM'], + ['left-[3100px]', '05 PM'], + ['left-[3200px]', '06 PM'], + ['left-[3300px]', '07 PM'], + ['left-[3400px]', '08 PM'], + ['left-[3500px]', '09 PM'], + ['left-[3600px]', '10 PM'], + ['left-[3700px]', '11 PM'], + ['left-[3800px]', '12 AM'], + ['left-[3900px]', '01 AM'], + ['left-[4000px]', '02 AM'], + ['left-[4100px]', '03 AM'], + ['left-[4200px]', '04 AM'], + ['left-[4300px]', '05 AM'], + ['left-[4400px]', '06 AM'], + ['left-[4500px]', '07 AM'], + ['left-[4600px]', '08 AM'], + ['left-[4700px]', '09 AM'], + ['left-[4800px]', '10 AM'], + ['left-[4900px]', '11 AM'], + ['left-[5000px]', '12 PM'], + ['left-[5100px]', '01 PM'], + ['left-[5200px]', '02 PM'], + ['left-[5300px]', '03 PM'], + ['left-[5400px]', '04 PM'], + ['left-[5500px]', '05 PM'], + ['left-[5600px]', '06 PM'], + ['left-[5700px]', '07 PM'], + ['left-[5800px]', '08 PM'], + ['left-[5900px]', '09 PM'], + ['left-[6000px]', '10 PM'], +]; + +export const TIME_PADDING = 0; +export const LOCATION_PADDING = 60; +export const LOCATION_HEIGHT = 1000; +export const TIME_WIDTH = 6000; diff --git a/src/api/rest/events.ts b/src/api/rest/events.ts index 2fd2615..9fcf327 100644 --- a/src/api/rest/events.ts +++ b/src/api/rest/events.ts @@ -1,16 +1,39 @@ import { cache } from 'react'; import { getRestApiQuery } from '@/api/rest/api'; -import { LOCATION_ROOT } from '../constants'; -import { Context, GraphQlItem } from '@/types/graphql'; +import { LOCATION_ROOT, TIME_PADDING, TIME_WIDTH } from '../constants'; +import { Context } from '@/types/graphql'; +import { scaleTime } from 'd3-scale'; +import { EventItem } from '@/types/types'; -export const getEventList = cache( - async (id: string): Promise => { - const res = await fetch( - getRestApiQuery(`${id}/list/filter/allocation/temporal`), - ); - return res.json(); - }, -); +const toDate = (stamp, s) => s(new Date(parseInt(stamp) * 1000)); + +export const getEventList = cache(async (id: string): Promise => { + const res = await fetch( + getRestApiQuery(`${id}/list/filter/allocation/temporal`), + ); + const scaleX = scaleTime() + .domain([new Date(2024, 6, 19, 12), new Date(2024, 6, 22, 0)]) + .range([TIME_PADDING, TIME_WIDTH]); + + return res.json().then((r) => + r.map((ev) => { + const start = + ev.allocation.temporal?.length > 0 + ? ev.allocation.temporal[0].start + : new Date(2024, 6, 19, 12); + const end = + ev.allocation.temporal?.length > 0 + ? ev.allocation.temporal[0].end + : new Date(2024, 6, 19, 16); + + return { + ...ev, + left: `left-[${toDate(start, scaleX)}px]`, + width: `width-[${toDate(end, scaleX) - toDate(start, scaleX)}px]`, + }; + }), + ); +}); export const getEventLocations = cache(async (): Promise => { const res = await fetch(getRestApiQuery(`${LOCATION_ROOT}/tree`)); diff --git a/src/app/[locale]/@modal/(.)contact/page.tsx b/src/app/[locale]/@modal/(.)contact/page.tsx new file mode 100644 index 0000000..168b357 --- /dev/null +++ b/src/app/[locale]/@modal/(.)contact/page.tsx @@ -0,0 +1,10 @@ +import Content from '@/components/modal/content.server'; +import Modal from '@/components/modal/modal'; + +export default function Page(props: any) { + return ( + + + + ); +} diff --git a/src/app/[locale]/@modal/(.)imprint/page.tsx b/src/app/[locale]/@modal/(.)imprint/page.tsx new file mode 100644 index 0000000..cdf44c8 --- /dev/null +++ b/src/app/[locale]/@modal/(.)imprint/page.tsx @@ -0,0 +1,10 @@ +import Content from '@/components/modal/content.server'; +import Modal from '@/components/modal/modal'; + +export default function Page(props: any) { + return ( + + + + ); +} diff --git a/src/app/[locale]/@modal/default.tsx b/src/app/[locale]/@modal/default.tsx new file mode 100644 index 0000000..6ddf1b7 --- /dev/null +++ b/src/app/[locale]/@modal/default.tsx @@ -0,0 +1,3 @@ +export default function Default() { + return null; +} diff --git a/src/app/[locale]/contact/page.tsx b/src/app/[locale]/contact/page.tsx index 388a348..4bc61d5 100644 --- a/src/app/[locale]/contact/page.tsx +++ b/src/app/[locale]/contact/page.tsx @@ -1,7 +1,10 @@ +import Content from '@/components/modal/content.server'; +import Modal from '@/components/modal/modal'; + export default async function Page(props: any) { return ( -
-
Generic Page Design
-
+ + + ); } diff --git a/src/app/[locale]/error.tsx b/src/app/[locale]/error.tsx new file mode 100644 index 0000000..8fb960c --- /dev/null +++ b/src/app/[locale]/error.tsx @@ -0,0 +1,16 @@ +'use client'; + +export default function Error({ + error, + reset, +}: { + error: Error & { digest?: string }; + reset: () => void; +}) { + return ( +
+

Something went wrong!

+ +
+ ); +} diff --git a/src/app/[locale]/imprint/page.tsx b/src/app/[locale]/imprint/page.tsx index 388a348..cb9b653 100644 --- a/src/app/[locale]/imprint/page.tsx +++ b/src/app/[locale]/imprint/page.tsx @@ -1,7 +1,9 @@ +import Content from '@/components/modal/content.server'; + export default async function Page(props: any) { return ( -
-
Generic Page Design
+
+
); } diff --git a/src/app/[locale]/info/components/content/info/info.server.tsx b/src/app/[locale]/info/components/content/info/info.server.tsx index 9f30071..15db058 100644 --- a/src/app/[locale]/info/components/content/info/info.server.tsx +++ b/src/app/[locale]/info/components/content/info/info.server.tsx @@ -1,12 +1,36 @@ -import { infoItems } from '@/data'; import InfoContentInfoItem from '@/app/info/components/content/info/item/item.client'; import { HtmlProps } from '@/components/html/html'; +import { getTranslations } from 'next-intl/server'; +const keys = [ + 'arrival', + 'awareness', + 'wristbands', + 'accessibility', + 'payment', + 'fire', + 'entry', + 'opening', + 'food', + 'lostnfound', + 'opening_times', + 'press', + 'program', + 'recycling', + 'registration', + 'reservation', + 'safety', + 'other', +] as const; -export default function InfoContentInfo() { +export default async function InfoContentInfo() { + const t = await getTranslations('Info.faqs'); + const infoItems = keys + .map((k) => ({ id: k, title: t(`${k}.title`), text: t.raw(`${k}.text`) })) + .sort((a, b) => a.title.localeCompare(b.title)); return ( {infoItems.map((item) => ( - + ))}
diff --git a/src/app/[locale]/info/components/content/info/item/item.client.tsx b/src/app/[locale]/info/components/content/info/item/item.client.tsx index 5535bb1..b10091d 100644 --- a/src/app/[locale]/info/components/content/info/item/item.client.tsx +++ b/src/app/[locale]/info/components/content/info/item/item.client.tsx @@ -32,8 +32,8 @@ export default function InfoContentInfoItem({ {isHovered && ( )} diff --git a/src/app/[locale]/info/components/content/info/item/title.client.tsx b/src/app/[locale]/info/components/content/info/item/title.client.tsx index aed021a..0386efa 100644 --- a/src/app/[locale]/info/components/content/info/item/title.client.tsx +++ b/src/app/[locale]/info/components/content/info/item/title.client.tsx @@ -9,7 +9,9 @@ export default function InfoContentInfoItemTitle({ isHovered, }: InfoContentInfoItemProps & { isHovered: boolean }) { return ( - + {item.title} ); diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx index 36c5e59..c2c4940 100644 --- a/src/app/[locale]/layout.tsx +++ b/src/app/[locale]/layout.tsx @@ -33,6 +33,7 @@ export async function generateMetadata({ export default async function RootLayout({ children, + modal, params: { locale }, }: Readonly) { unstable_setRequestLocale(locale); @@ -47,6 +48,8 @@ export default async function RootLayout({
{children} + {modal} +