Wiki-Quellcode von Service Navigator

Zuletzt geändert von Veronika Kocher am Donnerstag, 03 Sep. 2026 14:15

Verstecke letzte Bearbeiter
Veronika Kocher 18.1 1 {{html}}
2 <div style="max-width:1400px;margin:0 auto;">
Veronika Kocher 15.1 3
Veronika Kocher 18.1 4 <p style="margin:0 0 8px 0;">
Veronika Kocher 22.17 5 Künstlerische und administrative Services der Universität unterstützen viele unterschiedliche Anliegen – von Forschungsprojekten und Lehre über Personal, IT, Räume, Beschaffung und Rechtsfragen bis zu internationaler Mobilität und Bibliotheksservices.
Veronika Kocher 18.1 6 </p>
Veronika Kocher 15.1 7
Veronika Kocher 18.1 8 <p style="margin:0 0 22px 0;">
Veronika Kocher 22.17 9 Der <strong>Service-Navigator</strong> ist danach organisiert, was du tun möchtest – nicht nach dem Organigramm der Universität.
Veronika Kocher 18.1 10 </p>
Veronika Kocher 15.1 11
Veronika Kocher 21.1 12 <section style="margin:0 0 28px 0;padding:16px 18px;border:1px solid #e3ded6;border-radius:10px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);">
Veronika Kocher 22.17 13 <h2 style="font-size:20px;margin:0 0 6px 0;color:#35312d;">Service finden</h2>
Veronika Kocher 21.1 14 <p style="margin:0 0 12px 0;color:#6a655e;">
Veronika Kocher 22.17 15 Suche nach Aufgabe, Thema oder Frage – zum Beispiel <em>Raum, Rechnung, Barrierefreiheit, DOI, Veranstaltung, Beschäftigung, Datenschutz</em> oder <em>Bibliothek</em>.
Veronika Kocher 18.1 16 </p>
Veronika Kocher 15.1 17
Veronika Kocher 18.1 18 <form action="https://xwiki.uni-ak.ac.at/bin/view/Main/SolrSearch" method="get" role="search" style="margin:0;">
19 <div style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;">
Veronika Kocher 22.17 20 <label for="service-navigator-search" style="position:absolute;left:-10000px;">Services durchsuchen</label>
Veronika Kocher 18.1 21 <input
22 id="service-navigator-search"
23 name="text"
24 type="search"
Veronika Kocher 22.17 25 placeholder="Wobei brauchst du Unterstützung?"
Veronika Kocher 18.1 26 autocomplete="off"
Veronika Kocher 21.1 27 style="flex:1 1 520px;min-width:260px;padding:11px 13px;border:1px solid #cfc8bd;border-radius:6px;background:#fffdf9;font-size:16px;"
Veronika Kocher 18.1 28 />
Veronika Kocher 22.17 29 <button type="submit" class="btn btn-primary" style="padding:11px 22px;">Suchen</button>
Veronika Kocher 18.1 30 </div>
31 </form>
32 </section>
Veronika Kocher 15.1 33
Veronika Kocher 22.17 34 <h2 style="font-size:24px;margin:0 0 16px 0;color:#35312d;">Services nach deinem Anliegen finden</h2>
Veronika Kocher 15.1 35
Veronika Kocher 18.1 36 <div style="
37 display:grid;
38 grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
39 gap:18px;
40 align-items:stretch;
Veronika Kocher 17.1 41 ">
Veronika Kocher 15.1 42
Veronika Kocher 19.1 43 <!-- 1. PEOPLE, EQUALITY, HEALTH & WORK -->
Veronika Kocher 21.1 44 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #f0aa00;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 45 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 46 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">PERSONAL &amp; ARBEIT</div>
47 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Personal, Gleichstellung, Gesundheit &amp; Arbeit</h3>
48 <p style="color:#6a655e;margin:0 0 14px 0;">Beschäftigung, Gleichstellung, Diversität, Behinderung, Barrierefreiheit und Gesundheit.</p>
Veronika Kocher 15.1 49
Veronika Kocher 22.17 50 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 51 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 52 <li>Fragen zu Beschäftigung, Arbeitsbedingungen oder Arbeitsrecht klären</li>
53 <li>Unterstützung bei Diskriminierung, Gleichstellung oder Diversität erhalten</li>
54 <li>Behinderung, Barrierefreiheit oder Gesundheit am Arbeitsplatz klären</li>
Veronika Kocher 18.1 55 </ul>
56
Veronika Kocher 21.1 57 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 58 Personal · Personalentwicklung · Gleichbehandlung · Diversität · Behinderung · Barrierefreiheit · Gesundheit · Arbeitsrecht
Veronika Kocher 18.1 59 </div>
Veronika Kocher 17.1 60 </div>
Veronika Kocher 18.1 61 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 62 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 63 </div>
64 </section>
Veronika Kocher 15.1 65
Veronika Kocher 19.1 66 <!-- 2. IT & DIGITAL SERVICES -->
Veronika Kocher 21.1 67 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 68 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 21.1 69 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">IT &amp; DIGITAL</div>
Veronika Kocher 22.17 70 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">IT &amp; digitale Services</h3>
71 <p style="color:#6a655e;margin:0 0 14px 0;">Accounts, Systeme, Software, digitale Infrastruktur und IT-Support.</p>
Veronika Kocher 15.1 72
Veronika Kocher 22.17 73 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 74 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 75 <li>auf einen Account, ein System oder einen digitalen Dienst zugreifen</li>
76 <li>ein IT-Problem lösen</li>
77 <li>ein digitales oder IT-Projekt planen oder koordinieren</li>
Veronika Kocher 18.1 78 </ul>
Veronika Kocher 15.1 79
Veronika Kocher 21.1 80 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 81 Accounts · IT-Support · Software · digitale Tools · Infrastruktur · IT-Projektkoordination
Veronika Kocher 18.1 82 </div>
Veronika Kocher 17.1 83 </div>
Veronika Kocher 18.1 84 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 85 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 86 </div>
87 </section>
Veronika Kocher 15.1 88
Veronika Kocher 19.1 89 <!-- 3. ROOMS, BUILDINGS & CAMPUS -->
Veronika Kocher 21.1 90 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 91 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 21.1 92 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">CAMPUS</div>
Veronika Kocher 22.17 93 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Räume, Gebäude &amp; Campus</h3>
94 <p style="color:#6a655e;margin:0 0 14px 0;">Räume, Gebäude, Einrichtungen, Campusnutzung und betriebliche Unterstützung.</p>
Veronika Kocher 15.1 95
Veronika Kocher 22.17 96 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 97 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 98 <li>einen Raum buchen oder nutzen</li>
99 <li>ein Problem mit Gebäude, Ausstattung oder Sicherheit melden</li>
100 <li>Informationen zu Campuseinrichtungen oder Hausordnung finden</li>
Veronika Kocher 18.1 101 </ul>
Veronika Kocher 15.1 102
Veronika Kocher 21.1 103 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 104 Facility Management · Liegenschaften · Raumkoordination · Gebäudetechnik · Sicherheit · Hausordnung · Campusbetrieb
Veronika Kocher 18.1 105 </div>
Veronika Kocher 17.1 106 </div>
Veronika Kocher 18.1 107 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 108 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 109 </div>
110 </section>
Veronika Kocher 15.1 111
Veronika Kocher 19.1 112 <!-- 4. ART & RESEARCH SERVICES -->
Veronika Kocher 21.1 113 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 114 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 115 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">KUNST &amp; FORSCHUNG</div>
116 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Services für Kunst &amp; Forschung</h3>
117 <p style="color:#6a655e;margin:0 0 8px 0;">Abteilungsübergreifende Orientierung für Planung, Durchführung, Publikation, Teilen und Erhaltung künstlerischer und wissenschaftlicher Projekte.</p>
Veronika Kocher 22.12 118 <!-- ARSN_ROOT_SCOPE_ROUTING_V1 -->
Veronika Kocher 22.17 119 <div style="font-size:12px;color:#506168;line-height:1.45;margin:0 0 14px 0;padding:7px 9px;background:#eef7f9;border-radius:5px;"><strong>Zentrale Projekt- &amp; Förderdrehscheibe:</strong> Support Kunst und Forschung · Fachzuständigkeiten bleiben bei den jeweils verantwortlichen Service-Stellen.</div>
Veronika Kocher 15.1 120
Veronika Kocher 22.17 121 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 122 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 123 <li>ein künstlerisches oder Forschungsprojekt entwickeln oder planen</li>
124 <li>Forschungsdaten, Dokumentation oder Zusammenarbeit organisieren</li>
125 <li>Outputs publizieren, zitieren, teilen oder erhalten</li>
Veronika Kocher 18.1 126 </ul>
Veronika Kocher 15.1 127
Veronika Kocher 21.1 128 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 129 Forschungsprojekte · Forschungsdatenmanagement · Rechte &amp; Ethik · Repositorien · Publikation · Erhaltung
Veronika Kocher 18.1 130 </div>
Veronika Kocher 17.1 131 </div>
Veronika Kocher 18.1 132 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 133 <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/" class="btn btn-primary btn-block">Services für Kunst &amp; Forschung öffnen</a>
Veronika Kocher 18.1 134 </div>
135 </section>
Veronika Kocher 15.1 136
Veronika Kocher 19.1 137 <!-- 5. STUDY, TEACHING & CURRICULUM -->
Veronika Kocher 21.1 138 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 139 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 140 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">STUDIUM &amp; LEHRE</div>
141 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Studium, Lehre &amp; Curriculum</h3>
142 <p style="color:#6a655e;margin:0 0 14px 0;">Unterstützung für Studium, Lehre, Curricula und Lernumgebung.</p>
Veronika Kocher 15.1 143
Veronika Kocher 22.17 144 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 145 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 146 <li>eine studienbezogene Frage klären</li>
147 <li>Lehre oder Curricula entwickeln oder ändern</li>
148 <li>Unterstützung für Abschlussarbeiten oder Barrierefreiheit im Studium finden</li>
Veronika Kocher 18.1 149 </ul>
Veronika Kocher 15.1 150
Veronika Kocher 21.1 151 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 152 Studienangelegenheiten · Lehrqualität · Curriculumsentwicklung · Abschlussarbeiten · studentische Arbeitsräume
Veronika Kocher 18.1 153 </div>
Veronika Kocher 17.1 154 </div>
Veronika Kocher 18.1 155 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 156 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 157 </div>
158 </section>
Veronika Kocher 15.1 159
Veronika Kocher 20.1 160 <!-- 6. RESEARCH & DISCOVERY RESOURCES -->
Veronika Kocher 21.1 161 <section style="display:flex;flex-direction:column;min-height:340px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 20.1 162 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 163 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">FINDEN · SUCHEN · ENTDECKEN</div>
164 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Recherche &amp; Forschungsressourcen</h3>
165 <p style="color:#6a655e;margin:0 0 14px 0;">Literatur, Datenbanken, Archive, Sammlungen, Repositorien und spezialisierte Forschungsressourcen an der Universität finden.</p>
Veronika Kocher 20.1 166
Veronika Kocher 22.17 167 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 20.1 168 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 169 <li>Literatur, Medien, Datenbanken oder digitale Ressourcen finden</li>
170 <li>in archivalischen, künstlerischen oder institutionellen Sammlungen recherchieren</li>
171 <li>Repositorien, Spezialarchive und Forschungsdatenbanken entdecken</li>
Veronika Kocher 20.1 172 </ul>
173
Veronika Kocher 21.1 174 <div style="font-size:12px;color:#6a655e;line-height:1.5;">
Veronika Kocher 22.17 175 Universitätsbibliothek &amp; supA · lizenzierte Datenbanken · Universitätsarchiv &amp; Kunstsammlung · Online-Sammlungsdatenbanken · Oskar Kokoschka Zentrum · Viktor J. Papanek Foundation · Venedig Biennale Archiv Austria · Weibel Institut &amp; Peter-Weibel-Archiv · Ursula Blickle Video Archiv · Angewandte Repository
Veronika Kocher 20.1 176 </div>
177 </div>
178 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 179 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 20.1 180 </div>
181 </section>
182
183 <!-- 7. PURCHASING, FINANCE & LOGISTICS -->
Veronika Kocher 21.1 184 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 185 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 186 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">BESCHAFFEN &amp; BEWEGEN</div>
187 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Beschaffung, Finanzen &amp; Logistik</h3>
188 <p style="color:#6a655e;margin:0 0 14px 0;">Einkaufen, bezahlen, budgetieren, versenden, transportieren und übersiedeln.</p>
Veronika Kocher 15.1 189
Veronika Kocher 22.17 190 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 191 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 192 <li>Materialien oder Dienstleistungen beschaffen</li>
193 <li>eine Rechnung, ein Budget oder einen Finanzprozess klären</li>
194 <li>Gegenstände versenden, transportieren oder übersiedeln</li>
Veronika Kocher 18.1 195 </ul>
Veronika Kocher 15.1 196
Veronika Kocher 21.1 197 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 198 Beschaffung · Controlling · Finanzbuchhaltung · Ressourcenplanung · Post &amp; Logistik · Transporte · Übersiedlungen
Veronika Kocher 18.1 199 </div>
Veronika Kocher 17.1 200 </div>
Veronika Kocher 18.1 201 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 202 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 203 </div>
204 </section>
Veronika Kocher 15.1 205
Veronika Kocher 20.1 206 <!-- 8. LEGAL, DATA PROTECTION & GOVERNANCE -->
Veronika Kocher 21.1 207 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #f0aa00;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 208 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 209 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">RECHTE &amp; REGELN</div>
210 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Recht, Datenschutz &amp; Governance</h3>
211 <p style="color:#6a655e;margin:0 0 14px 0;">Rechtsfragen, Datenschutz, Informationsrechte und institutionelle Regelungen.</p>
Veronika Kocher 15.1 212
Veronika Kocher 22.17 213 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 214 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 215 <li>eine rechtliche oder vertragliche Frage klären</li>
216 <li>mit personenbezogenen Daten oder Datenschutz umgehen</li>
217 <li>eine institutionelle Regel oder Vorgabe zum Informationszugang verstehen</li>
Veronika Kocher 18.1 218 </ul>
Veronika Kocher 15.1 219
Veronika Kocher 21.1 220 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 221 Rechtsabteilung · Datenschutz · Informationsfreiheit · Governance · institutionelle Regelungen
Veronika Kocher 18.1 222 </div>
Veronika Kocher 17.1 223 </div>
Veronika Kocher 18.1 224 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 225 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 226 </div>
227 </section>
Veronika Kocher 15.1 228
Veronika Kocher 20.1 229 <!-- 9. COMMUNICATION, MEDIA & EVENTS -->
Veronika Kocher 21.1 230 <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #e94b13;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 18.1 231 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 232 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">KOMMUNIZIEREN &amp; ORGANISIEREN</div>
233 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Kommunikation, Medien &amp; Veranstaltungen</h3>
234 <p style="color:#6a655e;margin:0 0 14px 0;">Kommunizieren, publizieren, drucken, bewerben und Veranstaltungen organisieren.</p>
Veronika Kocher 15.1 235
Veronika Kocher 22.17 236 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 18.1 237 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 238 <li>etwas kommunizieren oder öffentlich machen</li>
239 <li>eine Publikation, einen Flyer oder Drucksorten produzieren</li>
240 <li>eine Veranstaltung organisieren oder unterstützen</li>
Veronika Kocher 18.1 241 </ul>
Veronika Kocher 15.1 242
Veronika Kocher 21.1 243 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 244 Presse &amp; Kommunikation · Publikationen · Drucksorten · Veranstaltungsmanagement · Open House · Festival
Veronika Kocher 18.1 245 </div>
246 </div>
247 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 248 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 18.1 249 </div>
250 </section>
Veronika Kocher 15.1 251
Veronika Kocher 19.1 252 <!-- 10. INTERNATIONAL OFFICE -->
Veronika Kocher 21.1 253 <section style="display:flex;flex-direction:column;min-height:300px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
Veronika Kocher 19.1 254 <div style="padding:18px 18px 14px 18px;flex:1;">
Veronika Kocher 22.17 255 <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">INTERNATIONAL</div>
Veronika Kocher 21.1 256 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">International Office</h3>
Veronika Kocher 22.17 257 <p style="color:#6a655e;margin:0 0 14px 0;">Internationale Mobilität, Austausch und Unterstützung im internationalen Kontext.</p>
Veronika Kocher 19.1 258
Veronika Kocher 22.17 259 <div style="font-weight:700;margin-bottom:6px;">Ich möchte …</div>
Veronika Kocher 19.1 260 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 22.17 261 <li>einen internationalen Aufenthalt oder Austausch planen</li>
262 <li>Fragen zu Mobilitätsmöglichkeiten klären</li>
263 <li>Unterstützung für einen internationalen Kontext finden</li>
Veronika Kocher 19.1 264 </ul>
265
Veronika Kocher 21.1 266 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 22.17 267 Mobilität · Austausch · internationale Kooperation · internationale Unterstützung
Veronika Kocher 19.1 268 </div>
269 </div>
270 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 22.17 271 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Bereich in Vorbereitung</span>
Veronika Kocher 19.1 272 </div>
273 </section>
274
275
Veronika Kocher 18.1 276 </div>
277
Veronika Kocher 22.1 278 <aside style="margin-top:26px;padding:14px 16px;border:1px solid #cfe8ef;border-left:4px solid #21b6d7;background:#eaf6f9;border-radius:6px;">
Veronika Kocher 22.17 279 <strong>Nicht sicher, wo du anfangen sollst?</strong>
Veronika Kocher 18.1 280 <div style="margin-top:4px;">
Veronika Kocher 22.17 281 Nutze die Suche oben auf der Seite oder wähle die Karte, die am besten zu deinem Anliegen passt. Ein Service kann bewusst in mehreren Bereichen vorkommen, wenn er dadurch leichter auffindbar ist.
Veronika Kocher 17.1 282 </div>
Veronika Kocher 18.1 283 </aside>
Veronika Kocher 15.1 284
Veronika Kocher 17.1 285 </div>
Veronika Kocher 15.1 286 {{/html}}
Veronika Kocher 22.13 287
Veronika Kocher 22.16 288 {{html clean="false"}}
289 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
Veronika Kocher 22.15 290
Veronika Kocher 22.16 291 <style data-sn-service-navigator-master="1">
292 /* =========================================================
293 MASTER TYPOGRAPHY
294 ========================================================= */
Veronika Kocher 22.15 295 #xwikicontent h1,
296 #xwikicontent h2,
297 #xwikicontent h3,
298 #xwikicontent h4,
299 #xwikicontent h5,
300 #xwikicontent h6,
301 #xwikicontent .box-title,
302 #xwikicontent [role="heading"],
303 #xwikicontent h1 a,
304 #xwikicontent h2 a,
305 #xwikicontent h3 a,
306 #xwikicontent h4 a,
307 #xwikicontent h5 a,
308 #xwikicontent h6 a,
309 #xwikicontent .box-title a,
310 #xwikicontent [role="heading"] a{
311 text-align:left!important;
312 text-justify:auto!important;
313 word-spacing:normal!important;
314 }
315
Veronika Kocher 22.16 316 /* =========================================================
317 COMING SOON / IN VORBEREITUNG
318 ========================================================= */
319 .sn-coming-soon-badge{
320 display:inline-block;
321 vertical-align:middle;
322 margin-left:10px;
323 padding:4px 8px;
324 border-radius:14px;
325 border:1px solid #efd9cc;
326 background:#fff4ee;
327 color:#8a4d36;
328 font-size:11px;
329 font-weight:700;
330 letter-spacing:.055em;
331 line-height:1.2;
332 white-space:nowrap;
333 }
334
335 /* =========================================================
336 NATIVE / DETAIL CALLOUT GEOMETRY
337 Preserve existing backgrounds.
338 ========================================================= */
339 #xwikicontent .arsn-info,
340 #xwikicontent .dmp-info,
341 #xwikicontent .ido-info,
342 #xwikicontent .pp-info,
343 #xwikicontent .infomessage{
Veronika Kocher 22.15 344 box-sizing:border-box!important;
Veronika Kocher 22.16 345 border-left:4px solid #21b6d7!important;
346 border-radius:8px;
Veronika Kocher 22.15 347 text-align:left!important;
348 word-spacing:normal!important;
349 }
350
Veronika Kocher 22.16 351 #xwikicontent .arsn-warn,
352 #xwikicontent .dmp-warn,
353 #xwikicontent .ido-warn,
354 #xwikicontent .pp-warn,
355 #xwikicontent .warn,
356 #xwikicontent .warning,
357 #xwikicontent .warningmessage,
Veronika Kocher 22.15 358 #xwikicontent .errormessage{
Veronika Kocher 22.16 359 box-sizing:border-box!important;
360 border-left:4px solid #e94b13!important;
361 border-radius:8px;
362 text-align:left!important;
363 word-spacing:normal!important;
Veronika Kocher 22.15 364 }
365
Veronika Kocher 22.16 366 [data-sn-master-equal-height],
367 [data-sn-master-first-row]{
Veronika Kocher 22.14 368 box-sizing:border-box;
Veronika Kocher 22.13 369 }
Veronika Kocher 22.17 370
371 /* =========================================================
372 FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS
373 ========================================================= */
374 #xwikicontent .arsn-area-label[data-sn-three-line="1"]{
375 display:grid!important;
376 grid-template-columns:minmax(0,1fr)!important;
377 grid-auto-rows:auto!important;
378 width:100%!important;
379 max-width:none!important;
380 box-sizing:border-box!important;
381 justify-items:start!important;
382 align-items:start!important;
383 gap:2px!important;
384 text-align:left!important;
385 text-align-last:left!important;
386 text-justify:auto!important;
387 word-spacing:normal!important;
388 white-space:normal!important;
389 }
390 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number,
391 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title,
392 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{
393 display:block!important;
394 width:100%!important;
395 margin:0!important;
396 text-align:left!important;
397 text-align-last:left!important;
398 text-justify:auto!important;
399 word-spacing:normal!important;
400 white-space:normal!important;
401 }
Veronika Kocher 22.13 402 </style>
Veronika Kocher 22.15 403
Veronika Kocher 22.16 404 <script data-sn-service-navigator-master="1">
Veronika Kocher 22.13 405 (function(){
406 "use strict";
407
Veronika Kocher 22.16 408 var PAGE_KIND="overview";
409 var PLACEHOLDER=false;
Veronika Kocher 22.17 410 var PLACEHOLDER_LABEL="IN VORBEREITUNG";
Veronika Kocher 22.16 411
Veronika Kocher 22.13 412 var MOBILE_MAX=767;
Veronika Kocher 22.14 413 var ROW_TOLERANCE=6;
Veronika Kocher 22.15 414 var RESIZE_DEBOUNCE=220;
Veronika Kocher 22.13 415
416 var root=
417 document.getElementById("xwikicontent")||
418 document.querySelector(".xwiki-rendering-content")||
419 document.querySelector("main")||
420 document.body;
421
422 if(!root)return;
423
Veronika Kocher 22.16 424 var managedHeight=new Set();
425 var managedMargin=new Set();
426 var originalHeight=new WeakMap();
427 var originalMargin=new WeakMap();
Veronika Kocher 22.15 428
429 var resizeTimer=0;
Veronika Kocher 22.16 430 var running=false;
Veronika Kocher 22.15 431
Veronika Kocher 22.16 432 var THEMES=[
433 {
434 name:"BLUE",
435 accent:"#21b6d7",
436 bg:"#eaf7fb",
437 text:"#315d68",
438 labels:[
439 "HIER STARTEN",
440 "ENTSCHEIDEN",
441 "ÜBERPRÜFEN & ANPASSEN",
442 "START HERE",
443 "DECIDE",
444 "REVIEW & ADAPT"
445 ]
446 },
447 {
448 name:"RED",
449 accent:"#e94b13",
450 bg:"#fff1ec",
451 text:"#8a4d36",
452 labels:[
453 "PLANEN & ORGANISIEREN",
454 "ORGANISIEREN & DOKUMENTIEREN",
455 "PUBLIZIEREN & PRÄSENTIEREN",
456 "PLAN & ORGANISE",
457 "PLAN & ORGANIZE",
458 "ORGANISE & DOCUMENT",
459 "ORGANIZE & DOCUMENT",
460 "PUBLISH & PRESENT"
461 ]
462 },
463 {
464 name:"YELLOW",
465 accent:"#f0aa00",
466 bg:"#fff8e7",
467 text:"#785b17",
468 labels:[
469 "SCHÜTZEN & KLÄREN",
470 "STANDARDISIEREN & IDENTIFIZIEREN",
471 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
472 "PROTECT & CLARIFY",
473 "STANDARDISE & IDENTIFY",
474 "STANDARDIZE & IDENTIFY",
475 "OPEN, REUSE & MAKE FINDABLE"
476 ]
477 },
478 {
479 name:"GREEN",
480 accent:"#38b76a",
481 bg:"#edf9f1",
482 text:"#3f7451",
483 labels:[
484 "INFRASTRUKTUR EINRICHTEN",
485 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
486 "SPEICHERN & ZUGRIFF STEUERN",
487 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
488 "SET UP INFRASTRUCTURE",
489 "SET UP INFRASTRUCTURE & COLLABORATION",
490 "STORE & CONTROL ACCESS",
491 "REPOSITORY, PRESERVE & HAND OVER"
492 ]
Veronika Kocher 22.14 493 }
Veronika Kocher 22.16 494 ];
Veronika Kocher 22.14 495
Veronika Kocher 22.16 496 function num(value){
497 var n=parseFloat(value);
498 return Number.isFinite(n)?n:0;
Veronika Kocher 22.13 499 }
500
Veronika Kocher 22.16 501 function norm(value){
502 return String(value||"")
Veronika Kocher 22.15 503 .replace(/\s+/g," ")
504 .trim()
505 .toUpperCase();
506 }
507
Veronika Kocher 22.16 508 function visible(el){
509 if(!el||el.nodeType!==1)return false;
Veronika Kocher 22.13 510
Veronika Kocher 22.16 511 var style=getComputedStyle(el);
512 var rect=el.getBoundingClientRect();
Veronika Kocher 22.15 513
514 return (
Veronika Kocher 22.16 515 style.display!=="none"&&
516 style.visibility!=="hidden"&&
517 rect.width>20&&
518 rect.height>4
Veronika Kocher 22.15 519 );
Veronika Kocher 22.13 520 }
521
Veronika Kocher 22.16 522 function saveStyle(el,map,property){
Veronika Kocher 22.14 523 if(map.has(el))return;
524
525 map.set(el,{
Veronika Kocher 22.16 526 value:el.style.getPropertyValue(property),
527 priority:el.style.getPropertyPriority(property)
Veronika Kocher 22.14 528 });
529 }
530
Veronika Kocher 22.16 531 function restoreStyle(el,map,property){
Veronika Kocher 22.14 532 var original=map.get(el);
533
534 if(original&&original.value){
535 el.style.setProperty(
536 property,
537 original.value,
538 original.priority||""
539 );
540 }else{
Veronika Kocher 22.16 541 el.style.removeProperty(property);
Veronika Kocher 22.14 542 }
543 }
544
Veronika Kocher 22.15 545 function resetRuntime(){
Veronika Kocher 22.16 546 managedHeight.forEach(function(el){
547 restoreStyle(
Veronika Kocher 22.14 548 el,
Veronika Kocher 22.16 549 originalHeight,
Veronika Kocher 22.14 550 "min-height"
551 );
552 el.removeAttribute(
Veronika Kocher 22.16 553 "data-sn-master-equal-height"
Veronika Kocher 22.14 554 );
555 });
556
Veronika Kocher 22.16 557 managedMargin.forEach(function(el){
558 restoreStyle(
Veronika Kocher 22.14 559 el,
Veronika Kocher 22.16 560 originalMargin,
Veronika Kocher 22.14 561 "margin-top"
562 );
563 el.removeAttribute(
Veronika Kocher 22.16 564 "data-sn-master-first-row"
Veronika Kocher 22.14 565 );
566 });
567
Veronika Kocher 22.16 568 managedHeight.clear();
569 managedMargin.clear();
570 }
Veronika Kocher 22.15 571
Veronika Kocher 22.16 572 function themeFor(text){
573 var value=norm(text);
Veronika Kocher 22.15 574
Veronika Kocher 22.16 575 for(var i=0;i<THEMES.length;i++){
576 for(var j=0;j<THEMES[i].labels.length;j++){
577 var label=THEMES[i].labels[j];
578
579 if(
580 value===label||
581 value.indexOf(label+" ")===0||
582 value.indexOf(label+" -")===0||
583 value.indexOf(label+" ·")===0
584 ){
585 return THEMES[i];
586 }
587 }
588 }
589
590 return null;
Veronika Kocher 22.14 591 }
592
Veronika Kocher 22.16 593 /* =======================================================
Veronika Kocher 22.17 594 BORDERLESS FILLED RED/ORANGE CTA BUTTONS
595 ======================================================= */
596
597 function colourDistance(a,b){
598 return Math.sqrt(
599 Math.pow(a[0]-b[0],2)+
600 Math.pow(a[1]-b[1],2)+
601 Math.pow(a[2]-b[2],2)
602 );
603 }
604
605 function makeFilledRedOrangeCTAsBorderless(){
606 var RED_ORANGE=[233,75,19];
607
608 Array.from(
609 root.querySelectorAll(
610 'a,button,[role="button"],input[type="submit"],input[type="button"]'
611 )
612 ).forEach(function(el){
613 if(!visible(el))return;
614
615 var style=getComputedStyle(el);
616 var rgb=parseRGB(style.backgroundColor);
617
618 if(!rgb)return;
619
620 if(
621 colourDistance(
622 rgb,
623 RED_ORANGE
624 )>55
625 ){
626 return;
627 }
628
629 var rect=el.getBoundingClientRect();
630
631 if(
632 rect.width<80||
633 rect.height<24
634 ){
635 return;
636 }
637
638 el.style.setProperty(
639 "border",
640 "none",
641 "important"
642 );
643
644 el.style.setProperty(
645 "border-left",
646 "none",
647 "important"
648 );
649
650 el.style.setProperty(
651 "border-top",
652 "none",
653 "important"
654 );
655
656 el.style.setProperty(
657 "border-right",
658 "none",
659 "important"
660 );
661
662 el.style.setProperty(
663 "border-bottom",
664 "none",
665 "important"
666 );
667
668 el.style.setProperty(
669 "box-shadow",
670 "none",
671 "important"
672 );
673 });
674 }
675
676 /* =======================================================
677 FULL-WIDTH THREE-LINE AREA LABELS
678 ======================================================= */
679
680 function compactText(value){
681 return String(value||"")
682 .replace(/\s+/g," ")
683 .trim();
684 }
685
686 function makeThreeLineAreaLabels(){
687 Array.from(
688 root.querySelectorAll(
689 ".arsn-area-label"
690 )
691 ).forEach(function(label){
692 if(
693 label.getAttribute(
694 "data-sn-three-line"
695 )==="1"
696 ){
697 return;
698 }
699
700 var number=
701 label.querySelector(
702 ":scope > .arsn-area-number"
703 );
704
705 var action=
706 label.querySelector(
707 ":scope > .arsn-area-action"
708 );
709
710 if(
711 !number||
712 !action
713 ){
714 return;
715 }
716
717 var clone=
718 label.cloneNode(true);
719
720 var cloneNumber=
721 clone.querySelector(
722 ":scope > .arsn-area-number"
723 );
724
725 var cloneAction=
726 clone.querySelector(
727 ":scope > .arsn-area-action"
728 );
729
730 if(cloneNumber){
731 cloneNumber.remove();
732 }
733
734 if(cloneAction){
735 cloneAction.remove();
736 }
737
738 var titleText=
739 compactText(
740 clone.textContent
741 );
742
743 if(!titleText){
744 return;
745 }
746
747 var numberNode=
748 number.cloneNode(true);
749
750 var actionNode=
751 action.cloneNode(true);
752
753 var titleNode=
754 document.createElement(
755 "span"
756 );
757
758 titleNode.className=
759 "sn-area-label-title";
760
761 titleNode.textContent=
762 titleText;
763
764 while(label.firstChild){
765 label.removeChild(
766 label.firstChild
767 );
768 }
769
770 label.appendChild(
771 numberNode
772 );
773
774 label.appendChild(
775 titleNode
776 );
777
778 label.appendChild(
779 actionNode
780 );
781
782 label.setAttribute(
783 "data-sn-three-line",
784 "1"
785 );
786
787 var head=
788 label.closest(
789 ".arsn-area-head"
790 );
791
792 if(head){
793 head.style.setProperty(
794 "width",
795 "100%",
796 "important"
797 );
798
799 head.style.setProperty(
800 "max-width",
801 "100%",
802 "important"
803 );
804
805 head.style.setProperty(
806 "box-sizing",
807 "border-box",
808 "important"
809 );
810 }
811 });
812 }
813
814 /* =======================================================
Veronika Kocher 22.16 815 PLACEHOLDER BADGE
816 ======================================================= */
Veronika Kocher 22.15 817
Veronika Kocher 22.16 818 function applyPlaceholderBadge(){
819 if(!PLACEHOLDER)return;
Veronika Kocher 22.15 820
821 if(
Veronika Kocher 22.16 822 document.querySelector(
823 ".sn-coming-soon-badge"
824 )
Veronika Kocher 22.15 825 ){
Veronika Kocher 22.16 826 return;
Veronika Kocher 22.15 827 }
828
Veronika Kocher 22.16 829 var title=
830 document.querySelector(
831 "#document-title"
832 )||
833 document.querySelector(
834 "h1"
835 );
Veronika Kocher 22.15 836
Veronika Kocher 22.16 837 if(!title)return;
Veronika Kocher 22.15 838
Veronika Kocher 22.16 839 var badge=
840 document.createElement(
841 "span"
842 );
843
844 badge.className=
845 "sn-coming-soon-badge";
846
847 badge.textContent=
848 PLACEHOLDER_LABEL;
849
850 badge.setAttribute(
851 "aria-label",
852 PLACEHOLDER_LABEL
Veronika Kocher 22.15 853 );
854
Veronika Kocher 22.16 855 title.appendChild(
856 badge
857 );
858 }
Veronika Kocher 22.15 859
Veronika Kocher 22.16 860 /* =======================================================
861 DETAIL PAGE OWN-ACCENT PROPAGATION
862 ======================================================= */
Veronika Kocher 22.15 863
Veronika Kocher 22.16 864 function parseRGB(value){
865 var match=String(value||"").match(
866 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
Veronika Kocher 22.15 867 );
Veronika Kocher 22.16 868
869 if(!match)return null;
870
871 return [
872 Number(match[1]),
873 Number(match[2]),
874 Number(match[3])
875 ];
Veronika Kocher 22.15 876 }
877
Veronika Kocher 22.16 878 function distance(a,b){
879 return Math.sqrt(
880 Math.pow(a[0]-b[0],2)+
881 Math.pow(a[1]-b[1],2)+
882 Math.pow(a[2]-b[2],2)
883 );
884 }
Veronika Kocher 22.13 885
Veronika Kocher 22.16 886 function paletteMatch(cssColor){
887 var rgb=parseRGB(cssColor);
Veronika Kocher 22.14 888
Veronika Kocher 22.16 889 if(!rgb)return null;
Veronika Kocher 22.14 890
Veronika Kocher 22.16 891 var palette=[
892 {hex:"#21b6d7",rgb:[33,182,215]},
893 {hex:"#e94b13",rgb:[233,75,19]},
894 {hex:"#f0aa00",rgb:[240,170,0]},
895 {hex:"#38b76a",rgb:[56,183,106]}
896 ];
Veronika Kocher 22.13 897
Veronika Kocher 22.14 898 var best=null;
Veronika Kocher 22.16 899 var bestDistance=Infinity;
Veronika Kocher 22.13 900
Veronika Kocher 22.16 901 palette.forEach(function(item){
902 var d=distance(rgb,item.rgb);
Veronika Kocher 22.13 903
Veronika Kocher 22.16 904 if(d<bestDistance){
905 best=item;
906 bestDistance=d;
907 }
908 });
Veronika Kocher 22.14 909
Veronika Kocher 22.16 910 return bestDistance<=30
911 ?best
912 :null;
913 }
Veronika Kocher 22.13 914
Veronika Kocher 22.16 915 function propagateDetailAccents(){
916 if(PAGE_KIND!=="detail")return;
917
918 Array.from(
919 root.querySelectorAll(
920 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
921 ".arsn-source,.dmp-source,.ido-source,.pp-source"
922 )
923 ).forEach(function(el){
924 if(!visible(el))return;
925
926 var style=getComputedStyle(el);
927
Veronika Kocher 22.14 928 if(
Veronika Kocher 22.16 929 num(style.borderTopWidth)>=2
Veronika Kocher 22.14 930 ){
Veronika Kocher 22.16 931 var match=
932 paletteMatch(
933 style.borderTopColor
Veronika Kocher 22.14 934 );
935
Veronika Kocher 22.16 936 if(match){
937 el.style.setProperty(
938 "border-left",
939 "4px solid "+match.hex,
940 "important"
Veronika Kocher 22.14 941 );
Veronika Kocher 22.13 942 }
943 }
Veronika Kocher 22.16 944 });
Veronika Kocher 22.13 945
Veronika Kocher 22.16 946 // Warning families: explicit safety override.
947 Array.from(
948 root.querySelectorAll(
949 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
950 ".warn,.warning,.warningmessage,.errormessage"
951 )
952 ).forEach(function(el){
953 if(!visible(el))return;
Veronika Kocher 22.13 954
Veronika Kocher 22.16 955 el.style.setProperty(
956 "border-left",
957 "4px solid #e94b13",
958 "important"
959 );
960 });
Veronika Kocher 22.13 961
Veronika Kocher 22.16 962 // Info families: explicit orientation override.
963 Array.from(
964 root.querySelectorAll(
965 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
966 )
967 ).forEach(function(el){
968 if(!visible(el))return;
Veronika Kocher 22.14 969
Veronika Kocher 22.16 970 el.style.setProperty(
971 "border-left",
972 "4px solid #21b6d7",
973 "important"
974 );
975 });
976 }
Veronika Kocher 22.14 977
Veronika Kocher 22.16 978 /* =======================================================
979 OVERVIEW SEMANTIC THEME PALETTE
980 ======================================================= */
Veronika Kocher 22.14 981
Veronika Kocher 22.16 982 function smallestThemeHeaders(){
983 return Array.from(
984 root.querySelectorAll(
985 "div,span,p,strong,h3,h4,h5,h6"
986 )
987 ).filter(function(el){
988 if(!visible(el))return false;
989 if(!themeFor(el.textContent))return false;
Veronika Kocher 22.14 990
Veronika Kocher 22.16 991 return !Array.from(
992 el.children||[]
993 ).some(function(child){
994 return !!themeFor(
995 child.textContent
996 );
Veronika Kocher 22.14 997 });
Veronika Kocher 22.16 998 });
Veronika Kocher 22.13 999 }
1000
Veronika Kocher 22.16 1001 function findOverviewCard(header){
1002 var node=header.parentElement;
1003 var candidates=[];
Veronika Kocher 22.14 1004
Veronika Kocher 22.16 1005 while(node&&node!==root){
1006 var rect=node.getBoundingClientRect();
1007 var style=getComputedStyle(node);
Veronika Kocher 22.14 1008
Veronika Kocher 22.16 1009 var border=
1010 num(style.borderTopWidth)+
1011 num(style.borderRightWidth)+
1012 num(style.borderBottomWidth)+
1013 num(style.borderLeftWidth);
Veronika Kocher 22.14 1014
Veronika Kocher 22.16 1015 if(
1016 rect.width>=220&&
1017 rect.width<=800&&
1018 rect.height>=120&&
1019 border>=1
1020 ){
1021 candidates.push(node);
1022 }
Veronika Kocher 22.14 1023
Veronika Kocher 22.16 1024 node=node.parentElement;
1025 }
Veronika Kocher 22.14 1026
Veronika Kocher 22.16 1027 if(!candidates.length)return null;
Veronika Kocher 22.14 1028
Veronika Kocher 22.16 1029 candidates.sort(function(a,b){
1030 return (
1031 b.getBoundingClientRect().height-
1032 a.getBoundingClientRect().height
Veronika Kocher 22.15 1033 );
Veronika Kocher 22.16 1034 });
Veronika Kocher 22.14 1035
Veronika Kocher 22.16 1036 return candidates[0];
Veronika Kocher 22.14 1037 }
1038
Veronika Kocher 22.16 1039 function rowCandidates(link,card){
1040 var result=[];
Veronika Kocher 22.15 1041 var cardRect=
1042 card.getBoundingClientRect();
Veronika Kocher 22.14 1043
Veronika Kocher 22.16 1044 var node=link;
Veronika Kocher 22.14 1045
Veronika Kocher 22.16 1046 while(node&&node!==card){
1047 if(visible(node)){
1048 var rect=
1049 node.getBoundingClientRect();
Veronika Kocher 22.14 1050
Veronika Kocher 22.16 1051 if(
1052 rect.height<=105&&
1053 rect.width>=
1054 cardRect.width*.50&&
1055 rect.width<=
1056 cardRect.width*1.03
1057 ){
1058 result.push(node);
1059 }
1060 }
Veronika Kocher 22.14 1061
Veronika Kocher 22.16 1062 node=node.parentElement;
1063 }
1064
1065 return result;
1066 }
1067
1068 function chooseOuterRow(
1069 candidates,
1070 link
1071 ){
1072 if(!candidates.length){
1073 return link;
1074 }
1075
1076 var bordered=
1077 candidates.filter(function(el){
Veronika Kocher 22.15 1078 return (
Veronika Kocher 22.16 1079 num(
1080 getComputedStyle(el)
1081 .borderLeftWidth
1082 )>=1
Veronika Kocher 22.15 1083 );
1084 });
Veronika Kocher 22.14 1085
Veronika Kocher 22.16 1086 var pool=
1087 bordered.length
1088 ?bordered
1089 :candidates;
Veronika Kocher 22.14 1090
Veronika Kocher 22.16 1091 pool.sort(function(a,b){
1092 var ar=
1093 a.getBoundingClientRect();
Veronika Kocher 22.14 1094
Veronika Kocher 22.16 1095 var br=
1096 b.getBoundingClientRect();
Veronika Kocher 22.14 1097
Veronika Kocher 22.16 1098 return (
1099 ar.left-br.left||
1100 br.width-ar.width
1101 );
1102 });
Veronika Kocher 22.14 1103
Veronika Kocher 22.16 1104 return pool[0]||link;
1105 }
Veronika Kocher 22.14 1106
Veronika Kocher 22.16 1107 function applyOverviewPalette(){
1108 if(PAGE_KIND!=="overview"){
1109 return [];
Veronika Kocher 22.15 1110 }
Veronika Kocher 22.14 1111
Veronika Kocher 22.16 1112 var headers=
1113 smallestThemeHeaders()
1114 .map(function(el){
1115 return {
1116 el:el,
1117 theme:
1118 themeFor(
1119 el.textContent
1120 ),
1121 card:
1122 findOverviewCard(
1123 el
1124 )
1125 };
Veronika Kocher 22.15 1126 })
Veronika Kocher 22.16 1127 .filter(function(row){
1128 return !!row.card;
1129 });
Veronika Kocher 22.14 1130
Veronika Kocher 22.16 1131 var unique=[];
1132 var seenHeaders=new Set();
Veronika Kocher 22.14 1133
Veronika Kocher 22.16 1134 headers.forEach(function(row){
1135 var key=
1136 row.theme.name+
1137 "|"+
1138 Math.round(
1139 row.card
1140 .getBoundingClientRect()
1141 .left
1142 )+
1143 "|"+
1144 Math.round(
1145 row.el
1146 .getBoundingClientRect()
1147 .top
1148 );
Veronika Kocher 22.14 1149
Veronika Kocher 22.16 1150 if(!seenHeaders.has(key)){
1151 seenHeaders.add(key);
1152 unique.push(row);
1153 }
1154 });
Veronika Kocher 22.14 1155
Veronika Kocher 22.16 1156 unique.forEach(function(row){
1157 var headerRect=
1158 row.el
1159 .getBoundingClientRect();
Veronika Kocher 22.14 1160
Veronika Kocher 22.16 1161 row.el.style.setProperty(
1162 "background",
1163 row.theme.bg,
1164 "important"
Veronika Kocher 22.15 1165 );
1166
Veronika Kocher 22.16 1167 row.el.style.setProperty(
1168 "color",
1169 row.theme.text,
1170 "important"
Veronika Kocher 22.15 1171 );
1172
Veronika Kocher 22.16 1173 row.el.style.setProperty(
1174 "text-align",
1175 "left",
1176 "important"
Veronika Kocher 22.15 1177 );
Veronika Kocher 22.14 1178
Veronika Kocher 22.16 1179 row.el.style.setProperty(
1180 "word-spacing",
1181 "normal",
1182 "important"
1183 );
Veronika Kocher 22.15 1184
Veronika Kocher 22.16 1185 var later=
1186 unique
1187 .filter(function(other){
1188 return (
1189 other.card===row.card&&
1190 other.el
1191 .getBoundingClientRect()
1192 .top>
1193 headerRect.top+2
1194 );
1195 })
1196 .sort(function(a,b){
1197 return (
1198 a.el
1199 .getBoundingClientRect()
1200 .top-
1201 b.el
1202 .getBoundingClientRect()
1203 .top
1204 );
1205 });
Veronika Kocher 22.15 1206
Veronika Kocher 22.16 1207 var stopTop=
1208 later.length
1209 ?later[0].el
1210 .getBoundingClientRect()
1211 .top
1212 :Infinity;
Veronika Kocher 22.15 1213
1214 Array.from(
Veronika Kocher 22.16 1215 row.card.querySelectorAll("a")
1216 ).forEach(function(link){
1217 if(!visible(link))return;
Veronika Kocher 22.15 1218
Veronika Kocher 22.16 1219 var rect=
1220 link.getBoundingClientRect();
Veronika Kocher 22.15 1221
Veronika Kocher 22.16 1222 if(
1223 rect.top<=
1224 headerRect.bottom-2||
1225 rect.top>=
1226 stopTop-2
1227 ){
1228 return;
1229 }
Veronika Kocher 22.15 1230
Veronika Kocher 22.16 1231 var candidates=
1232 rowCandidates(
1233 link,
1234 row.card
1235 );
1236
1237 var target=
1238 chooseOuterRow(
1239 candidates,
1240 link
1241 );
1242
1243 candidates.forEach(function(el){
1244 el.style.setProperty(
1245 "border-left",
1246 "0 solid transparent",
1247 "important"
1248 );
1249 });
1250
1251 target.style.setProperty(
1252 "border-left",
1253 "3px solid "+
1254 row.theme.accent,
1255 "important"
Veronika Kocher 22.15 1256 );
Veronika Kocher 22.16 1257
1258 target.style.setProperty(
1259 "box-sizing",
1260 "border-box",
1261 "important"
Veronika Kocher 22.15 1262 );
Veronika Kocher 22.14 1263 });
Veronika Kocher 22.16 1264 });
Veronika Kocher 22.14 1265
Veronika Kocher 22.16 1266 return unique;
Veronika Kocher 22.15 1267 }
Veronika Kocher 22.14 1268
Veronika Kocher 22.16 1269 /* =======================================================
1270 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1271 ======================================================= */
Veronika Kocher 22.15 1272
Veronika Kocher 22.16 1273 function alignOverviewCards(headers){
1274 if(
1275 PAGE_KIND!=="overview"||
1276 window.innerWidth<=MOBILE_MAX
1277 ){
1278 return;
1279 }
Veronika Kocher 22.15 1280
Veronika Kocher 22.16 1281 var cards=[];
1282 var seen=new Set();
Veronika Kocher 22.15 1283
Veronika Kocher 22.16 1284 headers.forEach(function(row){
1285 if(!seen.has(row.card)){
1286 seen.add(row.card);
1287 cards.push(row.card);
1288 }
1289 });
Veronika Kocher 22.15 1290
Veronika Kocher 22.16 1291 if(cards.length<2){
1292 return;
1293 }
Veronika Kocher 22.15 1294
Veronika Kocher 22.16 1295 // Group cards by actual top position.
1296 var groups=[];
Veronika Kocher 22.15 1297
Veronika Kocher 22.16 1298 cards.forEach(function(card){
1299 var top=
1300 card.getBoundingClientRect().top;
Veronika Kocher 22.15 1301
Veronika Kocher 22.16 1302 var group=null;
Veronika Kocher 22.15 1303
Veronika Kocher 22.16 1304 for(var i=0;i<groups.length;i++){
Veronika Kocher 22.15 1305 if(
Veronika Kocher 22.16 1306 Math.abs(
1307 groups[i].top-top
1308 )<=ROW_TOLERANCE
Veronika Kocher 22.15 1309 ){
Veronika Kocher 22.16 1310 group=groups[i];
1311 break;
Veronika Kocher 22.15 1312 }
Veronika Kocher 22.16 1313 }
Veronika Kocher 22.15 1314
Veronika Kocher 22.16 1315 if(!group){
1316 group={
1317 top:top,
1318 cards:[]
1319 };
1320 groups.push(group);
1321 }
Veronika Kocher 22.15 1322
Veronika Kocher 22.16 1323 group.cards.push(card);
1324 });
Veronika Kocher 22.15 1325
Veronika Kocher 22.16 1326 groups.forEach(function(group){
1327 if(group.cards.length<2){
1328 return;
1329 }
Veronika Kocher 22.15 1330
Veronika Kocher 22.16 1331 var firstHeaders=
1332 group.cards.map(function(card){
1333 var candidates=
1334 headers
1335 .filter(function(row){
1336 return row.card===card;
1337 })
1338 .sort(function(a,b){
1339 return (
1340 a.el
1341 .getBoundingClientRect()
1342 .top-
1343 b.el
1344 .getBoundingClientRect()
1345 .top
1346 );
1347 });
Veronika Kocher 22.15 1348
Veronika Kocher 22.16 1349 return candidates.length
1350 ?candidates[0]
1351 :null;
1352 });
Veronika Kocher 22.15 1353
Veronika Kocher 22.16 1354 if(
1355 !firstHeaders.some(function(row){
1356 return !row;
1357 })
1358 ){
1359 var targetTop=
1360 Math.max.apply(
1361 Math,
1362 firstHeaders.map(function(row){
1363 return (
1364 row.el
1365 .getBoundingClientRect()
1366 .top-
1367 row.card
1368 .getBoundingClientRect()
1369 .top
1370 );
1371 })
1372 );
Veronika Kocher 22.13 1373
Veronika Kocher 22.16 1374 firstHeaders.forEach(function(row){
1375 var relativeTop=
1376 row.el
1377 .getBoundingClientRect()
1378 .top-
1379 row.card
1380 .getBoundingClientRect()
1381 .top;
Veronika Kocher 22.14 1382
Veronika Kocher 22.16 1383 var delta=
1384 targetTop-relativeTop;
Veronika Kocher 22.14 1385
Veronika Kocher 22.16 1386 if(delta>1){
1387 saveStyle(
1388 row.el,
1389 originalMargin,
1390 "margin-top"
1391 );
Veronika Kocher 22.15 1392
Veronika Kocher 22.16 1393 var current=
1394 num(
1395 getComputedStyle(
1396 row.el
1397 ).marginTop
1398 );
Veronika Kocher 22.14 1399
Veronika Kocher 22.16 1400 row.el.style.setProperty(
1401 "margin-top",
1402 (
1403 current+delta
1404 )+"px"
1405 );
Veronika Kocher 22.14 1406
Veronika Kocher 22.16 1407 row.el.setAttribute(
1408 "data-sn-master-first-row",
1409 "1"
1410 );
Veronika Kocher 22.14 1411
Veronika Kocher 22.16 1412 managedMargin.add(
1413 row.el
1414 );
1415 }
1416 });
1417 }
Veronika Kocher 22.14 1418
Veronika Kocher 22.16 1419 var maxHeight=0;
Veronika Kocher 22.14 1420
Veronika Kocher 22.16 1421 group.cards.forEach(function(card){
1422 maxHeight=
1423 Math.max(
1424 maxHeight,
1425 card
1426 .getBoundingClientRect()
1427 .height
1428 );
1429 });
Veronika Kocher 22.14 1430
Veronika Kocher 22.16 1431 maxHeight=
1432 Math.ceil(maxHeight);
Veronika Kocher 22.14 1433
Veronika Kocher 22.16 1434 group.cards.forEach(function(card){
1435 saveStyle(
1436 card,
1437 originalHeight,
1438 "min-height"
1439 );
Veronika Kocher 22.14 1440
Veronika Kocher 22.16 1441 card.style.setProperty(
1442 "min-height",
1443 maxHeight+"px"
Veronika Kocher 22.14 1444 );
1445
Veronika Kocher 22.16 1446 card.setAttribute(
1447 "data-sn-master-equal-height",
1448 "1"
1449 );
Veronika Kocher 22.14 1450
Veronika Kocher 22.16 1451 managedHeight.add(
1452 card
1453 );
1454 });
Veronika Kocher 22.14 1455 });
1456 }
1457
Veronika Kocher 22.16 1458 /* =======================================================
1459 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1460 ======================================================= */
Veronika Kocher 22.14 1461
Veronika Kocher 22.16 1462 function equaliseDetailGrids(){
Veronika Kocher 22.15 1463 if(
Veronika Kocher 22.16 1464 PAGE_KIND!=="detail"||
1465 window.innerWidth<=MOBILE_MAX
Veronika Kocher 22.15 1466 ){
Veronika Kocher 22.16 1467 return;
Veronika Kocher 22.15 1468 }
Veronika Kocher 22.14 1469
Veronika Kocher 22.16 1470 var selectors=[
1471 ".arsn-grid",
1472 ".arsn-grid-2",
1473 ".arsn-grid-3",
1474 ".dmp-grid",
1475 ".ido-grid",
1476 ".pp-grid"
1477 ];
Veronika Kocher 22.14 1478
Veronika Kocher 22.16 1479 selectors.forEach(function(selector){
1480 Array.from(
1481 root.querySelectorAll(selector)
1482 ).forEach(function(grid){
1483 var children=
1484 Array.from(
1485 grid.children||[]
1486 ).filter(visible);
Veronika Kocher 22.14 1487
Veronika Kocher 22.16 1488 if(children.length<2){
1489 return;
1490 }
Veronika Kocher 22.14 1491
Veronika Kocher 22.16 1492 var groups=[];
Veronika Kocher 22.14 1493
Veronika Kocher 22.16 1494 children.forEach(function(child){
1495 var top=
1496 child
1497 .getBoundingClientRect()
1498 .top;
Veronika Kocher 22.14 1499
Veronika Kocher 22.16 1500 var group=null;
Veronika Kocher 22.14 1501
Veronika Kocher 22.16 1502 for(var i=0;i<groups.length;i++){
1503 if(
1504 Math.abs(
1505 groups[i].top-top
1506 )<=ROW_TOLERANCE
1507 ){
1508 group=groups[i];
1509 break;
1510 }
1511 }
Veronika Kocher 22.14 1512
Veronika Kocher 22.16 1513 if(!group){
1514 group={
1515 top:top,
1516 items:[]
1517 };
1518 groups.push(group);
1519 }
Veronika Kocher 22.14 1520
Veronika Kocher 22.16 1521 group.items.push(child);
1522 });
Veronika Kocher 22.14 1523
Veronika Kocher 22.16 1524 groups.forEach(function(group){
1525 if(group.items.length<2){
1526 return;
1527 }
Veronika Kocher 22.13 1528
Veronika Kocher 22.16 1529 var maxHeight=0;
Veronika Kocher 22.15 1530
Veronika Kocher 22.16 1531 group.items.forEach(function(item){
1532 maxHeight=
1533 Math.max(
1534 maxHeight,
1535 item
1536 .getBoundingClientRect()
1537 .height
1538 );
1539 });
Veronika Kocher 22.15 1540
Veronika Kocher 22.16 1541 maxHeight=
1542 Math.ceil(maxHeight);
Veronika Kocher 22.13 1543
Veronika Kocher 22.16 1544 group.items.forEach(function(item){
1545 saveStyle(
1546 item,
1547 originalHeight,
1548 "min-height"
1549 );
Veronika Kocher 22.13 1550
Veronika Kocher 22.16 1551 item.style.setProperty(
1552 "min-height",
1553 maxHeight+"px"
1554 );
Veronika Kocher 22.14 1555
Veronika Kocher 22.16 1556 item.setAttribute(
1557 "data-sn-master-equal-height",
1558 "1"
1559 );
Veronika Kocher 22.13 1560
Veronika Kocher 22.16 1561 managedHeight.add(item);
1562 });
Veronika Kocher 22.13 1563 });
Veronika Kocher 22.16 1564 });
1565 });
1566 }
Veronika Kocher 22.13 1567
Veronika Kocher 22.16 1568 /* =======================================================
1569 RUN / RESPONSIVE SCHEDULING
1570 ======================================================= */
Veronika Kocher 22.13 1571
Veronika Kocher 22.16 1572 function run(){
1573 if(running)return;
Veronika Kocher 22.13 1574
Veronika Kocher 22.16 1575 running=true;
Veronika Kocher 22.15 1576
Veronika Kocher 22.16 1577 try{
1578 resetRuntime();
1579 applyPlaceholderBadge();
1580 propagateDetailAccents();
Veronika Kocher 22.15 1581
Veronika Kocher 22.16 1582 var headers=
1583 applyOverviewPalette();
Veronika Kocher 22.15 1584
Veronika Kocher 22.17 1585 makeThreeLineAreaLabels();
1586 makeFilledRedOrangeCTAsBorderless();
1587
Veronika Kocher 22.16 1588 if(
1589 window.innerWidth>
1590 MOBILE_MAX
1591 ){
1592 alignOverviewCards(
1593 headers
1594 );
Veronika Kocher 22.13 1595
Veronika Kocher 22.16 1596 equaliseDetailGrids();
1597 }
Veronika Kocher 22.15 1598 }finally{
Veronika Kocher 22.16 1599 running=false;
Veronika Kocher 22.15 1600 }
Veronika Kocher 22.13 1601 }
1602
Veronika Kocher 22.16 1603 function onResize(){
Veronika Kocher 22.15 1604 if(resizeTimer){
1605 clearTimeout(
1606 resizeTimer
1607 );
1608 }
Veronika Kocher 22.14 1609
Veronika Kocher 22.15 1610 resizeTimer=
1611 setTimeout(
1612 function(){
1613 resizeTimer=0;
Veronika Kocher 22.16 1614 run();
Veronika Kocher 22.15 1615 },
1616 RESIZE_DEBOUNCE
1617 );
Veronika Kocher 22.13 1618 }
1619
Veronika Kocher 22.16 1620 async function waitForReady(){
1621 if(
1622 document.readyState!=="complete"
1623 ){
1624 await new Promise(function(resolve){
1625 window.addEventListener(
1626 "load",
1627 resolve,
1628 {once:true}
1629 );
1630 });
1631 }
1632
1633 if(
1634 document.fonts&&
1635 document.fonts.ready
1636 ){
1637 try{
1638 await document.fonts.ready;
1639 }catch(error){}
1640 }
1641
Veronika Kocher 22.15 1642 var images=
1643 Array.from(
1644 root.querySelectorAll("img")
1645 );
Veronika Kocher 22.13 1646
Veronika Kocher 22.16 1647 await Promise.all(
Veronika Kocher 22.15 1648 images.map(function(img){
1649 if(img.complete){
1650 return Promise.resolve();
1651 }
Veronika Kocher 22.13 1652
Veronika Kocher 22.15 1653 return new Promise(function(resolve){
1654 var done=function(){
1655 resolve();
1656 };
1657
1658 img.addEventListener(
1659 "load",
1660 done,
1661 {once:true}
1662 );
1663
1664 img.addEventListener(
1665 "error",
1666 done,
1667 {once:true}
1668 );
1669 });
1670 })
1671 );
1672
Veronika Kocher 22.16 1673 run();
Veronika Kocher 22.13 1674 }
1675
Veronika Kocher 22.16 1676 window.addEventListener(
Veronika Kocher 22.15 1677 "resize",
Veronika Kocher 22.16 1678 onResize,
Veronika Kocher 22.15 1679 {passive:true}
1680 );
1681
Veronika Kocher 22.16 1682 waitForReady();
Veronika Kocher 22.13 1683 })();
1684 </script>
Veronika Kocher 22.15 1685
Veronika Kocher 22.16 1686 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1687 {{/html}}
1688