Wiki source code of Service Navigator

Version 22.14 by Veronika Kocher on Thursday, 03 Sep 2026 9:34

Hide last authors
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;">
5 Artistic and administrative services at the University support many different needs — from research projects and teaching to employment, IT, rooms, procurement, legal questions, international mobility and library services.
6 </p>
Veronika Kocher 15.1 7
Veronika Kocher 18.1 8 <p style="margin:0 0 22px 0;">
9 The <strong>Service Navigator</strong> is organised around what you need to do, not around the university's organisational chart.
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);">
13 <h2 style="font-size:20px;margin:0 0 6px 0;color:#35312d;">Find a service</h2>
14 <p style="margin:0 0 12px 0;color:#6a655e;">
Veronika Kocher 18.1 15 Search by task, topic or question — for example <em>room, invoice, disability, DOI, event, employment, data protection</em> or <em>library</em>.
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;">
20 <label for="service-navigator-search" style="position:absolute;left:-10000px;">Search services</label>
21 <input
22 id="service-navigator-search"
23 name="text"
24 type="search"
25 placeholder="What do you need help with?"
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 />
29 <button type="submit" class="btn btn-primary" style="padding:11px 22px;">Search</button>
30 </div>
31 </form>
32 </section>
Veronika Kocher 15.1 33
Veronika Kocher 21.1 34 <h2 style="font-size:24px;margin:0 0 16px 0;color:#35312d;">Find services by what you need to do</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 21.1 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;">PEOPLE &amp; WORK</div>
47 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">People, Equality, Health &amp; Work</h3>
48 <p style="color:#6a655e;margin:0 0 14px 0;">Employment, equality, diversity, disability, accessibility and health.</p>
Veronika Kocher 15.1 49
Veronika Kocher 18.1 50 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
51 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 52 <li>ask about employment, working conditions or labour law</li>
53 <li>get support concerning discrimination, equality or diversity</li>
54 <li>address disability, accessibility or health at work</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 19.1 58 HR · staff development · equal treatment · diversity · disability · accessibility · health · labour law
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 21.1 62 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore People &amp; Work</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>
70 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">IT &amp; Digital Services</h3>
71 <p style="color:#6a655e;margin:0 0 14px 0;">Accounts, systems, software, digital infrastructure and IT support.</p>
Veronika Kocher 15.1 72
Veronika Kocher 18.1 73 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
74 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 75 <li>access an account, system or digital service</li>
76 <li>solve an IT problem</li>
77 <li>plan or coordinate a digital or IT project</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 19.1 81 Accounts · IT support · software · digital tools · infrastructure · IT project coordination
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 21.1 85 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore IT &amp; Digital Services</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>
93 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Rooms, Buildings &amp; Campus</h3>
94 <p style="color:#6a655e;margin:0 0 14px 0;">Rooms, buildings, facilities, campus use and operational support.</p>
Veronika Kocher 15.1 95
Veronika Kocher 18.1 96 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
97 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 98 <li>book or use a room</li>
99 <li>report a building, equipment or safety issue</li>
100 <li>find information about campus facilities or house rules</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 19.1 104 Facility management · estates · room coordination · building services · safety · house rules · campus operations
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 21.1 108 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Rooms &amp; Campus</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 21.1 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;">ART &amp; RESEARCH</div>
116 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Art &amp; Research Services</h3>
Veronika Kocher 22.12 117 <p style="color:#6a655e;margin:0 0 8px 0;">Cross-unit guidance for planning, managing, publishing, sharing and preserving artistic and research projects.</p>
118 <!-- ARSN_ROOT_SCOPE_ROUTING_V1 -->
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>Central project &amp; funding hub:</strong> Support Kunst und Forschung · specialist responsibilities remain with the relevant service units.</div>
Veronika Kocher 15.1 120
Veronika Kocher 18.1 121 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
122 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 123 <li>develop or plan an artistic or research project</li>
124 <li>manage research data, documentation or collaboration</li>
125 <li>publish, cite, share or preserve outputs</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 19.1 129 Research projects · research data management · rights &amp; ethics · repositories · publication · preservation
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 19.1 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">Explore Art &amp; Research Services</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 21.1 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;">STUDY &amp; TEACHING</div>
141 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Study, Teaching &amp; Curriculum</h3>
142 <p style="color:#6a655e;margin:0 0 14px 0;">Support for studying, teaching, curricula and the learning environment.</p>
Veronika Kocher 15.1 143
Veronika Kocher 18.1 144 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
145 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 146 <li>clarify a study-related question</li>
147 <li>develop or change teaching or curricula</li>
148 <li>find support for final projects or accessibility in study</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 19.1 152 Student affairs · teaching quality · curriculum development · final projects · student workspace
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 21.1 156 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Study &amp; Teaching</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 21.1 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;">FIND · SEARCH · DISCOVER</div>
164 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Research &amp; Discovery Resources</h3>
165 <p style="color:#6a655e;margin:0 0 14px 0;">Find literature, databases, archives, collections, repositories and specialist research resources across the University.</p>
Veronika Kocher 20.1 166
167 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
168 <ul style="margin:0 0 14px 18px;padding:0;">
169 <li>find literature, media, databases or digital resources</li>
170 <li>research archival, artistic or institutional collections</li>
171 <li>discover repositories, specialist archives and research databases</li>
172 </ul>
173
Veronika Kocher 21.1 174 <div style="font-size:12px;color:#6a655e;line-height:1.5;">
Veronika Kocher 20.1 175 University Library &amp; supA · licensed databases · University Archive &amp; Art Collection · online collection databases · Oskar Kokoschka Centre · Viktor J. Papanek Foundation · Venedig Biennale Archiv Austria · Weibel Institute &amp; Peter Weibel Archive · Ursula Blickle Video Archive · Angewandte Repository
176 </div>
177 </div>
178 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 21.1 179 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Research &amp; Discovery</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 21.1 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;">PURCHASE &amp; MOVE</div>
187 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Purchasing, Finance &amp; Logistics</h3>
188 <p style="color:#6a655e;margin:0 0 14px 0;">Buy, pay, budget, send, transport and move things.</p>
Veronika Kocher 15.1 189
Veronika Kocher 18.1 190 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
191 <ul style="margin:0 0 14px 18px;padding:0;">
192 <li>purchase materials or services</li>
193 <li>clarify an invoice, budget or financial process</li>
194 <li>send, transport or move items</li>
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 18.1 198 Procurement · controlling · accounting · resource planning · mail &amp; logistics · transport · relocations
199 </div>
Veronika Kocher 17.1 200 </div>
Veronika Kocher 18.1 201 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 21.1 202 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Finance &amp; Logistics</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 21.1 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;">RIGHTS &amp; RULES</div>
210 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Legal, Data Protection &amp; Governance</h3>
211 <p style="color:#6a655e;margin:0 0 14px 0;">Legal questions, privacy, information rights and institutional rules.</p>
Veronika Kocher 15.1 212
Veronika Kocher 18.1 213 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
214 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 215 <li>clarify a legal or contractual question</li>
216 <li>deal with personal data or privacy</li>
217 <li>understand an institutional rule or information-access requirement</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 19.1 221 Legal affairs · data protection · freedom of information · governance · institutional rules
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 21.1 225 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Legal &amp; Governance</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 21.1 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;">COMMUNICATE &amp; ORGANISE</div>
233 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Communication, Media &amp; Events</h3>
234 <p style="color:#6a655e;margin:0 0 14px 0;">Communicate, publish, print, promote and organise events.</p>
Veronika Kocher 15.1 235
Veronika Kocher 18.1 236 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
237 <ul style="margin:0 0 14px 18px;padding:0;">
Veronika Kocher 19.1 238 <li>communicate or publicise something</li>
239 <li>produce a publication, flyer or printed material</li>
240 <li>organise or support an event</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 19.1 244 Press &amp; communications · publications · print materials · event management · Open House · festival
Veronika Kocher 18.1 245 </div>
246 </div>
247 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 21.1 248 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Communication &amp; Events</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 21.1 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;">GO INTERNATIONAL</div>
256 <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">International Office</h3>
257 <p style="color:#6a655e;margin:0 0 14px 0;">International mobility, exchange and international support.</p>
Veronika Kocher 19.1 258
259 <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
260 <ul style="margin:0 0 14px 18px;padding:0;">
261 <li>plan an international stay or exchange</li>
262 <li>ask about mobility opportunities</li>
263 <li>find support for an international context</li>
264 </ul>
265
Veronika Kocher 21.1 266 <div style="font-size:12px;color:#6a655e;line-height:1.45;">
Veronika Kocher 19.1 267 Mobility · exchange · international cooperation · international support
268 </div>
269 </div>
270 <div style="padding:0 18px 18px 18px;">
Veronika Kocher 21.1 271 <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore International Office</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 18.1 279 <strong>Not sure where to start?</strong>
280 <div style="margin-top:4px;">
281 Use the search at the top of the page or choose the card that best matches what you are trying to do. A service may deliberately appear in more than one area when this makes it easier to find.
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
288 {{html clean="false"}}
289 <!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
Veronika Kocher 22.14 290 <style data-sn-horizontal-box-harmonizer="4">
291 [data-sn-equal-height-managed],
292 [data-sn-first-section-aligned]{
293 box-sizing:border-box;
Veronika Kocher 22.13 294 }
295 </style>
Veronika Kocher 22.14 296 <script data-sn-horizontal-box-harmonizer="4">
Veronika Kocher 22.13 297 (function(){
298 "use strict";
299
300 var MOBILE_MAX=767;
Veronika Kocher 22.14 301 var ROW_TOLERANCE=6;
Veronika Kocher 22.13 302 var MIN_W=150;
303 var MIN_H=36;
Veronika Kocher 22.14 304 var MAX_PARENT_CHILDREN=16;
305 var SEARCH_DEPTH=5;
Veronika Kocher 22.13 306
307 var root=
308 document.getElementById("xwikicontent")||
309 document.querySelector(".xwiki-rendering-content")||
310 document.querySelector("main")||
311 document.body;
312
313 if(!root)return;
314
Veronika Kocher 22.14 315 var heightManaged=new Set();
316 var sectionManaged=new Set();
317 var originalMinHeight=new WeakMap();
318 var originalMarginTop=new WeakMap();
Veronika Kocher 22.13 319 var raf=0;
320
321 function num(v){
322 var n=parseFloat(v);
323 return Number.isFinite(n)?n:0;
324 }
325
Veronika Kocher 22.14 326 function visible(el,minW,minH){
Veronika Kocher 22.13 327 if(!el||el.nodeType!==1)return false;
Veronika Kocher 22.14 328
Veronika Kocher 22.13 329 var s=getComputedStyle(el);
Veronika Kocher 22.14 330
331 if(
332 s.display==="none"||
333 s.visibility==="hidden"||
334 Number(s.opacity)===0
335 ){
336 return false;
337 }
338
Veronika Kocher 22.13 339 var r=el.getBoundingClientRect();
Veronika Kocher 22.14 340
341 return (
342 r.width>=(minW||1)&&
343 r.height>=(minH||1)
344 );
Veronika Kocher 22.13 345 }
346
347 function excluded(el){
Veronika Kocher 22.14 348 return (
349 !el.matches||
350 el.matches(
351 "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
352 )
Veronika Kocher 22.13 353 );
354 }
355
356 function namedLikeBox(el){
Veronika Kocher 22.14 357 var c=
358 typeof el.className==="string"
359 ? el.className
360 : "";
361
362 return /(^|[s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([s_-]|$)/i.test(c);
Veronika Kocher 22.13 363 }
364
365 function boxLike(el){
Veronika Kocher 22.14 366 if(!visible(el,MIN_W,MIN_H)||excluded(el))return false;
367
Veronika Kocher 22.13 368 var s=getComputedStyle(el);
369 var r=el.getBoundingClientRect();
Veronika Kocher 22.14 370
Veronika Kocher 22.13 371 var border=
Veronika Kocher 22.14 372 num(s.borderTopWidth)+
373 num(s.borderRightWidth)+
374 num(s.borderBottomWidth)+
375 num(s.borderLeftWidth);
376
Veronika Kocher 22.13 377 var radius=Math.max(
Veronika Kocher 22.14 378 num(s.borderTopLeftRadius),
379 num(s.borderTopRightRadius),
380 num(s.borderBottomLeftRadius),
381 num(s.borderBottomRightRadius)
Veronika Kocher 22.13 382 );
Veronika Kocher 22.14 383
384 var bg=
385 s.backgroundColor&&
386 s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
387 s.backgroundColor!=="transparent";
388
389 var shadow=
390 s.boxShadow&&
391 s.boxShadow!=="none";
392
393 return (
394 namedLikeBox(el)||
395 border>=1||
396 (bg&&radius>=3)||
397 (shadow&&r.width>=180)
398 );
Veronika Kocher 22.13 399 }
400
Veronika Kocher 22.14 401 function saveOriginal(el,map,property){
402 if(map.has(el))return;
403
404 map.set(el,{
405 value:el.style.getPropertyValue(property),
406 priority:el.style.getPropertyPriority(property)
407 });
408 }
409
410 function restoreOriginal(el,map,property){
411 var original=map.get(el);
412
413 if(original&&original.value){
414 el.style.setProperty(
415 property,
416 original.value,
417 original.priority||""
418 );
419 }else{
420 el.style.removeProperty(property);
421 }
422 }
423
424 function reset(){
425 heightManaged.forEach(function(el){
426 restoreOriginal(
427 el,
428 originalMinHeight,
429 "min-height"
430 );
431
432 el.removeAttribute(
433 "data-sn-equal-height-managed"
434 );
435 });
436
437 sectionManaged.forEach(function(el){
438 restoreOriginal(
439 el,
440 originalMarginTop,
441 "margin-top"
442 );
443
444 el.removeAttribute(
445 "data-sn-first-section-aligned"
446 );
447 });
448
449 heightManaged.clear();
450 sectionManaged.clear();
451 }
452
Veronika Kocher 22.13 453 function pickTarget(child){
Veronika Kocher 22.14 454 if(!visible(child,MIN_W,MIN_H))return null;
Veronika Kocher 22.13 455
Veronika Kocher 22.14 456 if(boxLike(child)){
457 return child;
458 }
459
Veronika Kocher 22.13 460 var cr=child.getBoundingClientRect();
461 var q=[];
Veronika Kocher 22.14 462
Veronika Kocher 22.13 463 Array.from(child.children||[]).forEach(function(el){
464 q.push({el:el,depth:1});
465 });
466
Veronika Kocher 22.14 467 var best=null;
468 var bestScore=-Infinity;
Veronika Kocher 22.13 469
470 while(q.length){
471 var item=q.shift();
472 var el=item.el;
473
Veronika Kocher 22.14 474 if(!visible(el,MIN_W,MIN_H))continue;
475
Veronika Kocher 22.13 476 var r=el.getBoundingClientRect();
477
Veronika Kocher 22.14 478 if(
479 r.width>=cr.width*.68&&
480 boxLike(el)
481 ){
482 var widthFit=
483 1-Math.min(
484 1,
485 Math.abs(cr.width-r.width)/
486 Math.max(1,cr.width)
487 );
488
489 var topFit=
490 1-Math.min(
491 1,
492 Math.abs(cr.top-r.top)/100
493 );
494
495 var score=
496 widthFit*6+
497 topFit*3+
498 Math.min(r.height,900)/450+
499 Math.min(r.width*r.height,900000)/900000;
500
Veronika Kocher 22.13 501 if(score>bestScore){
502 best=el;
503 bestScore=score;
504 }
505 }
506
Veronika Kocher 22.14 507 if(item.depth<SEARCH_DEPTH){
Veronika Kocher 22.13 508 Array.from(el.children||[]).forEach(function(next){
Veronika Kocher 22.14 509 q.push({
510 el:next,
511 depth:item.depth+1
512 });
Veronika Kocher 22.13 513 });
514 }
515 }
516
517 return best;
518 }
519
Veronika Kocher 22.14 520 function groupsByVisualRow(entries){
521 var groups=[];
522
523 entries
524 .slice()
525 .sort(function(a,b){
526 return (
527 a.rect.top-b.rect.top||
528 a.rect.left-b.rect.left
529 );
530 })
531 .forEach(function(entry){
532 var group=null;
533
534 for(var i=0;i<groups.length;i++){
535 if(
536 Math.abs(
537 groups[i].top-
538 entry.rect.top
539 )<=ROW_TOLERANCE
540 ){
541 group=groups[i];
542 break;
543 }
544 }
545
546 if(!group){
547 group={
548 top:entry.rect.top,
549 entries:[]
550 };
551 groups.push(group);
552 }
553
554 group.entries.push(entry);
555 });
556
557 return groups;
Veronika Kocher 22.13 558 }
559
Veronika Kocher 22.14 560 function validHorizontalGroup(group){
561 if(group.entries.length<2)return false;
562
563 var lefts=
564 group.entries
565 .map(function(e){return e.rect.left;})
566 .sort(function(a,b){return a-b;});
567
568 if(
569 lefts[lefts.length-1]-
570 lefts[0]<
571 80
572 ){
573 return false;
Veronika Kocher 22.13 574 }
Veronika Kocher 22.14 575
576 var widths=
577 group.entries
578 .map(function(e){return e.rect.width;})
579 .filter(function(w){return w>0;});
580
581 if(widths.length<2)return false;
582
583 var minWidth=Math.min.apply(Math,widths);
584 var maxWidth=Math.max.apply(Math,widths);
585
586 return (
587 maxWidth/
588 Math.max(1,minWidth)<=
589 1.9
590 );
Veronika Kocher 22.13 591 }
592
Veronika Kocher 22.14 593 function normalizeText(text){
594 return String(text||"")
595 .replace(/s+/g," ")
596 .trim()
597 .toUpperCase();
598 }
599
600 function exactKnownFirstSection(el){
601 var text=normalizeText(el.textContent);
602
603 return (
604 text==="HIER STARTEN"||
605 text==="ORGANISIEREN & DOKUMENTIEREN"||
606 text==="ENTSCHEIDEN"||
607 text==="START HERE"||
608 text==="GET STARTED"||
609 text==="ORGANISE & DOCUMENT"||
610 text==="ORGANIZE & DOCUMENT"||
611 text==="DECIDE"
612 );
613 }
614
615 function visuallyFirstSectionBar(card){
616 var cardRect=card.getBoundingClientRect();
617 var candidates=[];
618
619 Array.from(
620 card.querySelectorAll(
621 "div,p,span,strong,h3,h4,h5,h6"
622 )
623 ).forEach(function(el){
624 if(!visible(el,20,6))return;
625 if(excluded(el))return;
626
627 var r=el.getBoundingClientRect();
628 var relativeTop=r.top-cardRect.top;
629
630 if(
631 relativeTop<45||
632 relativeTop>cardRect.height*.72
633 ){
634 return;
Veronika Kocher 22.13 635 }
Veronika Kocher 22.14 636
637 var widthRatio=
638 r.width/
639 Math.max(1,cardRect.width);
640
641 if(
642 widthRatio<.55||
643 widthRatio>1.05||
644 r.height>54
645 ){
646 return;
Veronika Kocher 22.13 647 }
Veronika Kocher 22.14 648
649 var text=normalizeText(el.textContent);
650
651 if(
652 text.length<2||
653 text.length>90
654 ){
655 return;
656 }
657
658 var style=getComputedStyle(el);
659
660 var bg=
661 style.backgroundColor&&
662 style.backgroundColor!=="rgba(0, 0, 0, 0)"&&
663 style.backgroundColor!=="transparent";
664
665 var border=
666 num(style.borderTopWidth)+
667 num(style.borderRightWidth)+
668 num(style.borderBottomWidth)+
669 num(style.borderLeftWidth);
670
671 var mostlyUpper=
672 text.length>=3&&
673 text===text.toUpperCase();
674
675 var exact=exactKnownFirstSection(el);
676
677 var score=
678 (exact?20:0)+
679 (bg?6:0)+
680 (border>=1?2:0)+
681 (mostlyUpper?4:0)+
682 (num(style.fontWeight)>=600?1:0);
683
684 if(score>=7){
685 candidates.push({
686 el:el,
687 relativeTop:relativeTop,
688 width:r.width,
689 score:score
690 });
691 }
Veronika Kocher 22.13 692 });
Veronika Kocher 22.14 693
694 if(!candidates.length)return null;
695
696 candidates.sort(function(a,b){
697 if(a.score!==b.score)return b.score-a.score;
698 if(Math.abs(a.relativeTop-b.relativeTop)>3){
699 return a.relativeTop-b.relativeTop;
700 }
701 return b.width-a.width;
702 });
703
704 // For exact known labels always prefer the earliest exact match.
705 var exacts=candidates.filter(function(c){
706 return exactKnownFirstSection(c.el);
707 });
708
709 if(exacts.length){
710 exacts.sort(function(a,b){
711 return a.relativeTop-b.relativeTop||b.width-a.width;
712 });
713 return exacts[0].el;
714 }
715
716 // Generic fallback: earliest high-confidence bar.
717 candidates.sort(function(a,b){
718 return a.relativeTop-b.relativeTop||b.score-a.score||b.width-a.width;
719 });
720
721 return candidates[0].el;
Veronika Kocher 22.13 722 }
723
Veronika Kocher 22.14 724 function alignFirstSections(cards){
725 var rows=
726 cards.map(function(card){
727 var bar=
728 visuallyFirstSectionBar(card);
729
730 if(!bar)return null;
731
732 var cardRect=
733 card.getBoundingClientRect();
734
735 var barRect=
736 bar.getBoundingClientRect();
737
738 return {
739 card:card,
740 bar:bar,
741 relativeTop:
742 barRect.top-cardRect.top,
743 label:
744 normalizeText(bar.textContent)
745 };
746 });
747
748 // Conservative: only align when every card in the horizontal row
749 // has a reliable first section bar.
750 if(
751 rows.some(function(row){
752 return !row;
753 })
754 ){
755 return null;
756 }
757
758 var targetTop=
759 Math.max.apply(
760 Math,
761 rows.map(function(row){
762 return row.relativeTop;
763 })
764 );
765
766 rows.forEach(function(row){
767 var delta=
768 targetTop-
769 row.relativeTop;
770
771 if(delta<=1)return;
772
773 saveOriginal(
774 row.bar,
775 originalMarginTop,
776 "margin-top"
777 );
778
779 var currentMargin=
780 num(
781 getComputedStyle(
782 row.bar
783 ).marginTop
784 );
785
786 row.bar.style.setProperty(
787 "margin-top",
788 (
789 currentMargin+
790 delta
791 )+"px"
792 );
793
794 row.bar.setAttribute(
795 "data-sn-first-section-aligned",
796 "4"
797 );
798
799 sectionManaged.add(row.bar);
800 });
801
802 return {
803 labels:
804 rows.map(function(row){
805 return row.label;
806 }),
807 targetRelativeTop:
808 Math.round(targetTop)
809 };
810 }
811
812 function applyGroup(group){
813 if(!validHorizontalGroup(group)){
814 return null;
815 }
816
817 var cards=[];
818 var seen=new Set();
819
820 group.entries.forEach(function(entry){
821 if(!seen.has(entry.target)){
822 seen.add(entry.target);
823 cards.push(entry.target);
824 }
825 });
826
827 if(cards.length<2)return null;
828
829 var firstSection=
830 alignFirstSections(cards);
831
832 // The section alignment can change natural card heights.
833 // Measure only afterwards.
834 var maxHeight=0;
835
836 cards.forEach(function(card){
837 maxHeight=Math.max(
838 maxHeight,
839 card.getBoundingClientRect().height
840 );
841 });
842
843 maxHeight=Math.ceil(maxHeight);
844
845 if(maxHeight<MIN_H)return null;
846
847 cards.forEach(function(card){
848 saveOriginal(
849 card,
850 originalMinHeight,
851 "min-height"
852 );
853
854 card.style.setProperty(
855 "min-height",
856 maxHeight+"px"
857 );
858
859 card.setAttribute(
860 "data-sn-equal-height-managed",
861 "4"
862 );
863
864 heightManaged.add(card);
865 });
866
867 return {
868 cards:cards.length,
869 height:maxHeight,
870 firstSection:firstSection
871 };
872 }
873
Veronika Kocher 22.13 874 function run(){
875 reset();
876
Veronika Kocher 22.14 877 if(
878 window.innerWidth<=MOBILE_MAX
879 ){
880 return;
881 }
Veronika Kocher 22.13 882
Veronika Kocher 22.14 883 var parents=
884 Array.from(
885 root.querySelectorAll("*")
886 ).filter(function(parent){
887 return (
888 visible(parent,MIN_W,MIN_H)&&
889 parent.children&&
890 parent.children.length>=2&&
891 parent.children.length<=MAX_PARENT_CHILDREN
892 );
893 });
Veronika Kocher 22.13 894
Veronika Kocher 22.14 895 var touched=new Set();
896
Veronika Kocher 22.13 897 parents.forEach(function(parent){
898 var entries=[];
899
900 Array.from(parent.children).forEach(function(child){
Veronika Kocher 22.14 901 if(!visible(child,MIN_W,MIN_H))return;
902
Veronika Kocher 22.13 903 var target=pickTarget(child);
904 if(!target)return;
Veronika Kocher 22.14 905
Veronika Kocher 22.13 906 entries.push({
907 target:target,
908 rect:target.getBoundingClientRect()
909 });
910 });
911
912 if(entries.length<2)return;
913
Veronika Kocher 22.14 914 groupsByVisualRow(entries).forEach(function(group){
915 if(!validHorizontalGroup(group))return;
Veronika Kocher 22.13 916
Veronika Kocher 22.14 917 var signature=
918 group.entries.map(function(entry){
919 return entry.target;
920 });
Veronika Kocher 22.13 921
Veronika Kocher 22.14 922 if(
923 !signature.some(function(el){
924 return !touched.has(el);
925 })
926 ){
927 return;
928 }
Veronika Kocher 22.13 929
Veronika Kocher 22.14 930 var applied=
931 applyGroup(group);
Veronika Kocher 22.13 932
Veronika Kocher 22.14 933 if(applied){
934 signature.forEach(function(el){
935 touched.add(el);
936 });
937 }
Veronika Kocher 22.13 938 });
939 });
940 }
941
942 function schedule(){
943 if(raf)cancelAnimationFrame(raf);
Veronika Kocher 22.14 944
Veronika Kocher 22.13 945 raf=requestAnimationFrame(function(){
946 raf=requestAnimationFrame(function(){
947 raf=0;
948 run();
949 });
950 });
951 }
952
953 addEventListener("resize",schedule,{passive:true});
954 addEventListener("load",schedule,{once:true});
955
Veronika Kocher 22.14 956 root.addEventListener(
957 "click",
958 function(){
959 setTimeout(schedule,0);
960 },
961 true
962 );
Veronika Kocher 22.13 963
Veronika Kocher 22.14 964 Array.from(root.querySelectorAll("img")).forEach(function(img){
965 if(!img.complete){
966 img.addEventListener("load",schedule,{once:true});
967 }
968 });
969
Veronika Kocher 22.13 970 if(document.fonts&&document.fonts.ready){
971 document.fonts.ready.then(schedule);
972 }
973
974 schedule();
Veronika Kocher 22.14 975 setTimeout(schedule,200);
976 setTimeout(schedule,650);
977 setTimeout(schedule,1400);
Veronika Kocher 22.13 978 })();
979 </script>
980 <!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
981 {{/html}}
982